{"version":3,"file":"VideoGrid.eBwLmMNo.mjs","names":["useRef"],"sources":["https:/framerusercontent.com/modules/V28YxHiOc4OQPm59UNyk/kI2yR9wskDrSvipylwj0/VideoGrid.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";const duration={/** No delay. */\"0\":0,/** Snap. Resets a transform while the element is already invisible. */\"1\":1,/** Press; label cross-fade inside a morphing control. */\"120\":120,/** Hand-off. The next layer starts this long after the layer that carries it. */\"180\":180,/** Quick exit fade for small parts. */\"200\":200,/** Standard interface transition. */\"240\":240,/** Default exit; the heartwood appearing. */\"300\":300,/** Disc landing, stroke un-write, film scene cross, Born width. */\"400\":400,/** One ring being born; caption word reveal; verify chip; Born height. */\"500\":500,/** Chart bars draw, rises, opacity leg of a grow, foreground fade. */\"600\":600,/** Point-to-point travel and hold; film exit. */\"700\":700,/** Headline word reveal, stroke draw-on, whole-board fade. */\"800\":800,/** Grow. The brand's signature duration: a ring arriving. */\"900\":900,/** Orbits growing out from behind the mark; film growth. */\"1000\":1e3,/** Film headline word reveal. */\"1100\":1100,/** Long hairline, heartwood swing, mark draw-on ring, 'Planting…' hold. */\"1200\":1200,/** Count-up for a card-sized number. */\"1400\":1400,/** Slow settles: the mark turning into place, the dot field opening. */\"2100\":2100,/** Breathe period; count-up for a headline-sized number. */\"2400\":2400,/** Interval between generative swings. */\"4000\":4e3,/** A looping board holds resolved this long before it leaves. */\"4400\":4400,/** Hold for boards whose exit cascade is longer. */\"4800\":4800,/** Standard board loop. */\"6000\":6e3,/** Long hold, for content that must be read before it leaves. */\"8000\":8e3,/** One orbit of a label around the mark. */\"26000\":26e3,/** One idle turn of the ring. */\"40000\":4e4};const stagger={/** Tight: characters, caption words, reverse exits. */\"30\":30,/** Icon set drawing on in reading order. */\"40\":40,/** The brand stagger: chart bars, rings, words, reverse part exits. */\"60\":60,/** Headline words; odometer digits. */\"90\":90,/** Columns of a stats strip. */\"120\":120,/** Parts of one component, in reading order. */\"170\":170,/** Whole objects in a row: cards, posts, sections. */\"200\":200};const easing={/** The UI curve. Long ease-out: fast departure, long deceleration into rest. Every arrival. */grow:[.2,.8,.2,1],/** Grow mirrored in time. For exits that must travel (retracting bars, un-writing strokes). Grow reused backwards throws 68% of the travel into the first fifth and reads as a flicker. */leave:[.8,0,.8,.2],/** The film curve. Symmetric easy-ease: soft start, quick middle, soft settle. Word reveals and any move from one resting point to another. */film:[.7,0,.3,1],/** Ambient pulse. Gentle both ends, no hold. */breathe:[.4,0,.2,1],/** Opacity cross-fades and continuous rotation only. Never position or scale. */linear:[0,0,1,1]};const distance={/** Small label rise. */\"4\":4,/** Footer / caption rise; hover lift. */\"6\":6,/** First part of a component rising; later parts rise less (8 / 6 / 4). */\"8\":8,/** Container rise: cards, panels, Born content. */\"10\":10,/** Film exit drift (upward, while fading). */\"em-0_3\":\"0.3em\",/** Film block rise (body, labels, counter pill). */\"em-0_5\":\"0.5em\",/** Word reveal: fully below its clip mask. */\"em-1_1\":\"1.1em\"};const scale={/** Drawn from nothing: bars (scaleY), rules (scaleX), orbits, heartwood radius. */\"0\":0,/** Grow start: a ring begins at a fifth of its size. */\"0_2\":.2,/** Heartwood start when the mark draws itself on. */\"0_4\":.4,/** Disc landing about the heartwood. */\"0_6\":.6,/** Secondary objects arriving: chips, supporting marks. */\"0_7\":.7,/** Ring radius settle: each ring grows out from 92% so it never crosses the ring inside it. */\"0_92\":.92,/** Press. */\"0_97\":.97,/** Rest. */\"1\":1,/** Breathe peak. */\"1_025\":1.025,/** Attention halo, expanding away from its control. */\"1_5\":1.5};const opacity={\"0\":0,/** Halo start. */\"0_35\":.35,\"1\":1};const rotate={/** A mark turns 14° into its resting angle as it lands. */settle:-14,/** One full revolution. */turn:360};const motion={enter:{default:{transition:{duration:240,delay:0,easing:[.2,.8,.2,1],css:\"240ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"},distance:10},part:{transition:{duration:240,delay:0,easing:[.2,.8,.2,1],css:\"240ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"},stagger:170,/** First part. Each following part rises 2px less. */distance:8},rise:{transition:{duration:600,delay:0,easing:[.2,.8,.2,1],css:\"600ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"},distance:6},grow:{transition:{duration:900,delay:0,easing:[.2,.8,.2,1],css:\"900ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"},/** Opacity finishes before scale, so the object is solid while it is still growing. */opacity:{duration:600,delay:0,easing:[0,0,1,1],css:\"600ms cubic-bezier(0,0,1,1) 0ms\"},scaleFrom:.2},land:{transition:{duration:400,delay:0,easing:[.2,.8,.2,1],css:\"400ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"},scaleFrom:.6},ringBorn:{transition:{duration:500,delay:0,easing:[.2,.8,.2,1],css:\"500ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"},stagger:60,radiusFrom:.92,/** The heartwood appears before the first ring. */heartwood:{duration:300,delay:0,easing:[.2,.8,.2,1],css:\"300ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"}},born:{width:{duration:400,delay:0,easing:[.2,.8,.2,1],css:\"400ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"},height:{duration:500,delay:180,easing:[.2,.8,.2,1],css:\"500ms cubic-bezier(0.2,0.8,0.2,1) 180ms\"}},draw:{transition:{duration:600,delay:0,easing:[.2,.8,.2,1],css:\"600ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"},stagger:60,scaleFrom:0},stroke:{transition:{duration:800,delay:0,easing:[.2,.8,.2,1],css:\"800ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"},stagger:40},rule:{transition:{duration:600,delay:0,easing:[.2,.8,.2,1],css:\"600ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"},/** A rule that spans a timeline or a whole section. */long:{duration:1200,delay:0,easing:[.2,.8,.2,1],css:\"1200ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"}},orbit:{transition:{duration:1e3,delay:0,easing:[.2,.8,.2,1],css:\"1000ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"},stagger:200,scaleFrom:0},settle:{transition:{duration:2100,delay:0,easing:[.2,.8,.2,1],css:\"2100ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"},rotateFrom:-14},field:{transition:{duration:2100,delay:0,easing:[.2,.8,.2,1],css:\"2100ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"}},sequence:{stagger:200},handoff:{delay:180}},text:{caption:{transition:{duration:500,delay:0,easing:[.7,0,.3,1],css:\"500ms cubic-bezier(0.7,0,0.3,1) 0ms\"},stagger:30,distance:\"1.1em\"},headline:{transition:{duration:800,delay:0,easing:[.7,0,.3,1],css:\"800ms cubic-bezier(0.7,0,0.3,1) 0ms\"},stagger:90,distance:\"1.1em\"},film:{transition:{duration:1100,delay:0,easing:[.7,0,.3,1],css:\"1100ms cubic-bezier(0.7,0,0.3,1) 0ms\"},stagger:60,distance:\"1.1em\"}},exit:{quick:{transition:{duration:200,delay:0,easing:[0,0,1,1],css:\"200ms cubic-bezier(0,0,1,1) 0ms\"},stagger:60},default:{transition:{duration:300,delay:0,easing:[0,0,1,1],css:\"300ms cubic-bezier(0,0,1,1) 0ms\"}},container:{transition:{duration:240,delay:240,easing:[0,0,1,1],css:\"240ms cubic-bezier(0,0,1,1) 240ms\"}},retract:{transition:{duration:300,delay:0,easing:[.8,0,.8,.2],css:\"300ms cubic-bezier(0.8,0,0.8,0.2) 0ms\"},stagger:30},unwrite:{transition:{duration:400,delay:0,easing:[.8,0,.8,.2],css:\"400ms cubic-bezier(0.8,0,0.8,0.2) 0ms\"},stagger:30},scene:{transition:{duration:600,delay:0,easing:[0,0,1,1],css:\"600ms cubic-bezier(0,0,1,1) 0ms\"}},board:{transition:{duration:800,delay:0,easing:[0,0,1,1],css:\"800ms cubic-bezier(0,0,1,1) 0ms\"}},film:{transition:{duration:700,delay:0,easing:[.7,0,.3,1],css:\"700ms cubic-bezier(0.7,0,0.3,1) 0ms\"},distance:\"0.3em\"},snap:{transition:{duration:1,delay:0,easing:[0,0,1,1],css:\"1ms cubic-bezier(0,0,1,1) 0ms\"}}},interact:{hover:{transition:{duration:240,delay:0,easing:[.2,.8,.2,1],css:\"240ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"},/** Upward. */distance:6},press:{transition:{duration:120,delay:0,easing:[.2,.8,.2,1],css:\"120ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"},scale:.97},morph:{fill:{duration:240,delay:0,easing:[.2,.8,.2,1],css:\"240ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"},label:{duration:120,delay:0,easing:[0,0,1,1],css:\"120ms cubic-bezier(0,0,1,1) 0ms\"},/** Minimum time the in-progress state is shown. */pendingHold:1200},select:{transition:{duration:240,delay:0,easing:[.2,.8,.2,1],css:\"240ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"}}},emphasis:{count:{transition:{duration:1400,delay:0,easing:[.2,.8,.2,1],css:\"1400ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"},/** Headline-sized figures (millions). */long:{duration:2400,delay:0,easing:[.2,.8,.2,1],css:\"2400ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"}},odometer:{transition:{duration:1200,delay:0,easing:[.7,0,.3,1],css:\"1200ms cubic-bezier(0.7,0,0.3,1) 0ms\"},stagger:90},verify:{transition:{duration:500,delay:0,easing:[.2,.8,.2,1],css:\"500ms cubic-bezier(0.2,0.8,0.2,1) 0ms\"},scaleFrom:.7},markDraw:{ring:{duration:1200,delay:0,easing:[.7,0,.3,1],css:\"1200ms cubic-bezier(0.7,0,0.3,1) 0ms\"},heartwood:{duration:900,delay:0,easing:[.7,0,.3,1],css:\"900ms cubic-bezier(0.7,0,0.3,1) 0ms\"},heartwoodFrom:.4},travel:{transition:{duration:700,delay:0,easing:[.7,0,.3,1],css:\"700ms cubic-bezier(0.7,0,0.3,1) 0ms\"},hold:700,/** The full range in one move home, never a cut back. */return:{duration:900,delay:0,easing:[.7,0,.3,1],css:\"900ms cubic-bezier(0.7,0,0.3,1) 0ms\"}}},ambient:{turn:{transition:{duration:4e4,delay:0,easing:[0,0,1,1],css:\"40000ms cubic-bezier(0,0,1,1) 0ms\"},rotate:360},orbit:{transition:{duration:26e3,delay:0,easing:[0,0,1,1],css:\"26000ms cubic-bezier(0,0,1,1) 0ms\"}},breathe:{transition:{duration:2400,delay:0,easing:[.4,0,.2,1],css:\"2400ms cubic-bezier(0.4,0,0.2,1) 0ms\"},scale:1.025},cue:{transition:{duration:2400,delay:0,easing:[.4,0,.2,1],css:\"2400ms cubic-bezier(0.4,0,0.2,1) 0ms\"},scale:1.5,opacityFrom:.35},swing:{transition:{duration:1200,delay:0,easing:[.7,0,.3,1],css:\"1200ms cubic-bezier(0.7,0,0.3,1) 0ms\"},interval:4e3}},loop:{board:{cycle:6e3,hold:4400,/** When the exit cascade is longer than ~500ms. */holdLong:4800},read:{hold:8e3},scene:{transition:{duration:400,delay:0,easing:[.7,0,.3,1],css:\"400ms cubic-bezier(0.7,0,0.3,1) 0ms\"}}}};/** A bezier tuple as a CSS timing function. */const css=e=>\"cubic-bezier(\"+e.join(\",\")+\")\";/** One CSS transition entry for a property, optionally with an extra delay (e.g. a stagger). */const tr=(t,prop,delay=t.delay)=>prop+\" \"+t.duration+\"ms \"+css(t.easing)+\" \"+delay+\"ms\";/** Milliseconds to frames (film is authored at 30fps). */const frames=(msValue,fps=30)=>Math.round(msValue*fps/1e3);/** Evaluate a bezier at progress p (0–1), for JS-driven motion: counters, variable axes, rAF loops. */const ease=e=>p=>{const[x1,y1,x2,y2]=e;if(p<=0)return 0;if(p>=1)return 1;let lo=0,hi=1,u=p;for(let i=0;i<22;i++){u=(lo+hi)/2;const x=3*(1-u)*(1-u)*u*x1+3*(1-u)*u*u*x2+u*u*u;if(x<p)lo=u;else hi=u;}u=(lo+hi)/2;return 3*(1-u)*(1-u)*u*y1+3*(1-u)*u*u*y2+u*u*u;};/** True when the viewer has asked for reduced motion. Settle to the resolved state instead of playing. */const reducedMotion=()=>typeof window!==\"undefined\"&&!!window.matchMedia&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;// </annuli-motion-tokens>\n// Annuli boards read their motion from the tokens above; short names for the board code\nconst M=motion,EZ=easing,SC=scale,bz=css,easeOf=ease;// Warm the connection to Vimeo before a player asks for it. DNS and TLS to\n// player.vimeo.com were sitting on the first film's critical path.\nlet vimeoPrimed=false;const primeVimeo=()=>{if(vimeoPrimed||typeof document===\"undefined\")return;vimeoPrimed=true;for(const href of[\"https://player.vimeo.com\",\"https://i.vimeocdn.com\",\"https://f.vimeocdn.com\"]){const link=document.createElement(\"link\");link.rel=\"preconnect\";link.href=href;link.crossOrigin=\"\";document.head.appendChild(link);}};const VIMEO_QUEUE_KEY=\"__nsmVimeoQueue\";// Three players may start together, 150ms apart. Enough to stop a page of\n// twenty tiles hitting Vimeo as one burst, without the long serial wait a\n// single-file queue produced.\nconst VIMEO_GAP_MS=150;const VIMEO_CONCURRENCY=3;const enqueueVimeo=job=>{const w=window;const q=w[VIMEO_QUEUE_KEY]??={items:[],active:0};q.items.push(job);const pump=()=>{while(q.active<VIMEO_CONCURRENCY&&q.items.length){const fn=q.items.shift();if(!fn)break;q.active++;try{fn();}catch{}setTimeout(()=>{q.active--;pump();},VIMEO_GAP_MS);}};pump();};const isFilmRow=x=>typeof x===\"object\"&&x!==null&&\"row\"in x;const CHAPTER_LABELS={\"bbc-nl-rebrand\":{chapter07:\"Channel OSP\"},\"doctor-who\":{chapter07:\"Cinemagraph Iconics\"},\"fifa-26-opening-titles-pitch\":{chapter07:\"Motion Theory\"}};// Chapters whose leftover CMS media should not render under the film grid\nconst CHAPTER07_HIDE_STILLS=new Set([\"doctor-who\",\"walking-with-dinosaurs\"]);// Projects where 08 Results is a chapter of its own: the heading renames and\n// the chapter carries its approach copy above the film.\nconst RESULTS_CHAPTER={// Annuli closes on an Outcome statement, Koto-style — no stats, no film yet\n\"annuli\":{label:\"Outcome\",copy:\"One ring carries the whole system. The mark holds at 24px and as a cast object, and the same ring sets the design system, the eight-screen app, the institutional dashboard and the motion grammar. Named for the annual rings a trunk lays down, Annuli counts them — a year is a ring, and a ring has to be earned. The film is next: the ring turning, the rim light finding it.\"},\"doctor-who\":{label:\"Dalek Product Promo\",copy:\"The Dalek gets the treatment a marque gives a car — studio light on metal, macro passes over rivet and grille, the silhouette speaking for itself. Playing it straight is the joke, and the craft.\"},\"death-valley\":{label:\"Title Sequence\"},\"green-planet-ar\":{label:\"Activation\"},\"whoniverse\":{label:\"Nebulas\"},\"fifa-26-opening-titles-pitch\":{label:\"Results\",copy:\"Pitch stage. FIFA presented as boards, style frames and an animated sequence. Both Telemundo routes developed through a client feedback round.\"},\"product-motion\":{label:\"SAAS\"}};// Projects that suppress 08 Results entirely — heading, stats and film.\n// CMS stat rows stay in place, so lifting a slug out of this set restores them.\nconst RESULTS_HIDE=new Set([\"walking-with-dinosaurs\",\"crystallum\",\"runrate\",\"runrate-old\",\"quadrant\"]);const CHAPTER07_LOOPS={// 60th-anniversary key art brought to life: stills that hold like print\n// and move like film. All four masters are true 1:1 (verified).\n\"doctor-who\":[{labelGroup:{title:\"\",films:[{row:[{id:\"1222082271\",label:\"Special 01\",ar:\"1 / 1\",sourceAr:1},{id:\"1222082193\",label:\"Special 02\",ar:\"1 / 1\",sourceAr:1},{id:\"1222082277\",label:\"Special 03\",ar:\"1 / 1\",sourceAr:1}]},{id:\"1222082285\",label:\"They're Back\",full:true,ar:\"1 / 1\",sourceAr:1}]}}],\"planet-earth-iii\":[{labelGroup:{title:\"\",films:[{id:\"1219361160\",label:\"Room — top view\",full:true,ar:\"2 / 1\",sourceAr:2},{row:[{id:\"1219360520\",label:\"Iconic 9:16 logo\",ar:\"9 / 16\",sourceAr:9/16},{id:\"1219360536\",label:\"Making of — elephants\",span:2,ar:\"16 / 9\",fill:true}]}]}}],// Square studio masters, so sourceAr is 1 — without it the cover maths\n// assumes 16:9 and crops the car apart.\n\"bugatti-tourbillon\":[{labelGroup:{title:\"Studio\",films:[{id:\"1215629619\",label:\"Studio 02\",full:true,ar:\"1 / 1\",sourceAr:1},{row:[{id:\"1215629617\",label:\"Studio 03\",ar:\"1 / 1\",sourceAr:1,fill:true},{id:\"1215629616\",label:\"Studio 01\",span:2,ar:\"16 / 9\",sourceAr:1}]}]}}],\"dreamworks-channel-idents\":[{labelGroup:{title:\"Idents\",// Three box ratios across four scales. Every master is 16:9, so\n// sourceAr stays at the default and the player covers the box —\n// the square and 4:3 boxes crop the sides of a centred frame.\n// Scale follows the film: the strongest get the largest or most\n// unusual boxes, the weakest get modest ones — but always bounded\n// by a neighbour, never floating small on open black. Po appears\n// here as well as in the band above; the band is a 2:1 crop, this\n// is a different framing of the same ident.\n// Ratios inside each row are chosen so the boxes finish level —\n// the shorter film crops taller rather than leaving black beneath\n// it. Po takes the tall slot; it is the strongest ident and earns\n// the most severe crop.\n// Natural ratios kept. Where a row would leave black beneath the\n// shorter box, that box fills instead and the player crops further\n// into the film — the frame gives way, not the layout.\nfilms:[{id:\"1204506883\",label:\"Puss in Boots\",full:true,ar:\"16 / 9\"},{row:[{id:\"1204508461\",label:\"Mr. Peabody & Sherman\",span:2,ar:\"16 / 9\",fill:true},{id:\"1204506885\",label:\"Kung Fu Panda\",ar:\"4 / 5\"}]},{id:\"1204506882\",label:\"Home\",ar:\"4 / 3\"},{id:\"1204506884\",label:\"Penguins of Madagascar\",ar:\"4 / 3\"},{row:[{id:\"1204508752\",label:\"The Boss Baby\",ar:\"1 / 1\",fill:true},{id:\"1204508195\",label:\"Voltron\",span:2,ar:\"16 / 9\"}]},{id:\"1204508229\",label:\"Trollhunters\",full:true,ar:\"16 / 9\"}]}}],\"bbc-nl-rebrand\":[{labelGroup:{title:\"Bumpers\",layout:\"staggered\",films:[{id:\"1216105691\",label:\"Channel OSP 01\",ar:\"16 / 9\"},{id:\"1216105690\",label:\"Channel OSP 02\",ar:\"16 / 9\"}]}},{labelGroup:{title:\"Openers\",// Colour 2 drops to the next row, leaving the space beside\n// Colour 1 empty; anything after the pair follows normally.\nfilms:[{id:\"1216255157\",label:\"Colour 1\",ar:\"16 / 9\"},{id:\"1216246748\",label:\"Colour 2\",ar:\"16 / 9\"},{id:\"1216254422\",label:\"Opener ATV\",ar:\"16 / 9\"}]}},{labelGroup:{title:\"Closers\",films:[{id:\"1216254420\",label:\"5s Colour 1\",ar:\"16 / 9\"},{id:\"1216246837\",label:\"5s Colour 2\",ar:\"16 / 9\"}]}},{labelGroup:{title:\"End Boards\",films:[{id:\"1216234996\",label:\"End Board 01\",ar:\"16 / 9\"},{id:\"1216234997\",label:\"End Board 02\",ar:\"16 / 9\"}]}},{labelGroup:{title:\"Promo Opener\",films:[{id:\"1216246185\",label:\"Opener ATV\",ar:\"16 / 9\"},{id:\"1216254419\",label:\"Closer\",ar:\"16 / 9\"}]}},{labelGroup:{title:\"Pointers\",films:[{id:\"1216254676\",label:\"Next\",ar:\"16 / 9\"},{id:\"1216254421\",label:\"Strap\",ar:\"16 / 9\"}]}},{labelGroup:{title:\"ECS\",films:[{id:\"1216254472\",label:\"Promo / Image\",full:true,ar:\"16 / 9\"}]}}],// FIFA 26 Motion Theory — 20 type studies, every master a true 1280x1280\n// square (verified). Band opener and closer crop the square to 2:1.\n\"fifa-26-opening-titles-pitch\":[{labelGroup:{title:\"\",films:[{id:\"1222670811\",label:\"Type study 01\",full:true,ar:\"2 / 1\",sourceAr:1},{row:[{id:\"1222670184\",label:\"Type study 02\",ar:\"1 / 1\",sourceAr:1},{id:\"1222670186\",label:\"Type study 03\",ar:\"1 / 1\",sourceAr:1},{id:\"1222670187\",label:\"Type study 04\",ar:\"1 / 1\",sourceAr:1}]},{row:[{id:\"1222670185\",label:\"Type study 05\",ar:\"1 / 1\",sourceAr:1},{id:\"1222670253\",label:\"Type study 06\",ar:\"1 / 1\",sourceAr:1},{id:\"1222670268\",label:\"Type study 07\",ar:\"1 / 1\",sourceAr:1}]},{row:[{id:\"1222670317\",label:\"Type study 08\",ar:\"1 / 1\",sourceAr:1},{id:\"1222670343\",label:\"Type study 09\",ar:\"1 / 1\",sourceAr:1},{id:\"1222670396\",label:\"Type study 10\",ar:\"1 / 1\",sourceAr:1}]},{row:[{id:\"1222670425\",label:\"Type study 11\",ar:\"1 / 1\",sourceAr:1},{id:\"1222670468\",label:\"Type study 12\",ar:\"1 / 1\",sourceAr:1},{id:\"1222670509\",label:\"Type study 13\",ar:\"1 / 1\",sourceAr:1}]},{row:[{id:\"1222670534\",label:\"Type study 14\",ar:\"1 / 1\",sourceAr:1},{id:\"1222670557\",label:\"Type study 15\",ar:\"1 / 1\",sourceAr:1},{id:\"1222670656\",label:\"Type study 16\",ar:\"1 / 1\",sourceAr:1}]},{row:[{id:\"1222670677\",label:\"Type study 17\",ar:\"1 / 1\",sourceAr:1},{id:\"1222670694\",label:\"Type study 18\",ar:\"1 / 1\",sourceAr:1},{id:\"1222670731\",label:\"Type study 19\",ar:\"1 / 1\",sourceAr:1}]},{id:\"1222670807\",label:\"Type study 20\",full:true,ar:\"2 / 1\",sourceAr:1}]}},{labelGroup:{title:\"Breakbumpers\",films:[{id:\"1222669781\",label:\"Scissor kick\",full:true,ar:\"16 / 9\"},{row:[{id:\"1222669667\",label:\"Football kick\",ar:\"16 / 9\"},{id:\"1222669664\",label:\"Football player\",ar:\"16 / 9\"}]},{id:\"1222669665\",label:\"Football close-up — closer\",full:true,ar:\"16 / 9\"}]}}],// Creature R&D loops. The two turntable masters are true 1:1 (verified\n// 1280/1920 square); the rest are 16:9. The films replace the CMS still,\n// which CHAPTER07_HIDE_STILLS keeps out from under the grid.\n\"walking-with-dinosaurs\":[{labelGroup:{title:\"\",films:[{id:\"1215295735\",label:\"T-Rex — sequence\",full:true,ar:\"16 / 9\"},{row:[{id:\"1217056864\",label:\"T-Rex — wireframe\",ar:\"1 / 1\",sourceAr:1},{id:\"1217055522\",label:\"T-Rex — turntable\",ar:\"1 / 1\",sourceAr:1}]},{row:[{id:\"1215295737\",label:\"Veluum — sequence\",ar:\"16 / 9\"},{id:\"1215295736\",label:\"WWD — R&D\",ar:\"16 / 9\"}]}]}}]};// full: true runs edge to edge; the rest pair up two across. Alternating the\n// two stops eight 16:9 films reading as a contact sheet.\n// ar: the film's own aspect ratio, when it is not 16:9. Getting this wrong is\n// what letterboxes the player inside its box and leaves grey bars.\n// loop: play the chapter like the full-bleed band — silent, looping, no player\n// chrome and no caption — rather than as click-to-play films that carry sound.\nconst MOTION={// Studio and DeepScreen loops lead (all true 2:1); in-situ closes small\n\"green-planet-ar\":{loop:true,films:[{id:\"1222176649\",label:\"Lifeline\",full:true,ar:\"2 / 1\"},{id:\"1222176650\",label:\"DeepScreen Pulse\",full:true,ar:\"2 / 1\"},{id:\"1222176648\",label:\"DeepScreen\",full:true,ar:\"2 / 1\"},{id:\"1215608749\",label:\"In Situ\",ar:\"16 / 9\"}]}};/** slug → a single silent loop that closes 08 Results */const RESULTS={\"bugatti-tourbillon\":{id:\"1215629618\",label:\"Studio 04\",full:true,ar:\"1 / 1\"},\"bbc-nl-rebrand\":{id:\"1216090446\",label:\"BBC NL Montage\",full:true},\"planet-earth-iii\":{id:\"1215607530\",label:\"PEIII Event — Making Of\",full:true},\"death-valley\":{id:\"1216085898\",label:\"Death Valley — Title Sequence\",full:true},\"green-planet-ar\":{id:\"1215608437\",label:\"TGP — Activation\",full:true},// 2.39:1 scope master, with sound — verified 1920x804\n\"doctor-who\":{id:\"1222045477\",label:\"Dalek — Product Commercial\",full:true,ar:\"1920 / 804\"},// 1.4:1 master — verified 1792x1280, box at true ratio so it shows whole\n\"whoniverse\":{id:\"1222518949\",label:\"Nebulas\",full:true,ar:\"1792 / 1280\"}};// Projects whose 08 section carries a wall of films rather than one. Each\n// entry is a full-width film or a { row } of side-by-side films; every box\n// ar is the film's true ratio (all verified), so nothing crops.\nconst RESULTS_ROWS={// FIFA 26 CG hero films — all verified 1920x1080\n\"fifa-26-opening-titles-pitch\":[{id:\"1222671119\",label:\"FIFA 26 — edit\",full:true,ar:\"16 / 9\"}],\"product-motion\":[// SaaS demos + Digital Carousel — all verified 16:9\n{row:[{id:\"1226955120\",label:\"SaaS Demo 03\",ar:\"16 / 9\"},{id:\"1226955122\",label:\"SaaS Demo 02\",ar:\"16 / 9\"}]},{row:[{id:\"1226955119\",label:\"SaaS Demo 01\",ar:\"16 / 9\"},{id:\"1226955118\",label:\"Digital Carousel\",ar:\"16 / 9\"}]},{row:[{id:\"1222527532\",label:\"Glassmorph 02\",ar:\"1 / 1\"},{id:\"1222527505\",label:\"Glassmorph 01\",ar:\"1 / 1\"},{id:\"1222527544\",label:\"Glassmorph 03\",ar:\"1 / 1\"}]},{row:[{id:\"1222527507\",label:\"Brands in motion\",ar:\"16 / 9\"},{id:\"1222527504\",label:\"Find facts\",ar:\"16 / 9\"}]},// Phyto A brightening treatment — verified 1920x1080, own gold title\n{id:\"1229906171\",label:\"SkinCeuticals\",ar:\"16 / 9\",sound:true,titled:true}],// A Perfect Planet key art — all verified 2160x2160. sound: press to\n// play with the composed score (Vimeo's own button; one at a time).\n\"a-perfect-planet\":[{id:\"1225229716\",label:\"Iconic\",full:true,ar:\"1 / 1\",sound:true},{row:[{id:\"1225230244\",label:\"Whale Oceans\",ar:\"1 / 1\",sound:true},{id:\"1225229715\",label:\"Flamingo\",ar:\"1 / 1\",sound:true}]},{id:\"1225229717\",label:\"Human\",full:true,ar:\"1 / 1\",sound:true},{row:[{id:\"1225230321\",label:\"Wolf Light\",ar:\"1 / 1\",sound:true},{id:\"1225229718\",label:\"Eagle\",ar:\"1 / 1\",sound:true}]}]};/** slug → the single film that replaces the full-bleed still, with its ratio */const FULL_BLEED={// B4 form assembly drift — 1920x1080 verified from the player config,\n// 6s, silent, so it runs as a loop behind the project head\n\"annuli\":{id:\"1224652218\",ar:16/9},\"dreamworks-channel-idents\":{id:\"1204506885\",ar:16/9},// Triptych master is 2:1, not 16:9 — see the note on `fit` below.\n\"bugatti-tourbillon\":{id:\"1215576479\",ar:426/214},\"bbc-nl-rebrand\":{id:\"1216105473\",ar:16/9},// Regen logo loop — 2560x1280, a true 2:1 like the Dalek loop it replaced\n\"doctor-who\":{id:\"1222064020\",ar:2},\"planet-earth-iii\":{id:\"1215607292\",ar:2},// WATCH EDIT 2_colour — 2.37:1, matching the studio's wide master format\n\"rolex-oyster-perpetual-cosmograph\":{id:\"1216796334\",ar:2.37},// WWD TEASER FULL_1x1 — square master shown whole: the band takes the\n// film's own ratio instead of cropping it\n\"walking-with-dinosaurs\":{id:\"1217057830\",ar:1,uncropped:true},// Product Motion SaaS montage — 3840x2160 16:9, carries audio: click to\n// FIFA 26 closer — verified 1920x1080, shown whole after Approach\n\"fifa-26-opening-titles-pitch\":{id:\"1222669666\",ar:16/9,uncropped:true},// WHONIVERSE end-resolve — true 2560x1080 (verified), shown whole\n\"whoniverse\":{id:\"1222517338\",ar:2560/1080,uncropped:true},// Crystallum master carries the Lux Aeterna audio, so it does not autoplay:\n// the band shows Vimeo's own play button and plays with sound on click.\n// NOTE: 16:9 is the embed's claim, unverified — the film returned 401\n// (privacy) at config time; re-verify once its embed allowlist is fixed.\n\"crystallum\":{id:\"1179278793\",ar:16/9,uncropped:true,sound:true},// TGP heartbeat — square master, same hard crop in the band\n\"green-planet-ar\":{id:\"1215608136\",ar:1}};const slugNow=()=>window.location.pathname.split(\"/\").filter(Boolean).pop()||\"\";// Silent, looping, no player chrome — Vimeo's own title, byline, avatar and\n// controls are all suppressed, so the film reads as footage rather than a post.\nconst LOOPING=\"background=1&autoplay=1&loop=1&muted=1&autopause=0\";// Click to play, one at a time: these carry sound, so starting one stops the last.\nconst INTERACTIVE=\"autopause=1\";// Vimeo is the only third party that sets cookies here. Until the visitor\n// accepts in the consent banner, every player runs in do-not-track mode.\nconst CONSENT_KEY=\"nsm-cookie-consent\";const trackingAllowed=()=>{try{return localStorage.getItem(CONSENT_KEY)===\"granted\";}catch{return false;}};const DNT=()=>trackingAllowed()?\"dnt=0\":\"dnt=1\";const player=(id,opts,title)=>{const iframe=document.createElement(\"iframe\");iframe.title=title;iframe.setAttribute(\"frameborder\",\"0\");iframe.setAttribute(\"referrerpolicy\",\"strict-origin-when-cross-origin\");iframe.setAttribute(\"allow\",\"autoplay; fullscreen; picture-in-picture\");Object.assign(iframe.style,{position:\"absolute\",top:\"0\",left:\"0\",width:\"100%\",height:\"100%\",border:\"0\"});// Do-not-track stays on until the visitor accepts cookies in the banner\niframe.dataset.src=`https://player.vimeo.com/video/${id}?title=0&byline=0&portrait=0&badge=0&${DNT()}&${opts}`;return iframe;};/**\n * Loads an iframe only once it is nearly in view, then stops watching it.\n * Pacing is handled centrally by enqueueVimeo, shared across every override.\n */const lazily=frames=>{const io=new IntersectionObserver(entries=>{for(const e of entries){if(!e.isIntersecting)continue;const f=e.target;io.unobserve(f);const url=f.dataset.src;if(url){delete f.dataset.src;enqueueVimeo(()=>{f.src=url;});}}},{rootMargin:\"300px\"});for(const f of frames)io.observe(f);return io;};const GUTTER=8;/** the box a film sits in: fixes its ratio and gives it an opaque backdrop */const stage=film=>{const box=document.createElement(\"div\");Object.assign(box.style,{position:\"relative\",width:\"100%\",aspectRatio:film.ar??\"16 / 9\",background:\"#1A1916\",overflow:\"hidden\"});return box;};const emptyCellFor=bucket=>{const blank=document.createElement(\"div\");blank.setAttribute(\"aria-hidden\",\"true\");bucket.push(blank);return blank;};const isChapter07Group=item=>\"labelGroup\"in item;/**\n * Cancels a section's own padding so films sit near the viewport edge, leaving\n * only the gutter — headings above keep their inset.\n */const bleedInto=(host,grid,onBleed)=>()=>{const pad=parseFloat(getComputedStyle(host).paddingLeft)||0;const out=Math.max(0,pad-GUTTER);grid.style.marginLeft=-out+\"px\";grid.style.marginRight=-out+\"px\";grid.style.width=`calc(100% + ${out*2}px)`;if(onBleed)onBleed(out);// one across on narrow screens, where a pair would be unreadable\n    grid.style.gridTemplateColumns=host.clientWidth<720?\"1fr\":\"repeat(2, 1fr)\";};/** 07 Motion — replaces the chapter's still grid with the project's films */export function withVideoGrid(Component){return props=>{const ref=useRef(null);useEffect(()=>{const host=ref.current?.firstElementChild;if(!host)return;const slug=slugNow();const chapter07=CHAPTER_LABELS[slug]?.chapter07;// Headings carry no number now, so the section is found by name. The\n// set includes every per-project rename, otherwise a renamed heading\n// stops matching on the next mount and the films silently vanish.\nconst HEADINGS=[\"Motion\",...Object.values(CHAPTER_LABELS).map(v=>v.chapter07).filter(Boolean)];const isHeading=t=>{const s=t.trim().toLowerCase();return HEADINGS.some(n=>String(n).toLowerCase()===s);};let picked=null;for(const el of host.querySelectorAll(\"*\")){const text=el.textContent||\"\";if(!isHeading(text))continue;let depth=0;for(let p=el;p&&p!==host;p=p.parentElement)depth++;const size=text.trim().length;if(!picked||depth>picked.depth||depth===picked.depth&&size<picked.size){picked={el,text,depth,size};}}let labelEl=null;let labelText=\"\";if(picked){// track the heading even without a rename — the hide-stills\n// pass must recurse past it, never hide its wrapper whole\nlabelEl=picked.el;labelText=picked.text;if(chapter07)picked.el.textContent=chapter07;}// Same rule as withChapter: a chapter with nothing in it should not\n// render as a heading over empty space. 07 needs it inline because a\n// node takes only one override.\nconst hasMedia=()=>{if(host.querySelector(\"img, iframe, video\"))return true;for(const el of host.querySelectorAll(\"*\")){const bg=getComputedStyle(el).backgroundImage;if(bg&&bg!==\"none\"&&bg.includes(\"url(\"))return true;}return false;};const settle=()=>{host.style.display=hasMedia()?\"\":\"none\";};const loops=CHAPTER07_LOOPS[slug];if(picked&&loops?.length){host.style.display=\"\";const grid=document.createElement(\"div\");Object.assign(grid.style,{display:\"grid\",gap:GUTTER+\"px\",marginTop:\"8px\"});const frames=[];const coverFits=[];const hiddenEmpty=[];const blankCells=[];const groupLabels=[];const textCell=document.createElement(\"div\");Object.assign(textCell.style,{alignSelf:\"center\",justifySelf:\"start\",width:\"100%\"});const note=Array.from(host.querySelectorAll(\"p\")).find(el=>{if(!el.textContent?.trim())return false;if(isHeading(el.textContent||\"\"))return false;if(grid.contains(el))return false;return true;});let noteParent=null;let noteNext=null;let noteWrapper=null;let noteWrapperDisplay=\"\";let noteDisplay=\"\";const noteClones=[];if(note){noteParent=note.parentElement;noteNext=note.nextSibling;textCell.appendChild(note);noteDisplay=note.style.display;note.style.display=\"none\";const paragraphs=(note.textContent||\"\").split(/\\n\\s*\\n+/).map(text=>text.trim()).filter(Boolean);const lineHeight=getComputedStyle(note).lineHeight;const rhythm=!lineHeight||lineHeight===\"normal\"?\"1em\":lineHeight;for(let i=0;i<paragraphs.length;i++){const clone=note.cloneNode(true);clone.style.display=noteDisplay;clone.textContent=paragraphs[i];// tighten the eyebrow→copy relationship: the first line sits\n// directly under its section label rather than carrying the\n// CMS paragraph's inherited top margin\nclone.style.marginTop=i>0?rhythm:\"0px\";textCell.appendChild(clone);noteClones.push(clone);}if(noteParent&&!noteParent.textContent?.trim()&&!noteParent.querySelector(\"img, iframe, video\")){noteWrapper=noteParent;noteWrapperDisplay=noteWrapper.style.display;noteWrapper.style.display=\"none\";}}const addLoopCell=film=>{const cell=document.createElement(\"div\");if(film.span&&film.span>1)cell.style.gridColumn=`span ${film.span}`;else if(film.full||film.width)cell.style.gridColumn=\"1 / -1\";const box=stage(film);if(film.fill){box.style.aspectRatio=\"auto\";box.style.height=\"100%\";}if(film.width){box.style.width=film.width;box.style.marginLeft=film.align===\"right\"?\"auto\":film.align===\"center\"?\"auto\":\"0\";box.style.marginRight=film.align===\"left\"?\"auto\":film.align===\"center\"?\"auto\":\"0\";}const f=player(film.id,LOOPING,film.label);f.style.pointerEvents=\"none\";const sourceAr=film.sourceAr??16/9;const fit=()=>{const w=box.clientWidth;const h=box.clientHeight;if(!w||!h)return;const over=w/h>sourceAr;Object.assign(f.style,{top:\"50%\",left:\"50%\",transform:\"translate(-50%, -50%)\",width:(over?w:Math.ceil(h*sourceAr))+2+\"px\",height:(over?Math.ceil(w/sourceAr):h)+2+\"px\"});};coverFits.push({host:box,fit});box.appendChild(f);cell.appendChild(box);frames.push(f);return cell;};const addGroupTitle=title=>{// a blank title renders no heading at all — no empty label,\n// no leftover top margin\nif(!title||!title.trim())return;const label=document.createElement(\"p\");label.textContent=title;Object.assign(label.style,{gridColumn:\"1 / -1\",margin:\"24px 0 0 0\",font:\"500 11px/1.2 'Geist', 'Geist Placeholder', sans-serif\",letterSpacing:\"0.18em\",textTransform:\"uppercase\",color:\"rgba(242, 237, 228, 0.6)\"});grid.appendChild(label);groupLabels.push(label);};// Chapter copy sits directly beneath the 07 heading, ahead of the\n// groups, rather than inside the first row.\ntextCell.style.gridColumn=\"1 / -1\";textCell.style.marginBottom=\"8px\";grid.appendChild(textCell);// A row spans the grid and lays its films out side by side at their\n// own ratios, so heights vary across the row instead of every tile\n// matching its neighbour.\nconst rowGrids=[];const appendItem=item=>{if(!isFilmRow(item)){grid.appendChild(addLoopCell(item));return;}const row=document.createElement(\"div\");Object.assign(row.style,{gridColumn:\"1 / -1\",display:\"grid\",gap:GUTTER+\"px\",alignItems:item.row.some(x=>x.fill)?\"stretch\":\"start\",gridTemplateColumns:`repeat(${item.row.length}, 1fr)`});const cols=item.row.reduce((n,x)=>n+(x.span??1),0);row.style.gridTemplateColumns=`repeat(${cols}, 1fr)`;rowGrids.push({el:row,count:cols});for(const film of item.row)row.appendChild(addLoopCell(film));grid.appendChild(row);};for(const item of loops){if(!isChapter07Group(item))continue;const group=item.labelGroup;addGroupTitle(group.title);if(group.layout===\"bumpersWithCopyRight\"){const lead=group.films[0];const tail=group.films[1];if(lead)appendItem(lead);grid.appendChild(emptyCellFor(blankCells));if(tail){const blank=document.createElement(\"div\");blank.setAttribute(\"aria-hidden\",\"true\");blankCells.push(blank);grid.appendChild(blank);appendItem(tail);}}else if(group.layout===\"staggered\"){// Same geometry as the bumpers stagger, but the cell\n// beside the lead film is left empty rather than\n// carrying copy.\nconst emptyCell=()=>{const blank=document.createElement(\"div\");blank.setAttribute(\"aria-hidden\",\"true\");blankCells.push(blank);return blank;};const lead=group.films[0];const tail=group.films[1];if(lead)appendItem(lead);grid.appendChild(emptyCell());if(tail){grid.appendChild(emptyCell());appendItem(tail);}// anything past the staggered pair pairs up as usual\nfor(const extra of group.films.slice(2))appendItem(extra);}else{for(const film of group.films)appendItem(film);}}primeVimeo();host.appendChild(grid);const hasRenderedMedia=root=>{if(root.querySelector(\"img, iframe, video\"))return true;for(const el of[root,...Array.from(root.querySelectorAll(\"*\"))]){const bg=getComputedStyle(el).backgroundImage;if(bg&&bg!==\"none\"&&bg.includes(\"url(\"))return true;}return false;};// Leftover CMS media from an earlier layout of this section —\n// hide only the media lists. The section heading and copy can\n// share a wrapper with them, so recurse into any block holding\n// the label rather than hiding it whole.\nif(CHAPTER07_HIDE_STILLS.has(slug)){const hideIn=root=>{for(const child of Array.from(root.children)){// the grid and the label are kept whole — never\n// descend into them, their media is the content\nif(child===grid||labelEl&&child===labelEl)continue;if(child.contains(grid)||labelEl&&child.contains(labelEl)){hideIn(child);continue;}if(!hasRenderedMedia(child))continue;hiddenEmpty.push({el:child,display:child.style.display});child.style.display=\"none\";}};hideIn(host);}// Collection list shells can stay behind as empty boxes when a\n// project's list has no items. Hide truly empty media containers.\nfor(const el of host.querySelectorAll(\"*\")){if(el===grid||el.contains(grid))continue;if(el===textCell||textCell.contains(el))continue;if(!el.childElementCount)continue;if(hasRenderedMedia(el))continue;if(el.textContent?.trim())continue;hiddenEmpty.push({el,display:el.style.display});el.style.display=\"none\";}const bleed=bleedInto(host,grid,out=>{textCell.style.paddingLeft=out+\"px\";textCell.style.paddingRight=out+\"px\";for(const label of groupLabels){label.style.paddingLeft=out+\"px\";label.style.paddingRight=out+\"px\";}for(const blank of blankCells)blank.style.display=host.clientWidth<720?\"none\":\"\";for(const r of rowGrids){r.el.style.gridTemplateColumns=host.clientWidth<720?\"1fr\":host.clientWidth<1e3&&r.count>2?\"repeat(2, 1fr)\":`repeat(${r.count}, 1fr)`;}});bleed();const ro=new ResizeObserver(bleed);ro.observe(host);const coverRo=new ResizeObserver(()=>{for(const item of coverFits)item.fit();});for(const item of coverFits){coverRo.observe(item.host);item.fit();}const io=lazily(frames);return()=>{io.disconnect();ro.disconnect();coverRo.disconnect();grid.remove();if(note&&noteParent){note.style.display=noteDisplay;if(noteNext&&noteNext.parentNode===noteParent)noteParent.insertBefore(note,noteNext);else noteParent.appendChild(note);}for(const clone of noteClones)clone.remove();if(noteWrapper)noteWrapper.style.display=noteWrapperDisplay;for(const item of hiddenEmpty)item.el.style.display=item.display;if(labelEl)labelEl.textContent=labelText;};}const chapter=MOTION[slug];const list=chapter?.films;if(!list||!list.length){// no films for this project — fall back to whatever stills it has\nsettle();const mo=new MutationObserver(settle);mo.observe(host,{childList:true,subtree:true,attributes:true,attributeFilter:[\"style\",\"src\"]});const t=setTimeout(()=>{settle();mo.disconnect();},2500);return()=>{clearTimeout(t);mo.disconnect();host.style.display=\"\";if(labelEl)labelEl.textContent=labelText;};}host.style.display=\"\";if(host.querySelector(\"[data-nsm-results-grid]\"))return;const grid=document.createElement(\"div\");grid.setAttribute(\"data-nsm-results-grid\",\"1\");Object.assign(grid.style,{display:\"grid\",gap:GUTTER+\"px\",marginTop:\"8px\"});const frames=[];for(const v of list){const cell=document.createElement(\"div\");Object.assign(cell.style,{display:\"flex\",flexDirection:\"column\",gap:\"12px\"});if(v.full)cell.style.gridColumn=\"1 / -1\";const box=stage(v);const f=player(v.id,chapter.loop?LOOPING:INTERACTIVE,v.label);if(chapter.loop)f.style.pointerEvents=\"none\";box.appendChild(f);cell.appendChild(box);// A looping chapter is a wall of footage; captions would label\n// frames nobody can pause or read a title on anyway.\nif(!chapter.loop&&chapter.captions!==false){const cap=document.createElement(\"p\");cap.textContent=v.label;Object.assign(cap.style,{margin:\"0\",font:\"500 11px/1.2 'Geist', 'Geist Placeholder', sans-serif\",letterSpacing:\"0.18em\",textTransform:\"uppercase\",color:\"rgba(242, 237, 228, 0.6)\"});cell.appendChild(cap);}grid.appendChild(cell);frames.push(f);}host.appendChild(grid);const bleed=bleedInto(host,grid);bleed();const ro=new ResizeObserver(bleed);ro.observe(host);const io=lazily(frames);return()=>{io.disconnect();ro.disconnect();grid.remove();if(labelEl)labelEl.textContent=labelText;};},[]);return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{display:\"contents\"},children:/*#__PURE__*/_jsx(Component,{...props})});};}/** 08 Results — closes the chapter with one full-width silent loop */// Projects whose 02 Approach section is hidden for now (copy pending).\nconst APPROACH_HIDE=new Set([\"product-motion\"]);// Koto / Pony arrangement for selected projects: the full-bleed opens the page\n// above the Challenge statement, the Approach copy is split into labelled\n// interludes (one per paragraph, the bold lead-in becomes the label) and\n// chapter headings are renamed by role.\nconst MEDIA_FIRST=new Set([\"annuli\",\"runrate\",\"quadrant\"]);// slugs whose Full Bleed still section is hidden outright\nconst FULL_BLEED_HIDE=new Set([\"product-motion\",\"runrate\",\"runrate-old\",\"the-universe\",\"quadrant\"]);const SPLIT_APPROACH=new Set([\"annuli\",\"runrate\",\"quadrant\"]);const HEADING_RENAMES={};// Template chapters replaced by the discipline interludes below (label leaf text, lower-case)\nconst HIDE_CHAPTERS={\"annuli\":[\"sequence stills\",\"identity system\",\"cg work\",\"objects\",\"motion\",\"application\"],// Runrate case (draft): same Koto/Pony arrangement as Annuli; media lives in the interludes below\n\"runrate\":[\"sequence stills\",\"identity system\",\"cg work\",\"objects\",\"motion\",\"application\"],// Quadrant case (draft): same Koto/Pony arrangement; media lives in the interludes below\n\"quadrant\":[\"sequence stills\",\"identity system\",\"cg work\",\"objects\",\"motion\",\"application\"]};// Interactive cells: self-contained documents shown in a sandboxed iframe (scripts only, no same-origin).\n// Runrate \"Try it\": tap a question, the answer panel animates with the product's own figures.\nconst EMBEDS={\"runrate-tryit\":'<!doctype html><html><head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\\n<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css2?family=Geist+Mono:wght@300;400;500&family=Hanken+Grotesk:wght@400;500;600&family=Instrument+Serif:ital@0;1&display=swap\">\\n<style>html,body{margin:0;background:#070d1f;overflow:hidden}\\n.tryit{--u:1px;--ink:#070d1f;--paper:#f8f5f0;--cobalt:#2b3bff;--mint:#63efb3;--mute:#565d70;--soft:#8c92a1;--line:#dbd8d2;--coral:#c4432a;--green:#0e764a;color-scheme:light}\\n.tryit,.tryit{margin:0;background:#f8f5f0;overflow-x:hidden}\\n.tryit{font-family:\\'Hanken Grotesk\\',ui-sans-serif,system-ui,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased}\\n.tryit .art{position:absolute;left:0;width:100%;top:calc(var(--t)*var(--u));height:calc(var(--h)*var(--u));overflow:hidden;isolation:isolate}\\n.tryit .pill{position:absolute;transform-origin:0 0;will-change:transform}\\n.tryit [data-par]{will-change:translate}\\n.tryit .pill::after{content:\"\";position:absolute;inset:0;border-radius:inherit;padding:var(--sw,0);background:var(--stroke,none);\\n  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}\\n.tryit .hair{position:absolute;inset:0;width:100%;height:100%;overflow:visible}\\n.tryit .c{position:absolute;inset:0}\\n.tryit .a{position:absolute;left:calc(var(--x)*var(--u));top:calc(var(--y)*var(--u));width:calc(var(--w,auto)*var(--u));margin:0}\\n.tryit .t{font-size:calc(var(--fs)*var(--u));line-height:calc(var(--lh)*var(--u));white-space:nowrap}\\n.tryit .wrap{white-space:normal}\\n.tryit .mono{font-family:\\'Geist Mono\\',ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums}\\n.tryit .serif{font-family:\\'Instrument Serif\\',Georgia,serif}\\n.tryit .cap{text-transform:uppercase;letter-spacing:.12em}\\n.tryit .ctr{text-align:center}\\n.tryit .box{position:absolute;left:calc(var(--x)*var(--u));top:calc(var(--y)*var(--u));width:calc(var(--w)*var(--u));height:calc(var(--h)*var(--u));box-sizing:border-box}\\n.tryit .glass{background:rgba(254,253,251,.72);border:1px solid rgba(255,255,255,.85);-webkit-backdrop-filter:blur(calc(8*var(--u)));backdrop-filter:blur(calc(8*var(--u)))}\\n.tryit .btn{display:flex;align-items:center;justify-content:center;border-radius:999px;font-weight:500;font-size:calc(16*var(--u));text-decoration:none;color:inherit;transition:transform .2s cubic-bezier(.2,.9,.1,1)}\\n.tryit .btn:hover{transform:translateY(calc(-1*var(--u)))}\\n.tryit .row{position:absolute;left:0;right:0;height:calc(41*var(--u));border-bottom:1px solid var(--line);display:flex;align-items:center;font-size:calc(14*var(--u))}\\n.tryit .pillst{display:inline-flex;align-items:center;gap:calc(6*var(--u));border-radius:999px;font-family:\\'Geist Mono\\',monospace;text-transform:uppercase;letter-spacing:.12em}\\n.tryit .dot{width:calc(6*var(--u));height:calc(6*var(--u));border-radius:50%;background:var(--coral)}\\n.tryit ul.tick{list-style:none;padding:0;margin:0}\\n.tryit ul.tick li{position:relative;padding-left:calc(26*var(--u));font-size:calc(14*var(--u));line-height:calc(20*var(--u));margin-bottom:calc(10*var(--u))}\\n.tryit ul.tick li::before{content:\"✓\";position:absolute;left:0;color:var(--tick,var(--green));font-size:calc(13*var(--u))}\\n.tryit .mockwrap{overflow:visible}\\n.tryit .mock{position:absolute;left:calc(20*var(--u));top:calc(24*var(--u));width:calc(1181*var(--u));height:calc(1057*var(--u));border-radius:calc(20*var(--u));\\n  background:linear-gradient(135deg,rgba(255,255,255,.5) 0%,rgba(255,255,255,.1) 25%,rgba(255,255,255,0) 50%),rgba(248,245,240,.52);\\n  -webkit-backdrop-filter:blur(calc(20*var(--u)));backdrop-filter:blur(calc(20*var(--u)));box-shadow:0 calc(30*var(--u)) calc(80*var(--u)) rgba(7,13,31,.28)}\\n.tryit .mock::after{content:\"\";position:absolute;inset:0;border-radius:inherit;padding:calc(1.5*var(--u));\\n  background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(255,255,255,.25) 55%,rgba(99,239,179,.45));\\n  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}\\n.tryit .mock img{position:absolute;left:0;top:0;width:100%;display:block}\\n.tryit .reveal{opacity:0;transform:translateY(calc(18*var(--u)));transition:opacity .9s cubic-bezier(.2,.9,.1,1),transform .9s cubic-bezier(.2,.9,.1,1)}\\n.tryit .reveal.in{opacity:1;transform:none}\\n.tryit a{color:inherit}\\n.tryit .demo{border-radius:calc(20*var(--u));background:linear-gradient(135deg,rgba(255,255,255,.35),rgba(255,255,255,.06) 40%,rgba(255,255,255,0) 60%),rgba(248,245,240,.10);\\n  -webkit-backdrop-filter:blur(calc(20*var(--u)));backdrop-filter:blur(calc(20*var(--u)));box-shadow:0 calc(30*var(--u)) calc(80*var(--u)) rgba(0,0,0,.35);padding:calc(10*var(--u))}\\n.tryit .demo::after{content:\"\";position:absolute;inset:0;border-radius:inherit;padding:calc(1.5*var(--u));pointer-events:none;\\n  background:linear-gradient(135deg,rgba(255,255,255,.6),rgba(255,255,255,.08) 55%,rgba(99,239,179,.4));\\n  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}\\n.tryit .vp{position:absolute;left:calc(10*var(--u));top:calc(10*var(--u));width:calc(780*var(--u));height:calc(580*var(--u));overflow:hidden;border-radius:calc(12*var(--u));background:linear-gradient(160deg,#fbfaf7,#f1eee8)}\\n.tryit .vp img{position:absolute;left:0;top:0;width:calc(1440*var(--u));max-width:none;max-height:none;transform-origin:0 0;opacity:0;user-select:none;\\n  transition:transform 1.1s cubic-bezier(.2,.9,.1,1),opacity .5s ease}\\n.tryit .vp img.on{opacity:1}\\n.tryit .pnl{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .45s ease,visibility 0s .45s}\\n.tryit .pnl.on{opacity:1;visibility:visible;transition:opacity .45s ease}\\n.tryit .rise{opacity:0;translate:0 calc(14*var(--u));transition:opacity .6s cubic-bezier(.2,.9,.1,1) var(--d,0s),translate .7s cubic-bezier(.2,.9,.1,1) var(--d,0s)}\\n.tryit .pnl.on .rise{opacity:1;translate:0 0}\\n.tryit .kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(16*var(--u))}\\n.tryit .kpi,.tryit .ev{background:rgba(254,253,251,.92);border:1px solid var(--line);border-radius:calc(14*var(--u));padding:calc(16*var(--u)) calc(18*var(--u))}\\n.tryit .kpi p,.tryit .ev p{margin:0}\\n.tryit .cap{font-size:calc(11*var(--u));line-height:calc(16*var(--u));letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}\\n.tryit .big{font-size:calc(30*var(--u));line-height:calc(36*var(--u));letter-spacing:-.02em;margin-top:calc(6*var(--u))!important}\\n.tryit .neg{color:var(--coral)}\\n.tryit .ev{position:absolute;left:calc(var(--x)*var(--u));top:calc(var(--y)*var(--u));width:calc(342*var(--u));height:calc(160*var(--u));box-sizing:border-box}\\n.tryit .cap2{font-size:calc(13*var(--u));line-height:calc(18*var(--u));color:var(--mute);margin-top:calc(8*var(--u))!important}\\n.tryit .ev .usage{display:block;width:calc(258*var(--u));height:calc(40*var(--u));margin-top:calc(6*var(--u))}\\n.tryit .alert{display:flex;align-items:center;gap:calc(14*var(--u));box-sizing:border-box;height:calc(72*var(--u));padding:0 calc(22*var(--u));border-radius:calc(14*var(--u));background:#f9e3dc}\\n.tryit .alert p{margin:0}\\n.tryit .warn{color:var(--coral);font-size:calc(20*var(--u))}\\n.tryit .alert .amt{margin-left:auto!important;font-size:calc(30*var(--u));letter-spacing:-.02em;color:var(--coral)}\\n.tryit .thead{display:grid;grid-template-columns:2.1fr 1fr 1fr 2.2fr .9fr;padding:0 calc(18*var(--u));color:var(--soft)}\\n.tryit .rows{display:grid;gap:calc(16*var(--u))}\\n.tryit .acct{display:grid;grid-template-columns:2.1fr 1fr 1fr 2.2fr .9fr;align-items:center;height:calc(112*var(--u));padding:0 calc(22*var(--u));box-sizing:border-box;\\n  background:rgba(254,253,251,.92);border:1px solid var(--line);border-radius:calc(14*var(--u));font-size:calc(15*var(--u))}\\n.tryit .acct b{display:block;font-weight:500;font-size:calc(17*var(--u))}\\n.tryit .acct i{display:block;font-style:normal;color:var(--mute);font-size:calc(13*var(--u));margin-top:calc(3*var(--u))}\\n.tryit .hl{display:flex;flex-direction:column;gap:calc(8*var(--u));align-items:flex-start}\\n.tryit .bar{display:block;width:calc(170*var(--u));height:calc(6*var(--u));border-radius:9px;background:#ece9e3;overflow:hidden}\\n.tryit .bar u{display:block;height:100%;width:0;border-radius:inherit;transition:width 1.2s cubic-bezier(.2,.9,.1,1) .5s}\\n.tryit .hl .pillst{padding:0 calc(8*var(--u));height:calc(22*var(--u));font-size:calc(10*var(--u))}\\n.tryit .receipt{box-sizing:border-box;height:calc(70*var(--u));padding:calc(14*var(--u)) calc(20*var(--u));border-radius:calc(14*var(--u));background:var(--mint);color:#063d27}\\n.tryit .receipt p{margin:0}\\n.tryit .receipt .cap{color:#0e764a}\\n.tryit .receipt p+p{font-size:calc(16*var(--u));margin-top:calc(6*var(--u))}\\n.tryit .chart #revLine{transition:stroke-dashoffset 1.5s cubic-bezier(.2,.9,.1,1) .3s}\\n.tryit .ring{position:absolute;border:calc(2*var(--u)) solid var(--cobalt);border-radius:calc(14*var(--u));box-shadow:0 0 0 calc(6*var(--u)) rgba(43,59,255,.14),0 calc(8*var(--u)) calc(30*var(--u)) rgba(43,59,255,.25);\\n  opacity:0;pointer-events:none;transition:left 1.1s cubic-bezier(.2,.9,.1,1),top 1.1s cubic-bezier(.2,.9,.1,1),width 1.1s cubic-bezier(.2,.9,.1,1),height 1.1s cubic-bezier(.2,.9,.1,1),opacity .35s ease}\\n.tryit .ring.on{opacity:1}\\n.tryit .askbar{position:absolute;left:calc(10*var(--u));right:calc(10*var(--u));bottom:calc(10*var(--u));height:calc(70*var(--u));display:flex;align-items:center;gap:calc(12*var(--u));\\n  padding:0 calc(12*var(--u)) 0 calc(20*var(--u));border-radius:calc(14*var(--u));background:rgba(254,253,251,.92);border:1px solid rgba(255,255,255,.9);font-size:calc(18*var(--u));color:var(--ink)}\\n.tryit .askbar>svg{width:calc(20*var(--u));height:calc(20*var(--u));flex:none}\\n.tryit .askbar #q{white-space:nowrap}\\n.tryit .caret{width:calc(1.5*var(--u));height:calc(22*var(--u));background:var(--cobalt);animation:ti-blink 1s steps(1) infinite;margin-left:calc(-10*var(--u))}\\n.tryit #go{margin-left:auto;width:calc(44*var(--u));height:calc(44*var(--u));border-radius:50%;background:var(--cobalt);display:grid;place-items:center;transition:transform .25s cubic-bezier(.2,.9,.1,1),box-shadow .25s}\\n.tryit #go svg{width:calc(20*var(--u));height:calc(20*var(--u))}\\n.tryit #go.press{transform:scale(.88);box-shadow:0 0 0 calc(8*var(--u)) rgba(43,59,255,.18)}\\n.tryit .ask{display:flex;align-items:center;gap:calc(14*var(--u));width:100%;box-sizing:border-box;margin:0 0 calc(12*var(--u));padding:calc(16*var(--u)) calc(20*var(--u));border-radius:calc(14*var(--u));\\n  border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04);color:var(--paper);font:inherit;font-size:calc(16*var(--u));text-align:left;cursor:pointer;\\n  transition:background .3s,border-color .3s,color .3s,transform .2s cubic-bezier(.2,.9,.1,1)}\\n.tryit .ask:hover{border-color:rgba(255,255,255,.4);transform:translateX(calc(3*var(--u)))}\\n.tryit .ask .n{font-family:\\'Geist Mono\\',monospace;font-size:calc(12*var(--u));letter-spacing:.12em;color:var(--mint)}\\n.tryit .ask.on{background:var(--paper);color:var(--ink);border-color:var(--paper)}\\n.tryit .ask.on .n{color:var(--cobalt)}\\n.tryit .ask:focus-visible{outline:2px solid var(--mint);outline-offset:3px}\\n.tryit{position:relative;width:100%;aspect-ratio:1440/880;overflow:hidden;isolation:isolate;background:#070d1f;border-radius:6px;font-family:\"Hanken Grotesk\",ui-sans-serif,system-ui,sans-serif;color:var(--ink);text-align:left}\\n.tryit .art{position:absolute;inset:0;overflow:hidden}\\n.tryit{border-radius:0!important}\\n/* phone: heading and questions in their own readable units (--m = width/420); the answer panel spans the width (--u = width/800) */\\n.tryit.narrow{aspect-ratio:420/772}\\n.tryit.narrow [data-m]:not([data-m=demo]){--u:var(--m)}\\n.tryit.narrow [data-m=eb]{--x:24!important;--y:26!important}\\n.tryit.narrow [data-m=h2]{--x:24!important;--y:48!important;--fs:36!important;--lh:40!important}\\n.tryit.narrow [data-m=sub]{--x:24!important;--y:88!important;--fs:34!important;--lh:38!important}\\n.tryit.narrow [data-m=sub] br{display:none}\\n.tryit.narrow [data-m=desc]{display:none}\\n.tryit.narrow [data-m=demo]{--x:0!important;--y:286!important}\\n.tryit.narrow [data-m=asks]{--x:24!important;--y:522!important;--w:372!important}\\n.tryit.narrow [data-m=note]{--x:24!important;--y:738!important}\\n</style></head><body>\\n<div class=\"tryit\" role=\"region\" aria-label=\"Try it: interactive demo\"><div class=\"art\"></div>\\n    <!-- TRY IT (scripted demo, real 5.x screens) -->\\n    <p class=\"a t mono cap\" data-m=\"eb\" style=\"--x:80;--y:120;--fs:12;--lh:16;color:var(--soft)\">Try it</p>\\n    <h2 class=\"a t serif\" data-m=\"h2\" style=\"--x:80;--y:148;--fs:56;--lh:56;font-weight:400;letter-spacing:-.015em;color:var(--paper)\">Ask a question.</h2>\\n    <p class=\"a t serif\" data-m=\"sub\" style=\"--x:80;--y:208;--fs:56;--lh:60;font-style:italic;letter-spacing:-.01em;color:var(--mint)\">Every number <br>has a receipt.</p>\\n    <p class=\"a t wrap\" data-m=\"desc\" style=\"--x:80;--y:356;--w:400;--fs:18;--lh:28;color:var(--soft)\">Tap a question. Runrate opens the screen that answers it, and the figures that prove it.</p>\\n    <div class=\"a\" data-k=\"asks\" data-m=\"asks\" style=\"--x:80;--y:458;--w:420\"></div>\\n    <p class=\"a t mono cap\" data-m=\"note\" style=\"--x:80;--y:686;--fs:11;--lh:16;color:#8c92a1\">Sample data \\xb7 scripted demo</p>\\n    <div class=\"box demo\" data-k=\"demo\" data-m=\"demo\" style=\"--x:560;--y:100;--w:800;--h:680\">\\n      <div class=\"vp\" data-k=\"vp\">\\n        <!-- 01 \\xb7 MRR (5.1 Overview figures) -->\\n        <section class=\"pnl\" data-p=\"0\" aria-label=\"Answer: revenue this month\">\\n          <p class=\"a t mono cap rise\" style=\"--x:36;--y:30;--fs:12;--lh:16;color:var(--mute)\">MRR \\xb7 September</p>\\n          <p class=\"a t mono rise\" style=\"--x:34;--y:52;--fs:72;--lh:78;letter-spacing:-.03em;--d:.05s\" data-to=\"1240318\" data-from=\"1180000\" data-pre=\"\\xa3\">\\xa31,240,318</p>\\n          <p class=\"a t mono rise\" style=\"--x:36;--y:138;--fs:14;--lh:20;color:var(--green);--d:.1s\">↑ <span data-to=\"5.1\" data-from=\"0\" data-dec=\"1\">5.1</span>% <span style=\"color:var(--soft)\">vs Aug</span></p>\\n          <p class=\"a t serif rise\" style=\"--x:200;--y:136;--fs:16;--lh:22;font-style:italic;color:var(--mute);--d:.1s\">Reconciled to billing and bank 4 minutes ago</p>\\n          <svg class=\"a rise chart\" style=\"--x:30;--y:184;--w:720;height:calc(262*var(--u));--d:.15s\" viewBox=\"0 0 720 262\" aria-hidden=\"true\">\\n            <g class=\"grid\" font-family=\"Geist Mono\" font-size=\"10\" fill=\"#8c92a1\"></g>\\n            <defs><clipPath id=\"ti-under\"><path data-k=\"areaPath\"/></clipPath><clipPath id=\"ti-sweep\"><rect data-k=\"sweepR\" x=\"56\" y=\"0\" width=\"0\" height=\"262\"/></clipPath></defs>\\n            <g clip-path=\"url(#ti-sweep)\"><g clip-path=\"url(#ti-under)\" class=\"hatch\" stroke=\"#2b3bff\" stroke-opacity=\".32\" stroke-width=\"1\"></g></g>\\n            <path data-k=\"revLine\" fill=\"none\" stroke=\"#2b3bff\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\\n            <circle data-k=\"revDot\" r=\"5\" fill=\"#63efb3\" stroke=\"#0e764a\" stroke-width=\"1.5\" opacity=\"0\"/>\\n          </svg>\\n          <div class=\"a kpis\" style=\"--x:36;--y:474;--w:708\">\\n            <div class=\"kpi rise\" style=\"--d:.35s\"><p class=\"mono cap\">Customers staying</p><p class=\"mono big\"><span data-to=\"98.1\" data-from=\"96.2\" data-dec=\"1\">98.1</span>%</p></div>\\n            <div class=\"kpi rise\" style=\"--d:.42s\"><p class=\"mono cap\">Runway</p><p class=\"mono big\"><span data-to=\"22\" data-from=\"16\">22</span> mo</p></div>\\n            <div class=\"kpi rise\" style=\"--d:.49s\"><p class=\"mono cap\">At risk</p><p class=\"mono big\" style=\"color:var(--coral)\">\\xa3<span data-to=\"21.8\" data-from=\"0\" data-dec=\"1\">21.8</span>k</p></div>\\n          </div>\\n        </section>\\n        <!-- 02 \\xb7 who is about to leave (5.1 alert + 5.2 rows) -->\\n        <section class=\"pnl\" data-p=\"1\" aria-label=\"Answer: accounts likely to leave\">\\n          <div class=\"a alert rise\" style=\"--x:36;--y:30;--w:708\">\\n            <span class=\"warn\">⚠</span><div><p class=\"t\" style=\"--fs:17;--lh:24;font-weight:500\">3 accounts likely to leave</p><p class=\"t\" style=\"--fs:13;--lh:18;color:var(--mute)\">\\xa321.8k MRR \\xb7 by 15 October</p></div>\\n            <p class=\"mono amt\">\\xa3<span data-to=\"21.8\" data-from=\"0\" data-dec=\"1\">21.8</span>k</p>\\n          </div>\\n          <div class=\"a t mono cap thead rise\" style=\"--x:36;--y:126;--w:708;--fs:11;--lh:16;--d:.08s\"><span>Customer</span><span>MRR</span><span>Change</span><span>Health</span><span>Renews</span></div>\\n          <div class=\"a rows\" style=\"--x:36;--y:152;--w:708\">\\n            <div class=\"acct rise\" style=\"--d:.16s\"><div><b>Orbit Freight</b><i>Scale \\xb7 annual</i></div><span class=\"mono\">\\xa3<span data-to=\"7340\" data-from=\"0\">7,340</span></span><span class=\"mono neg\">−18.2%</span><span class=\"hl\"><em class=\"bar\"><u data-w=\"41\" style=\"background:var(--coral)\"></u></em><small class=\"pillst\" style=\"background:#f7e2dc;color:var(--coral)\"><i class=\"dot\"></i>At risk \\xb7 41%</small></span><span class=\"mono\">15 Oct</span></div>\\n            <div class=\"acct rise\" style=\"--d:.26s\"><div><b>Dunmore Logistics</b><i>Scale \\xb7 monthly</i></div><span class=\"mono\">\\xa3<span data-to=\"3860\" data-from=\"0\">3,860</span></span><span class=\"mono neg\">−6.4%</span><span class=\"hl\"><em class=\"bar\"><u data-w=\"68\" style=\"background:rgba(196,67,42,.55)\"></u></em><small class=\"pillst\" style=\"background:#fefdfb;border:1px solid var(--line);color:var(--coral)\"><i class=\"dot\"></i>Watch \\xb7 68%</small></span><span class=\"mono\">30 Nov</span></div>\\n            <div class=\"acct rise\" style=\"--d:.36s\"><div><b>Corvid Media</b><i>Growth \\xb7 annual</i></div><span class=\"mono\">\\xa3<span data-to=\"4120\" data-from=\"0\">4,120</span></span><span class=\"mono neg\">−2.1%</span><span class=\"hl\"><em class=\"bar\"><u data-w=\"72\" style=\"background:rgba(196,67,42,.55)\"></u></em><small class=\"pillst\" style=\"background:#fefdfb;border:1px solid var(--line);color:var(--coral)\"><i class=\"dot\"></i>Watch \\xb7 72%</small></span><span class=\"mono\">9 Dec</span></div>\\n          </div>\\n        </section>\\n        <!-- 03 \\xb7 why Orbit Freight (5.3 evidence) -->\\n        <section class=\"pnl\" data-p=\"2\" aria-label=\"Answer: why Orbit Freight is at risk\">\\n          <span class=\"box mono rise\" style=\"--x:36;--y:28;--w:48;--h:48;border-radius:calc(12*var(--u));background:#e3e5ff;color:var(--cobalt);display:grid;place-items:center;font-size:calc(14*var(--u))\">OF</span>\\n          <p class=\"a t rise\" style=\"--x:100;--y:24;--fs:32;--lh:38;font-weight:500;letter-spacing:-.02em;--d:.04s\">Orbit Freight <small class=\"pillst\" style=\"vertical-align:middle;margin-left:calc(8*var(--u));padding:0 calc(10*var(--u));height:calc(24*var(--u));font-size:calc(11*var(--u));background:#f7e2dc;color:var(--coral)\"><i class=\"dot\"></i>At risk \\xb7 41%</small></p>\\n          <p class=\"a t serif rise\" style=\"--x:100;--y:62;--fs:18;--lh:24;font-style:italic;color:var(--mute);--d:.08s\">Likely to leave by 15 October. Here is why.</p>\\n          <div class=\"ev rise\" style=\"--x:36;--y:110;--d:.14s\"><p class=\"mono cap\">Usage \\xb7 30 days</p><p class=\"mono big neg\"><span data-to=\"-40\" data-from=\"0\">-40</span>%</p><svg class=\"usage\" viewBox=\"0 0 258 52\" aria-hidden=\"true\"></svg><p class=\"cap2\">Active seats down from 38 to 21 since 1 September.</p></div>\\n          <div class=\"ev rise\" style=\"--x:402;--y:110;--d:.22s\"><p class=\"mono cap\">Invoices</p><p class=\"mono big neg\"><span data-to=\"2\" data-from=\"0\">2</span> overdue</p><p class=\"cap2\">\\xa314,680 outstanding \\xb7 34 and 12 days late. Matched to no bank line.</p></div>\\n          <div class=\"ev rise\" style=\"--x:36;--y:288;--d:.30s\"><p class=\"mono cap\">Renewal</p><p class=\"mono big neg\"><span data-to=\"41\" data-from=\"90\">41</span> days</p><p class=\"cap2\">Contract ends 15 October. No renewal meeting in HubSpot.</p></div>\\n          <div class=\"ev rise\" style=\"--x:402;--y:288;--d:.38s\"><p class=\"mono cap\">Payment card</p><p class=\"mono big neg\">Expired</p><p class=\"cap2\">Card on file expired 31 August; the last two payments failed.</p></div>\\n          <div class=\"a receipt rise\" style=\"--x:36;--y:466;--w:708;--d:.5s\"><p class=\"mono cap\">Every number has a receipt</p><p class=\"mono\"><span data-to=\"46\" data-from=\"0\">46</span> invoices \\xb7 <span data-to=\"44\" data-from=\"0\">44</span> payments \\xb7 <span data-to=\"44\" data-from=\"0\">44</span> bank lines matched</p></div>\\n        </section>\\n      </div>\\n      <div class=\"askbar\"><svg viewBox=\"0 0 20 20\" aria-hidden=\"true\"><circle cx=\"8.5\" cy=\"8.5\" r=\"5.5\" fill=\"none\" stroke=\"#565d70\" stroke-width=\"1.6\"/><path d=\"M13 13l4 4\" stroke=\"#565d70\" stroke-width=\"1.6\" stroke-linecap=\"round\"/></svg><span data-k=\"q\"></span><i class=\"caret\"></i><b data-k=\"go\"><svg viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M5 10h10M11 6l4 4-4 4\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg></b></div>\\n    </div>\\n\\n</div>\\n<script>\\n(()=>{const R=document.querySelector(\".tryit\"); if(!R) return;\\nconst H=(h,a)=>{const n=parseInt(h.slice(1),16);return `rgba(${n>>16&255},${n>>8&255},${n&255},${a})`};\\nconst G=st=>`linear-gradient(90deg,${st.map(([p,c,a])=>`${H(c,a)} ${p*100}%`).join(\",\")})`;\\nconst ART={ try:{bg:\\'#070d1f\\',L:[\\n  {x:-60,y:930,w:1200,h:300,rot:45,bm:\\'screen\\',r:150,f:[[0,\\'#2b3bff\\',.9],[.45,\\'#2b3bff\\',.45],[1,\\'#070d1f\\',0]],s:[[0,\\'#63efb3\\',.6],[.45,\\'#2b3bff\\',.4],[1,\\'#2b3bff\\',0]],sw:2,k:.45},\\n  {x:300.6,y:835,w:310,h:62,rot:45,bm:\\'screen\\',r:31,f:[[0,\\'#63efb3\\',.95],[.45,\\'#63efb3\\',.5],[1,\\'#070d1f\\',0]],k:1},\\n  {x:388.2,y:835,w:310,h:62,rot:-135,bm:\\'screen\\',r:31,f:[[0,\\'#63efb3\\',.95],[.45,\\'#63efb3\\',.5],[1,\\'#070d1f\\',0]],k:1},\\n  {x:274.3,y:835,w:210.8,h:99.2,rot:45,bm:\\'screen\\',r:49.6,f:[[0,\\'#2b3bff\\',.5],[.4,\\'#2b3bff\\',.22],[1,\\'#070d1f\\',0]],blur:11,k:.3}]},\\n};\\nconst box=R.querySelector(\".art\"); ART.try.L.forEach(p=>{const d=document.createElement(\"div\"); d.className=\"pill\";\\n d.style.cssText=`left:calc(${p.x}*var(--u));top:calc(${p.y}*var(--u));width:calc(${p.w}*var(--u));height:calc(${p.h}*var(--u));border-radius:calc(${p.r}*var(--u));background:${G(p.f)};mix-blend-mode:${p.bm||\"normal\"};transform:rotate(${-p.rot}deg);${p.blur?`filter:blur(calc(${p.blur/2}*var(--u)));`:\"\"}`;\\n if(p.s){d.style.setProperty(\"--stroke\",G(p.s)); d.style.setProperty(\"--sw\",`calc(${p.sw}*var(--u))`);} box.appendChild(d);});\\nconst fit=()=>{const w=R.clientWidth, n=w<700; R.classList.toggle(\"narrow\",n); R.style.setProperty(\"--u\",(w/(n?800:1440))+\"px\"); R.style.setProperty(\"--m\",(w/420)+\"px\");}; fit(); new ResizeObserver(fit).observe(R);\\ngetComputedStyle(document.documentElement).getPropertyValue; const _U=()=>parseFloat(getComputedStyle(R).getPropertyValue(\"--u\"))||1;\\n// ---------- Try it: tap a question, the answer panel animates (figures from the 5.x screens) ----------\\n(()=>{\\n  const Q=[\\'How much did we bring in this month?\\',\\'Who is about to leave?\\',\\'Why is Orbit Freight at risk?\\'];\\n  const host=R.querySelector(\\'[data-k=asks]\\'), qEl=R.querySelector(\\'[data-k=q]\\'), go=R.querySelector(\\'[data-k=go]\\');\\n  const P=[...R.querySelectorAll(\\'[data-k=vp] .pnl\\')];\\n  host.innerHTML=Q.map((x,i)=>`<button class=\"ask\" data-i=\"${i}\"><span class=\"n\">0${i+1}</span><span>${x}</span></button>`).join(\\'\\');\\n  const btns=[...host.querySelectorAll(\\'.ask\\')];\\n  // revenue chart (12 months, \\xa30.8M–\\xa31.3M axis as on the Overview)\\n  const V=[.83,.86,.89,.93,.96,1.0,1.04,1.08,1.12,1.16,1.18,1.24], M=[\\'Oct\\',\\'Nov\\',\\'Dec\\',\\'Jan\\',\\'Feb\\',\\'Mar\\',\\'Apr\\',\\'May\\',\\'Jun\\',\\'Jul\\',\\'Aug\\',\\'Sep\\'];\\n  const X=i=>70+i*(640/11), Y=v=>226-(v-.8)/.5*206;\\n  const grid=R.querySelector(\\'.chart .grid\\'); let g=\\'\\';\\n  [.8,.9,1.0,1.1,1.2,1.3].forEach(v=>{g+=`<line x1=\"64\" x2=\"716\" y1=\"${Y(v)}\" y2=\"${Y(v)}\" stroke=\"#e4e1db\"/><text x=\"0\" y=\"${Y(v)+3}\">\\xa3${v.toFixed(1)}M</text>`;});\\n  M.forEach((m,i)=>g+=`<text x=\"${X(i)-9}\" y=\"254\">${m}</text>`); grid.innerHTML=g;\\n  const pts=V.map((v,i)=>[X(i),Y(v)]); const d=\\'M\\'+pts.map(p=>p.join(\\' \\')).join(\\' L \\');\\n  const line=R.querySelector(\\'[data-k=revLine]\\'); line.setAttribute(\\'d\\',d);\\n  R.querySelector(\\'[data-k=areaPath]\\').setAttribute(\\'d\\',d+` L ${X(11)} 226 L ${X(0)} 226 Z`);\\n  let h=\\'\\'; for(let y=12;y<226;y+=4) h+=`<line x1=\"64\" x2=\"716\" y1=\"${y}\" y2=\"${y}\"/>`; R.querySelector(\\'.chart .hatch\\').innerHTML=h;\\n  const L=line.getTotalLength(); line.style.strokeDasharray=L; line.style.strokeDashoffset=L;\\n  const dot=R.querySelector(\\'[data-k=revDot]\\'); dot.setAttribute(\\'cx\\',pts[11][0]); dot.setAttribute(\\'cy\\',pts[11][1]);\\n  const sweep=R.querySelector(\\'[data-k=sweepR]\\');\\n  // usage bars (13 weeks of 4px rungs, last five drop away)\\n  const UH=[13,12,13,12,13,12,12,11,11,4,4,3,4]; const usage=R.querySelector(\\'.ev .usage\\');\\n  usage.innerHTML=UH.map((n,i)=>Array.from({length:n},(_,r)=>`<line class=\"rung\" style=\"--k:${(i*0.04+r*0.012).toFixed(3)}s\" x1=\"${i*20}\" x2=\"${i*20+14}\" y1=\"${50-r*4}\" y2=\"${50-r*4}\" stroke=\"${i>=9?\\'#c4432a\\':\\'#8c92a1\\'}\" stroke-width=\"1.2\"/>`).join(\\'\\')).join(\\'\\');\\n  const ease=t=>1-Math.pow(1-t,3);\\n  const fmt=(v,dec)=>dec?v.toFixed(dec):Math.round(v).toLocaleString(\\'en-GB\\');\\n  function count(el,delay){\\n    const to=+el.dataset.to, from=+el.dataset.from, dec=+(el.dataset.dec||0), pre=el.dataset.pre||\\'\\', t0=performance.now()+delay, dur=1300;\\n    const step=now=>{const t=Math.min(1,Math.max(0,(now-t0)/dur)); const v=from+(to-from)*ease(t); el.textContent=pre+fmt(v,dec).replace(\\'-\\',\\'−\\'); if(t<1) el._raf=requestAnimationFrame(step);};\\n    cancelAnimationFrame(el._raf); el.textContent=pre+fmt(from,dec).replace(\\'-\\',\\'−\\'); el._raf=requestAnimationFrame(step);\\n  }\\n  function play(p){\\n    p.querySelectorAll(\\'[data-to]\\').forEach(el=>count(el,350));\\n    p.querySelectorAll(\\'.bar u\\').forEach(u=>{u.style.transition=\\'none\\'; u.style.width=\\'0\\'; void u.offsetWidth; u.style.transition=\\'\\'; u.style.width=u.dataset.w+\\'%\\';});\\n    if(p.dataset.p===\\'0\\'){\\n      line.style.transition=\\'none\\'; line.style.strokeDashoffset=L; void line.getBoundingClientRect(); line.style.transition=\\'\\'; line.style.strokeDashoffset=0;\\n      dot.style.opacity=0; setTimeout(()=>{dot.style.transition=\\'opacity .4s\\'; dot.style.opacity=1;},1500);\\n      const t0=performance.now(); cancelAnimationFrame(sweep._raf);\\n      const st=now=>{const t=Math.min(1,(now-t0-300)/1500); sweep.setAttribute(\\'width\\',Math.max(0,ease(Math.max(0,t))*660)); if(t<1) sweep._raf=requestAnimationFrame(st);}; sweep._raf=requestAnimationFrame(st);\\n    }\\n    if(p.dataset.p===\\'2\\'){ usage.querySelectorAll(\\'.rung\\').forEach(r=>{r.style.opacity=0;}); requestAnimationFrame(()=>usage.querySelectorAll(\\'.rung\\').forEach(r=>{r.style.transition=`opacity .25s ${r.style.getPropertyValue(\\'--k\\')}`; r.style.opacity=1;})); }\\n  }\\n  const wait=ms=>new Promise(r=>setTimeout(r,ms));\\n  let token=0, cur=-1;\\n  async function run(i){\\n    const my=++token, alive=()=>my===token;\\n    btns.forEach((b,j)=>b.classList.toggle(\\'on\\',j===i));\\n    qEl.textContent=\\'\\';\\n    for(const ch of Q[i]){ if(!alive())return; qEl.textContent+=ch; await wait(18); }\\n    await wait(140); if(!alive())return;\\n    go.classList.add(\\'press\\'); await wait(180); go.classList.remove(\\'press\\');\\n    P.forEach((p,j)=>p.classList.toggle(\\'on\\',j===i)); cur=i; play(P[i]);\\n    await wait(6200);\\n    if(alive()) run((i+1)%Q.length);\\n  }\\n  btns.forEach(b=>b.addEventListener(\\'click\\',()=>{started=true; run(+b.dataset.i);}));\\n  let started=false;\\n  // never show an empty window: the first answer is already on screen before the demo starts\\n  P[0].classList.add(\\'on\\'); btns[0].classList.add(\\'on\\'); qEl.textContent=Q[0]; requestAnimationFrame(()=>play(P[0]));\\n  new IntersectionObserver(es=>es.forEach(e=>{ if(e.isIntersecting&&!started){started=true; run(0);} }),{threshold:.3}).observe(R);\\n})();\\n\\n})();\\n</script></body></html>'};const INTERLUDE_MEDIA={// Quadrant (draft) — Pony shape: Challenge / Strategy / Identity / Application, every cell a loop where one exists\n\"quadrant\":{\"challenge\":[[{\"url\":\"https://framerusercontent.com/assets/j316lThWzkhukvLTLLDqz8wvxr4.mp4\",\"ar\":\"2160 / 1030\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/uGNLKEEbRIL23NM3ymvCpH4ZMQ.mp4\",\"ar\":\"1920 / 1074\",\"video\":true}]],\"strategy\":[[{\"url\":\"https://framerusercontent.com/assets/GqycxFs8XZTnyqrtdIPtkvdqw.mp4\",\"ar\":\"16 / 9\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/Y4rTEobTW5zlXaqaJHxyTYbAmoc.mp4\",\"ar\":\"1920 / 1074\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/myvBD9kdYGoHlEwP1585RqsMlc.mp4\",\"ar\":\"1920 / 1074\",\"video\":true}]],\"identity\":[[{\"url\":\"https://framerusercontent.com/assets/GnVZqBuKoGjVlXfv7joiOFUMDg.mp4\",\"ar\":\"16 / 9\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/8IhVnikK2sxugaryNdUIwZ3JG1I.mp4\",\"ar\":\"1080 / 1240\",\"video\":true},{\"url\":\"https://framerusercontent.com/assets/rkQ1yEULxag2bsUF8nvx0WY78.mp4\",\"ar\":\"1080 / 1240\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/vvR53HlDpncor1kvdtgFmE5Jd8.mp4\",\"ar\":\"16 / 9\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/VpItqngTQFlxgy54B8msVkYcu0.mp4\",\"ar\":\"1080 / 1240\",\"video\":true},{\"url\":\"https://framerusercontent.com/assets/UUFZFEqQe5adKqGilj1IYPPerJA.mp4\",\"ar\":\"1080 / 1240\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/Namt3k0DW5oS8gHSFU6GSrhgAQ.mp4\",\"ar\":\"1920 / 1036\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/NNhgNaVGS7EfOTzcIQacNbw9tw.mp4\",\"ar\":\"1040 / 712\",\"video\":true},{\"url\":\"https://framerusercontent.com/assets/fhgdPWq15SEedGo4Xwx06dWkXE.mp4\",\"ar\":\"1040 / 712\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/GkC0RnYJRpxhvvRiRcSmsFwqk.mp4\",\"ar\":\"1040 / 712\",\"video\":true},{\"url\":\"https://framerusercontent.com/assets/iic82D8yhAVKqKfqbJzsPdZi24.mp4\",\"ar\":\"1040 / 712\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/cXyo10VzgJ2nezwhLUjOBtulqA.mp4\",\"ar\":\"1040 / 712\",\"video\":true},{\"url\":\"https://framerusercontent.com/assets/XS6ly6DW1D43G7nxEbfr2jIDDro.mp4\",\"ar\":\"1040 / 712\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/Ca3Jn6pMlNXVd3fWnJle4yRS8.mp4\",\"ar\":\"16 / 9\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/WAAPNG04GFgnSTwGNkXyy8yDE.mp4\",\"ar\":\"16 / 9\",\"video\":true}]],\"application\":[[{\"url\":\"https://framerusercontent.com/assets/TzXo72nLdGZjuaLyyUaHVvxMzg8.mp4\",\"ar\":\"16 / 10\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/FXpu7H4MxCY1vT4qf8om5hzcAyY.mp4\",\"ar\":\"1920 / 1074\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/Hn79NmWoGlwzYuKfOezWKsjwsk.mp4\",\"ar\":\"1920 / 1074\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/TVdJ0BxZ3D5gOidTLRpt3jjn6KM.mp4\",\"ar\":\"1920 / 1074\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/images/gUdACrgiXksBEisyPaEnwUgFqM.jpg\",\"ar\":\"1920 / 1074\"},{\"url\":\"https://framerusercontent.com/images/TCjY4euFDVu9wZPB1RwWUEfFU.jpg\",\"ar\":\"1920 / 1074\"}],[{\"url\":\"https://framerusercontent.com/images/wrm8XYIeXyRhBnb6PghBnCE7qHc.jpg\",\"ar\":\"1920 / 1074\"}],[{\"url\":\"https://framerusercontent.com/images/nEM7e5vlm8j5CYl2TAAN82LMrrc.jpg\",\"ar\":\"4 / 5\"},{\"url\":\"https://framerusercontent.com/images/zOEONygZmSSEWh7SDXqV7Y7r3xM.jpg\",\"ar\":\"4 / 5\"},{\"url\":\"https://framerusercontent.com/images/qZ7274TPw1WeUc6idWmcS5UGw.jpg\",\"ar\":\"4 / 5\"}],[{\"url\":\"https://framerusercontent.com/images/PTJ93OSm6LpzGE7PHaYhuzZv7a0.jpg\",\"ar\":\"1920 / 1074\"}]]},\"annuli\":{\"challenge\":[[{\"url\":\"https://framerusercontent.com/images/MWzgwyNMRJ9qTKTwE6b8gfa0xXU.jpg\",\"ar\":\"16 / 9\"}]],\"strategy\":[[{\"url\":\"https://framerusercontent.com/images/ny85kM04OWnw3BbSYlKh8B5EszU.jpg\",\"ar\":\"1 / 1\"},{\"url\":\"https://framerusercontent.com/images/NVGBYQyEaNgYPPYgV9riZEOqa4w.jpg\",\"ar\":\"1 / 1\"}],[{\"url\":\"https://framerusercontent.com/images/3VKvhe6AHTstSFoQspUruyrokU.jpg\",\"ar\":\"16 / 9\"}]],\"identity\":[[{\"url\":\"https://framerusercontent.com/images/dtfkR7QxxRITEJy1547Vk06Y2M.jpg\",\"ar\":\"16 / 9\"},{\"url\":\"https://framerusercontent.com/images/cWYOJbzhTXYEsx8hnmNIu7GJKsI.jpg\",\"ar\":\"16 / 9\"}],[{\"url\":\"https://framerusercontent.com/images/Y7umS6C3yIq1p3R6nyCUh4bgLUM.jpg\",\"ar\":\"1 / 1\"},{\"url\":\"https://framerusercontent.com/images/EFLqkFaATh7Efsl7rDkvAfzIaA.jpg\",\"ar\":\"1 / 1\"},{\"url\":\"https://framerusercontent.com/images/tw1TRYAwO7ivUyWT0gtlmmhAeT4.jpg\",\"ar\":\"1 / 1\"}],[{\"lab\":true}],[{\"url\":\"https://framerusercontent.com/images/43wlAkydz7YwgmFcDGryPthw.jpg\",\"ar\":\"3 / 4\"},{\"url\":\"https://framerusercontent.com/images/sC7Y7M0whpTHuENotT5fdcr3U.jpg\",\"ar\":\"3 / 4\"}],[{\"url\":\"https://framerusercontent.com/images/55pMFFj6KRINgb9nd8LWZliKd1I.jpg\",\"ar\":\"16 / 9\"}],[{\"icons\":true,\"ar\":\"16 / 9\"},{\"dataviz\":true,\"ar\":\"16 / 9\"}],[{\"url\":\"https://framerusercontent.com/images/6LEEPxLTlxDtWL11042CCQTjXgQ.jpg\",\"ar\":\"16 / 9\"}],[{\"url\":\"https://framerusercontent.com/images/348HOAmR7xQX0jE9QjHWRIiU.jpg\",\"ar\":\"16 / 9\"},{\"url\":\"https://framerusercontent.com/images/WjD73A5lt25d3RWOpmzL94oM0.jpg\",\"ar\":\"16 / 9\"}],[{\"url\":\"https://framerusercontent.com/images/SM4oZdgHGaxNa9erVgMtTfqnuo.jpg\",\"ar\":\"1920 / 677\",\"vimeo\":\"1224652806\"}],[{\"forms\":true,\"ar\":\"16 / 9\"},{\"url\":\"https://framerusercontent.com/images/EMV9xEBJDjFJyBaW6TEUNI67ho.jpg\",\"ar\":\"16 / 9\"}],[{\"typo\":true,\"ar\":\"16 / 9\"}],[{\"url\":\"https://framerusercontent.com/images/vlE6J7PQxwEWf1eyHmATgs72jE.jpg\",\"ar\":\"16 / 9\"}]],\"application\":[[{\"url\":\"https://framerusercontent.com/images/pqKek8bo1GfQF1Itz7vte3Cq0I.jpg\",\"ar\":\"1920 / 526\",\"vimeo\":\"1224652946\"}],[{\"url\":\"https://framerusercontent.com/images/MTrv9KJ6GUdETxFN1HKKO8tmIg.jpg\",\"ar\":\"8 / 5\",\"vimeo\":\"1224653193\"}],[{\"evidence\":true,\"ar\":\"16 / 9\"},{\"card\":true,\"ar\":\"16 / 9\"}],[{\"url\":\"https://framerusercontent.com/images/1FdIlRdK37RARODqJLneX9rb8o.jpg\",\"ar\":\"16 / 9\"},{\"micro\":true,\"ar\":\"16 / 9\"}],[{\"social\":true,\"ar\":\"8 / 3\"}],[{\"url\":\"https://framerusercontent.com/images/Km0G9KHx0abNZZZXttDzmr0yfgM.jpg\",\"ar\":\"2880 / 4926\"}],[{\"url\":\"https://framerusercontent.com/images/ISGw39cCFmghdH0iHk6VyyTo.jpg\",\"ar\":\"16 / 9\"}],[{\"url\":\"https://framerusercontent.com/images/Tps7NhYfwCm3KUiDF9J1oQoTxo.jpg\",\"ar\":\"3 / 4\"},{\"url\":\"https://framerusercontent.com/images/jHbx3TI1LBUulIDypk70dg5Xw4.jpg\",\"ar\":\"3 / 4\"}],[{\"url\":\"https://framerusercontent.com/images/VPZBTCAg1Wx9P3f3HQrhXUnYPMY.jpg\",\"ar\":\"16 / 9\"}],[{\"url\":\"https://framerusercontent.com/images/GYwbjkPhZb4pTLn1hcjdHKmkrE.jpg\",\"ar\":\"3 / 4\"},{\"url\":\"https://framerusercontent.com/images/4GlirLX2wHVO0bE7n45sK6zYps.jpg\",\"ar\":\"3 / 4\"}],[{\"url\":\"https://framerusercontent.com/images/CIuWpwprqJW6MYcrb2VrZ2jygo.jpg\",\"ar\":\"16 / 9\"}],[{\"url\":\"https://framerusercontent.com/images/jongQYxTrW5YvfrgH5c8OKszoww.jpg\",\"ar\":\"2 / 3\"},{\"url\":\"https://framerusercontent.com/images/AR9X17il3TaaDk76v8pu9Czm0s.jpg\",\"ar\":\"2 / 3\"}]]},\"runrate\":{\"challenge\":[[{\"url\":\"https://framerusercontent.com/assets/bgAYWjYem1z3oOgR5AMCN28zjU.mp4\",\"ar\":\"16 / 9\",\"video\":true}]],\"strategy\":[[{\"url\":\"https://framerusercontent.com/assets/RPu1lgyDkzUc4ZtFC0WVb6kwZg.mp4\",\"ar\":\"16 / 9\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/Hi690VY4OoQnnwAEBvdrgyCjafI.mp4\",\"ar\":\"16 / 9\",\"video\":true}]],\"identity\":[[{\"url\":\"https://framerusercontent.com/assets/jZqrsHxbigdzGl1WOPWSgCP2AU.mp4\",\"ar\":\"16 / 9\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/1SFXPvbTPtbgH2jiLzoG6W2T3c.mp4\",\"ar\":\"1 / 1\",\"video\":true},{\"url\":\"https://framerusercontent.com/assets/YkWPuSTD0yV1atr9RbDCNUeRC7Y.mp4\",\"ar\":\"1 / 1\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/VHEAJN7FIJfoIENbpjjhaqSZE.mp4\",\"ar\":\"1 / 1\",\"video\":true},{\"url\":\"https://framerusercontent.com/assets/tdHNxR5A92crcxueaQAoxcK2m3k.mp4\",\"ar\":\"1 / 1\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/Nq0pjGur3LAq2FnHizk9VyMFas.mp4\",\"ar\":\"16 / 9\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/Ez5ieiQVq1IPrAMlJEbykXhGIQ.mp4\",\"ar\":\"2 / 1\",\"video\":true}]],\"motion\":[[{\"url\":\"https://framerusercontent.com/assets/wBreSbfXPMom1DtwWBr8RR2wc.mp4\",\"ar\":\"16 / 9\",\"click\":true,\"poster\":\"https://framerusercontent.com/images/fdJsgkjrY3HNqmesTzLqh2Xz8.jpg\"}]],\"product\":[[{\"url\":\"https://framerusercontent.com/assets/gFNUJFLSWOEmwDe536Rj1VRXk6I.mp4\",\"ar\":\"16 / 10\",\"video\":true}],[{\"html\":\"runrate-tryit\",\"ar\":\"1440 / 880\",\"arNarrow\":\"420 / 772\"}],[{\"url\":\"https://framerusercontent.com/assets/FnOy98La6Omuul3qPEHurElUJHg.mp4\",\"ar\":\"16 / 9\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/WPQfsrgqjbt3foqMHrybNk5zd6w.mp4\",\"ar\":\"16 / 9\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/assets/kpfZBCgIyFbTHKEF4J4YAv0qaw4.mp4\",\"ar\":\"16 / 9\",\"video\":true}],[{\"url\":\"https://framerusercontent.com/images/bLk0Gh16YtynRD4tjll3dUHsC4.jpg\",\"ar\":\"4 / 5\"},{\"url\":\"https://framerusercontent.com/images/YqSJZd4hlmK931DPkNl2z57onU.jpg\",\"ar\":\"4 / 5\"}]],\"campaign\":[[{\"url\":\"https://framerusercontent.com/images/31vF1Hkqs6iP50iovApxjb4YHDo.jpg\",\"ar\":\"16 / 9\"}],[{\"url\":\"https://framerusercontent.com/images/IJkwlSAbqkUUL5b0wU8lgv9hqHI.jpg\",\"ar\":\"16 / 9\"},{\"url\":\"https://framerusercontent.com/images/FRYIesHuRRsrKYbsdZAxUU4o.jpg\",\"ar\":\"16 / 9\"}],[{\"url\":\"https://framerusercontent.com/images/ByqUk1qDcIBesRoU1eFAyyrvUk.jpg\",\"ar\":\"16 / 9\"}],[{\"url\":\"https://framerusercontent.com/images/zpSBFBitsndj89oEgpdSfp8Ngg4.jpg\",\"ar\":\"16 / 9\"}],[{\"url\":\"https://framerusercontent.com/images/tIN75Uz4FjE2GiMo300hxnhA1k.jpg\",\"ar\":\"3 / 4\"},{\"url\":\"https://framerusercontent.com/images/NXq6GeTgq5thzTEorOLX0XpdJu4.jpg\",\"ar\":\"3 / 4\"}],[{\"url\":\"https://framerusercontent.com/images/aSHIirIlheon3x9j7XwpIYEUcf4.jpg\",\"ar\":\"16 / 9\"},{\"url\":\"https://framerusercontent.com/images/d52frplH1vDHZPpnPrS97SX4Y8c.jpg\",\"ar\":\"16 / 9\"}],[{\"url\":\"https://framerusercontent.com/images/OhbkVXYNyVsZxhdFaZQXhwRB7c.jpg\",\"ar\":\"16 / 9\"}],[{\"url\":\"https://framerusercontent.com/images/E84E0Rf2bUAe8uArhpo5UppSHwc.jpg\",\"ar\":\"16 / 9\"},{\"url\":\"https://framerusercontent.com/images/6x8ey4fSSLVFN1fI4RzxwRbIUsI.jpg\",\"ar\":\"16 / 9\"}],[{\"url\":\"https://framerusercontent.com/images/ZMgNBFARGSt53YPzgZCKYnGEg.jpg\",\"ar\":\"16 / 9\"}]],\"stationery\":[[{\"url\":\"https://framerusercontent.com/images/mCn2B4SoiczvrtHsnNXH4vbwXS8.jpg\",\"ar\":\"16 / 9\"}],[{\"url\":\"https://framerusercontent.com/images/nlE11ZUa5boNpxRyihd0IkqNrv4.jpg\",\"ar\":\"16 / 9\"}],[{\"url\":\"https://framerusercontent.com/images/cDReMcw94R0x0SXVq7iOKHUgPE.jpg\",\"ar\":\"4 / 3\"},{\"url\":\"https://framerusercontent.com/images/Bx63GiVPcCAmsPGn3XwsQCCa7EQ.jpg\",\"ar\":\"4 / 3\"}],[{\"url\":\"https://framerusercontent.com/assets/9MbJbwNymYJrEQMDDRZG9LpRg.mp4\",\"ar\":\"16 / 9\",\"video\":true}]]}};// Sticky chapter nav, bottom right (Pony-style), listing the interludes in page order\n// Koto shape: five sections (Challenge / Strategy / Identity / Application / Outcome).\n// The Body still carries seven bold-led paragraphs; these map each one to the section\n// it belongs in, so the sub-leads survive as bold runs inside a merged section.\nconst SECTION_GROUPS={\"annuli\":{Strategy:\"Strategy\",Voice:\"Strategy\",Logo:\"Identity\",System:\"Identity\",Typography:\"Identity\",Digital:\"Application\",Campaign:\"Application\",Motion:\"Application\"},\"quadrant\":{Strategy:\"Strategy\",Identity:\"Identity\",Light:\"Identity\",Motion:\"Identity\",Product:\"Application\",Campaign:\"Application\"}};const SECTION_ORDER={\"annuli\":[\"Strategy\",\"Identity\",\"Application\"],\"quadrant\":[\"Strategy\",\"Identity\",\"Application\"]};const CHAPTER_NAV=new Set([\"quadrant\"]);// Pony's kinetic statement: one line in the title face, alone between two chapters (after = chapter label)\nconst STATEMENT={\"quadrant\":{after:\"Strategy\",text:\"Markets are made of relationships. Quadrant makes them legible.\"}};const leafWith=(root,text)=>Array.from(root.querySelectorAll(\"*\")).find(el=>el.children.length===0&&(el.textContent||\"\").trim().toLowerCase()===text)||null;// Ring generator — the System chapter's interactive moment. A grove's ring is drawn\n// live from its data: years verified (ring count), survival (line weight), the\n// direction of prevailing light (heartwood offset + sheen) and material state.\nconst RING_MATERIALS={pending:{c:[\"#6E5230\",\"#B89B7A\",\"#7A5A38\"],sheen:false,label:\"Pending \\xb7 raw cast\"},verified:{c:[\"#C99A6B\",\"#E8D3B8\",\"#9E7549\"],sheen:true,label:\"Verified \\xb7 bronze\"},matured:{c:[\"#7DBE95\",\"#DDE7DC\",\"#3E7D5A\"],sheen:true,label:\"Matured \\xb7 patina\"},retired:{c:[\"#1c1e1c\",\"#3a3c38\",\"#0C0D0C\"],sheen:false,label:\"Retired \\xb7 blackened\"}};const ringLab=()=>{const el=(tag,style,parent)=>{const n=document.createElement(tag);Object.assign(n.style,style);if(parent)parent.appendChild(n);return n;};const panel=el(\"div\",{display:\"grid\",gridTemplateColumns:\"260px 1fr\",gap:\"32px\",background:\"#F3F2EE\",color:\"#141614\",padding:\"28px 32px\",minHeight:\"520px\",fontFamily:\"Manrope, system-ui, sans-serif\",position:\"relative\"});panel.setAttribute(\"data-nsm-ringlab\",\"1\");const ctl=el(\"div\",{display:\"flex\",flexDirection:\"column\",gap:\"18px\",fontSize:\"12px\"},panel);const title=el(\"div\",{fontSize:\"11px\",letterSpacing:\".06em\",textTransform:\"uppercase\",color:\"#6B6E69\"},ctl);title.textContent=\"Ring generator \\xb7 interactive\";const state={years:7,survival:94,light:45,material:\"verified\",name:\"Rift Valley Grove\"};const slider=(label,key,min,max,unit)=>{const wrap=el(\"label\",{display:\"grid\",gap:\"6px\"},ctl);const row=el(\"div\",{display:\"flex\",justifyContent:\"space-between\"},wrap);const l=el(\"span\",{},row);l.textContent=label;const v=el(\"span\",{fontVariantNumeric:\"tabular-nums\",color:\"#6B6E69\"},row);const input=el(\"input\",{width:\"100%\",accentColor:\"#141614\"},wrap);input.type=\"range\";input.min=String(min);input.max=String(max);input.value=String(state[key]);const show=()=>{v.textContent=state[key]+unit;};input.addEventListener(\"input\",()=>{state[key]=Number(input.value);show();draw();});show();return input;};slider(\"Years verified\",\"years\",1,14,\"\");slider(\"Survival\",\"survival\",50,100,\"%\");slider(\"Aspect\",\"light\",0,359,\"\\xb0\");const matWrap=el(\"div\",{display:\"grid\",gap:\"6px\"},ctl);const matLabel=el(\"span\",{},matWrap);matLabel.textContent=\"State\";const mats=el(\"div\",{display:\"flex\",gap:\"6px\",flexWrap:\"wrap\"},matWrap);const matBtns={};for(const k of Object.keys(RING_MATERIALS)){const b=el(\"button\",{border:\"1px solid #D9D7D0\",background:\"transparent\",color:\"#141614\",borderRadius:\"999px\",padding:\"6px 12px\",fontSize:\"11px\",fontWeight:\"600\",cursor:\"pointer\",fontFamily:\"inherit\"},mats);b.type=\"button\";b.textContent=k[0].toUpperCase()+k.slice(1);b.addEventListener(\"click\",()=>{state.material=k;draw();});matBtns[k]=b;}const rnd=el(\"button\",{marginTop:\"6px\",border:\"0\",background:\"#141614\",color:\"#F3F2EE\",borderRadius:\"999px\",padding:\"10px 16px\",fontSize:\"12px\",fontWeight:\"600\",cursor:\"pointer\",fontFamily:\"inherit\",alignSelf:\"start\"},ctl);rnd.type=\"button\";rnd.textContent=\"New grove\";const NAMES=[\"Rift Valley Grove\",\"Sumatra Peatland\",\"Cerrado Corridor\",\"Atlas Foothills\",\"Mekong Mangroves\",\"Carpathian Ridge\",\"Miombo Reach\",\"Tasman Headland\"];rnd.addEventListener(\"click\",()=>{state.years=1+Math.floor(Math.random()*12);state.survival=70+Math.floor(Math.random()*30);state.light=Math.floor(Math.random()*360);state.material=state.years===1?\"pending\":state.years>=7?\"matured\":\"verified\";state.name=NAMES[Math.floor(Math.random()*NAMES.length)];for(const inp of Array.from(ctl.querySelectorAll(\"input\"))){const k=inp.parentElement?.querySelector(\"span\")?.textContent||\"\";inp.value=String(k.startsWith(\"Years\")?state.years:k.startsWith(\"Survival\")?state.survival:state.light);inp.dispatchEvent(new Event(\"input\"));}draw();});const stage=el(\"div\",{display:\"grid\",placeItems:\"center\",position:\"relative\",minHeight:\"460px\"},panel);const ring=el(\"div\",{width:\"min(380px, 70vw)\",aspectRatio:\"1\",borderRadius:\"50%\",position:\"relative\",transition:tr(M.interact.morph.fill,\"background\")+\", \"+tr(M.interact.morph.fill,\"box-shadow\")},stage);const boss=el(\"div\",{position:\"absolute\",width:\"7%\",height:\"7%\",borderRadius:\"50%\",transform:\"translate(-50%, -50%)\",boxShadow:\"0 4px 10px rgba(0,0,0,.35), inset 0 0 0 1px rgba(255,255,255,.35)\"},ring);const readout=el(\"div\",{position:\"absolute\",left:\"0\",right:\"0\",bottom:\"0\",display:\"flex\",justifyContent:\"space-between\",fontSize:\"11px\",color:\"#6B6E69\",fontVariantNumeric:\"tabular-nums\",gap:\"12px\",flexWrap:\"wrap\"},stage);const name=el(\"span\",{color:\"#141614\",fontWeight:\"600\"},readout);const passport=el(\"span\",{},readout);const draw=()=>{const m=RING_MATERIALS[state.material];const R=190// px at the 380px design size; scales with the box\n;const spacing=Math.max(6,R*.9/state.years);const t=1+(state.survival-50)/50*2.5// line weight follows survival\n;const rad=state.light*Math.PI/180;const cx=50+Math.sin(rad)*20,cy=50-Math.cos(rad)*20// heartwood 0.4r toward the light\n;const rings=\"repeating-radial-gradient(circle at \"+cx.toFixed(1)+\"% \"+cy.toFixed(1)+\"%, \"+m.c[0]+\" 0 \"+t.toFixed(1)+\"px, \"+m.c[1]+\" \"+t.toFixed(1)+\"px \"+spacing.toFixed(1)+\"px, \"+m.c[2]+\" \"+spacing.toFixed(1)+\"px \"+(spacing+t).toFixed(1)+\"px)\";const sheen=\"conic-gradient(from \"+(state.light+165)%360+\"deg, rgba(255,255,255,.55), rgba(0,0,0,.35), rgba(255,255,255,.35), rgba(0,0,0,.4), rgba(255,255,255,.55)), \";ring.style.background=(m.sheen?sheen:\"\")+rings;ring.style.backgroundBlendMode=m.sheen?\"soft-light\":\"normal\";ring.style.boxShadow=m.sheen?\"0 30px 60px rgba(20,22,20,.28), inset 0 0 0 1.5px rgba(255,255,255,.25)\":\"0 30px 60px rgba(20,22,20,.28)\";boss.style.left=cx+\"%\";boss.style.top=cy+\"%\";boss.style.background=m.c[2];for(const[k,b]of Object.entries(matBtns)){const on=k===state.material;b.style.background=on?\"#141614\":\"transparent\";b.style.color=on?\"#F3F2EE\":\"#141614\";b.style.borderColor=on?\"#141614\":\"#D9D7D0\";}name.textContent=state.name;const dir=[\"N\",\"NE\",\"E\",\"SE\",\"S\",\"SW\",\"W\",\"NW\"][Math.round(state.light/45)%8];passport.textContent=state.years+(state.years===1?\" year\":\" years\")+\" verified \\xb7 survival \"+state.survival+\"% \\xb7 light \"+state.light+\"\\xb0 \"+dir+\" \\xb7 \"+m.label;};draw();// one column on narrow screens\n// The generator only makes its point if you see it move. Until someone takes\n// hold of it, drive the controls the way a person would: one at a time, with a\n// pause to read the result. Any real interaction ends it for good.\nconst demo=()=>{const still=reducedMotion();if(still)return;const inputs=Array.from(panel.querySelectorAll('input[type=\"range\"]'));if(inputs.length<3)return;const[yearsIn,survivalIn,lightIn]=inputs;let driving=false,dead=false,timer=null;const ease=easeOf(EZ.grow);// move a control the way a hand does — never a jump cut\nconst glide=(input,to,ms)=>new Promise(done=>{const from=Number(input.value),t0=performance.now();const step=now=>{if(dead)return done();const p=Math.min(1,(now-t0)/ms);driving=true;input.value=String(Math.round(from+(to-from)*ease(p)));input.dispatchEvent(new Event(\"input\",{bubbles:true}));driving=false;if(p<1)requestAnimationFrame(step);else done();};requestAnimationFrame(step);});const wait=ms=>new Promise(r=>{timer=setTimeout(r,ms);});const pick=(a,b)=>Math.round(a+Math.random()*(b-a));const STATES=Object.keys(RING_MATERIALS);const beats=[()=>glide(lightIn,pick(0,359),1600),()=>glide(yearsIn,pick(2,14),1100),()=>glide(survivalIn,pick(58,100),900),async()=>{const next=STATES[pick(0,STATES.length-1)];// driving must cover synthetic clicks too, or the demo's own\n// button press reads as a user taking over and it stops itself\ndriving=true;if(matBtns[next])matBtns[next].click();driving=false;},async()=>{driving=true;rnd.click();driving=false;}];let i=0;const loop=async()=>{while(!dead){await beats[i%beats.length]();if(dead)return;i++;await wait(1500)// long enough to read what changed\n;}};// the moment it is really being used, get out of the way and stay out\nconst surrender=()=>{if(driving||dead)return;dead=true;if(timer)clearTimeout(timer);};for(const ev of[\"pointerdown\",\"keydown\",\"wheel\",\"touchstart\"]){panel.addEventListener(ev,surrender,{passive:true});}panel.addEventListener(\"input\",surrender);panel.addEventListener(\"click\",surrender);// and only while it is on screen\nlet running=false;const io2=new IntersectionObserver(es=>{for(const e of es){if(dead){io2.disconnect();return;}if(e.isIntersecting&&!running){running=true;loop();}else if(!e.isIntersecting){}}},{rootMargin:\"80px\"});io2.observe(panel);};demo();// the name was stranded in the gap between the controls and the ring; it is a\n// caption for the object, so it sits with it\nObject.assign(readout.style,{flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",gap:\"4px\",textAlign:\"center\"});// A slow ring breathing out of the one obvious target, so the panel reads as\n// something you can take hold of. Brand timing: 2.4s, ease-in-out, no overshoot.\nif(!document.getElementById(\"nsm-breathe\")){const st=document.createElement(\"style\");st.id=\"nsm-breathe\";st.textContent=\"@keyframes nsmBreathe{0%{transform:scale(1);opacity:\"+M.ambient.cue.opacityFrom+\"}70%,100%{transform:scale(\"+M.ambient.cue.scale+\");opacity:0}}\";document.head.appendChild(st);}const cue=document.createElement(\"span\");Object.assign(cue.style,{position:\"relative\",display:\"inline-flex\",alignSelf:\"start\",marginTop:\"6px\"});rnd.style.marginTop=\"0\";rnd.parentElement?.insertBefore(cue,rnd);const halo=el(\"span\",{position:\"absolute\",inset:\"0\",borderRadius:\"999px\",border:\"1.5px solid #141614\",pointerEvents:\"none\",animation:\"nsmBreathe \"+M.ambient.cue.transition.duration+\"ms \"+bz(M.ambient.cue.transition.easing)+\" infinite\"},cue);cue.appendChild(rnd);const hideCue=()=>{halo.style.display=\"none\";};if(reducedMotion())hideCue();// once it has actually been used the hint has done its job\nfor(const ev of[\"pointerdown\",\"keydown\",\"touchstart\"]){panel.addEventListener(ev,hideCue,{passive:true});}// The object breathes — the \"Breathe · pending\" state from the motion board,\n// pulled back to a scale the hero can carry. The board's own spec dips opacity\n// to .35, which is written for a flat gradient; on a 380px object on paper it\n// just washes out, so this is scale only and stays well inside \"no overshoot\".\nif(!document.getElementById(\"nsm-ring-breathe\")){const st=document.createElement(\"style\");st.id=\"nsm-ring-breathe\";st.textContent=\"@keyframes nsmRingBreathe{0%,100%{transform:scale(1)}50%{transform:scale(\"+M.ambient.breathe.scale+\")}}\";document.head.appendChild(st);}const breatheOK=!reducedMotion();if(breatheOK){ring.style.animation=\"nsmRingBreathe \"+M.ambient.breathe.transition.duration+\"ms \"+bz(M.ambient.breathe.transition.easing)+\" infinite\";ring.style.animationPlayState=\"paused\";// only while it is on screen\nconst bio=new IntersectionObserver(es=>{for(const e of es)ring.style.animationPlayState=e.isIntersecting?\"running\":\"paused\";},{rootMargin:\"80px\"});bio.observe(ring);}const ro=new ResizeObserver(()=>{panel.style.gridTemplateColumns=panel.clientWidth<720?\"1fr\":\"260px 1fr\";});ro.observe(panel);return panel;};/**\n * Iconography, drawn live rather than shipped as a film. The icons are vectors,\n * so animating them in the DOM stays crisp at any size, costs a few KB instead of\n * a video, and needs no upload. Geometry is the Figma set, 24px grid, 1.5 stroke.\n *//**\n * The brand's growth curve is an ease-out: it decelerates into a resting state,\n * which is exactly right for something arriving. Reused for a departure it runs\n * backwards — 68% of the travel happens in the first fifth of the duration, so\n * the object snaps away and reads as a flicker. Exits take its mirror instead.\n */const EASE_GROW=bz(EZ.grow);const EASE_LEAVE=bz(EZ.leave);/** opacity on the linear curve, at a transition's duration — the fade half of every entry and exit */const FADE=(t,delay=0)=>\"opacity \"+t.duration+\"ms \"+bz(EZ.linear)+\" \"+delay+\"ms\";const ICON_SET=['<path d=\"M5 12H19\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M13 6L19 12L13 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M7 7L17 17\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 9V17H9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 8V16\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 13L12 16L15 13\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M13 3L6 14H12L11 21L18 10H12L13 3Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M12 9C15.866 9 19 7.88071 19 6.5C19 5.11929 15.866 4 12 4C8.13401 4 5 5.11929 5 6.5C5 7.88071 8.13401 9 12 9Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 6.5V17.5C5 18.9 8.1 20 12 20C15.9 20 19 18.9 19 17.5V6.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M5 12C5 13.4 8.1 14.5 12 14.5C15.9 14.5 19 13.4 19 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M6 4H18V20L12 15L6 20V4Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M12 3L20 7.5V16.5L12 21L4 16.5V7.5L12 3Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4 7.5L12 12L20 7.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 12V21\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14.5 12C15.8807 12 17 10.8807 17 9.5C17 8.11929 15.8807 7 14.5 7C13.1193 7 12 8.11929 12 9.5C12 10.8807 13.1193 12 14.5 12Z\" fill=\"#141614\"/>','<path d=\"M12 21C12 21 6 15 6 10C6 8.4087 6.63214 6.88258 7.75736 5.75736C8.88258 4.63214 10.4087 4 12 4C13.5913 4 15.1174 4.63214 16.2426 5.75736C17.3679 6.88258 18 8.4087 18 10C18 15 12 21 12 21Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 12C13.1046 12 14 11.1046 14 10C14 8.89543 13.1046 8 12 8C10.8954 8 10 8.89543 10 10C10 11.1046 10.8954 12 12 12Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<rect x=\"6\" y=\"6\" width=\"12\" height=\"12\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/><rect x=\"9.5\" y=\"9.5\" width=\"5\" height=\"5\" rx=\"1\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/><path d=\"M9.5 6V3.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/><path d=\"M14.5 6V3.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/><path d=\"M9.5 18V20.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/><path d=\"M14.5 18V20.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/><path d=\"M6 9.5H3.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/><path d=\"M6 14.5H3.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/><path d=\"M18 9.5H20.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/><path d=\"M18 14.5H20.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>','<path d=\"M12 4L20 8.5L12 13L4 8.5L12 4Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4 12.5L12 17L20 12.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4 16.5L12 21L20 16.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M20 4C12 4 7 9 7 16C7 17 7 18 8 20C15 20 20 15 20 4Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M4 20L14 10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M6 16V11C6 9.4087 6.63214 7.88258 7.75736 6.75736C8.88258 5.63214 10.4087 5 12 5C13.5913 5 15.1174 5.63214 16.2426 6.75736C17.3679 7.88258 18 9.4087 18 11V16L19.5 18H4.5L6 16Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M10 20C10 20.5304 10.2107 21.0391 10.5858 21.4142C10.9609 21.7893 11.4696 22 12 22C12.5304 22 13.0391 21.7893 13.4142 21.4142C13.7893 21.0391 14 20.5304 14 20\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M15 4H9C6.23858 4 4 6.23858 4 9V15C4 17.7614 6.23858 20 9 20H15C17.7614 20 20 17.7614 20 15V9C20 6.23858 17.7614 4 15 4Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 15.5C13.933 15.5 15.5 13.933 15.5 12C15.5 10.067 13.933 8.5 12 8.5C10.067 8.5 8.5 10.067 8.5 12C8.5 13.933 10.067 15.5 12 15.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M16.5 8.1C16.8314 8.1 17.1 7.83137 17.1 7.5C17.1 7.16863 16.8314 6.9 16.5 6.9C16.1686 6.9 15.9 7.16863 15.9 7.5C15.9 7.83137 16.1686 8.1 16.5 8.1Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M7 3H14L19 8V21H7V3Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M14 3V8H19\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M7 8.5C8.38071 8.5 9.5 7.38071 9.5 6C9.5 4.61929 8.38071 3.5 7 3.5C5.61929 3.5 4.5 4.61929 4.5 6C4.5 7.38071 5.61929 8.5 7 8.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 20.5C18.3807 20.5 19.5 19.3807 19.5 18C19.5 16.6193 18.3807 15.5 17 15.5C15.6193 15.5 14.5 16.6193 14.5 18C14.5 19.3807 15.6193 20.5 17 20.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 8.5V20\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 15.5V13C17 12.2044 16.6839 11.4413 16.1213 10.8787C15.5587 10.3161 14.7956 10 14 10H10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M10 9H6C4.34315 9 3 10.3431 3 12C3 13.6569 4.34315 15 6 15H10C11.6569 15 13 13.6569 13 12C13 10.3431 11.6569 9 10 9Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18 9H14C12.3431 9 11 10.3431 11 12C11 13.6569 12.3431 15 14 15H18C19.6569 15 21 13.6569 21 12C21 10.3431 19.6569 9 18 9Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 16.5C14.4853 16.5 16.5 14.4853 16.5 12C16.5 9.51472 14.4853 7.5 12 7.5C9.51472 7.5 7.5 9.51472 7.5 12C7.5 14.4853 9.51472 16.5 12 16.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 13.5C12.8284 13.5 13.5 12.8284 13.5 12C13.5 11.1716 12.8284 10.5 12 10.5C11.1716 10.5 10.5 11.1716 10.5 12C10.5 12.8284 11.1716 13.5 12 13.5Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M17 4H7C5.34315 4 4 5.34315 4 7V17C4 18.6569 5.34315 20 7 20H17C18.6569 20 20 18.6569 20 17V7C20 5.34315 18.6569 4 17 4Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 4V20\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M19 6H5C3.89543 6 3 6.89543 3 8V16C3 17.1046 3.89543 18 5 18H19C20.1046 18 21 17.1046 21 16V8C21 6.89543 20.1046 6 19 6Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M3 7L12 13L21 7\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M4 9V4H9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 4H20V9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M20 15V20H15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 20H4V15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M12 3L14.7 9L21 9.6L16.2 13.8L17.6 20L12 16.8L6.4 20L7.8 13.8L3 9.6L9.3 9L12 3Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M10.3 4.8C10.4794 4.51058 10.7297 4.27174 11.0272 4.10612C11.3246 3.9405 11.6595 3.85357 12 3.85357C12.3405 3.85357 12.6754 3.9405 12.9728 4.10612C13.2703 4.27174 13.5206 4.51058 13.7 4.8L20.7 17C20.8742 17.3017 20.9667 17.6437 20.9681 17.9921C20.9695 18.3404 20.8799 18.6832 20.7081 18.9863C20.5364 19.2894 20.2884 19.5424 19.9888 19.7202C19.6892 19.898 19.3483 19.9944 19 20H5C4.65165 19.9944 4.3108 19.898 4.01119 19.7202C3.71158 19.5424 3.46362 19.2894 3.29186 18.9863C3.1201 18.6832 3.03049 18.3404 3.03192 17.9921C3.03335 17.6437 3.12576 17.3017 3.3 17L10.3 4.8Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M12 21V9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 11C14.2091 11 16 9.20914 16 7C16 4.79086 14.2091 3 12 3C9.79086 3 8 4.79086 8 7C8 9.20914 9.79086 11 12 11Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 15L8 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 17L16 14\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M9 6L15 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M9 18L15 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M15 6L9 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M15 18L9 12\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M6 9L12 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M18 9L12 15\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M5 18H19\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M7 14V10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 14V6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M17 14V9\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<path d=\"M19 12C19 8.13401 15.866 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19C15.866 19 19 15.866 19 12Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12 14C13.1046 14 14 13.1046 14 12C14 10.8954 13.1046 10 12 10C10.8954 10 10 10.8954 10 12C10 13.1046 10.8954 14 12 14Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>','<circle cx=\"12\" cy=\"8.25\" r=\"3\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M12 11.25V19.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/><circle cx=\"6\" cy=\"12.75\" r=\"2.5\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M6 15.25V19.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/><circle cx=\"18\" cy=\"12.75\" r=\"2.5\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M18 15.25V19.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>'];const iconBoard=()=>{const cell=document.createElement(\"div\");Object.assign(cell.style,{aspectRatio:\"16 / 9\",background:\"#F3F2EE\",overflow:\"hidden\",position:\"relative\"});// the board is drawn at its native 960x540 and scaled to whatever width the\n// row gives it, so the type and the icons keep the deck's proportions\nconst board=document.createElement(\"div\");Object.assign(board.style,{position:\"absolute\",top:\"0\",left:\"0\",width:\"960px\",height:\"540px\",transformOrigin:\"0 0\",fontFamily:BOARD_SANS,color:\"#141614\",boxSizing:\"border-box\",padding:\"28px 32px\"});board.innerHTML='<div style=\"font-size:9px;line-height:1.45\">'+\"<div>Iconography</div>\"+'<div style=\"margin-top:6px;max-width:460px\">Icons share the mark\\'s stroke logic, round caps and circular construction. Built on a 24px grid with 2px optical padding.</div>'+\"</div>\"+'<div data-grid style=\"position:absolute;left:32px;right:32px;top:104px;bottom:48px;display:grid;'+'grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(5,1fr);place-items:center\">'+ICON_SET.map(d=>'<svg width=\"30\" height=\"30\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" '+'stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">'+d+\"</svg>\").join(\"\")+\"</div>\";cell.appendChild(board);const fit=()=>{const w=cell.clientWidth;if(w)board.style.transform=\"scale(\"+w/960+\")\";};fit();new ResizeObserver(fit).observe(cell);const strokes=Array.from(board.querySelectorAll(\"svg > *\"));// getTotalLength() throws on an element that is not yet rendered, so the\n// dash lengths can only be taken once the board is in the document\nconst measure=()=>{for(const s of strokes){let len=100;try{if(s.getTotalLength)len=Math.ceil(s.getTotalLength());}catch{}s.dataset.len=String(len);s.style.strokeDasharray=String(len);s.style.strokeDashoffset=String(len);}};const still=reducedMotion();if(still){}else{// draw them on once, in reading order, at the growth easing the brand states\nconst svgs=Array.from(board.querySelectorAll(\"svg\"));const N=svgs.length;const drawOn=()=>svgs.forEach((sv,i)=>{for(const s of Array.from(sv.children)){s.style.transition=tr(M.enter.stroke.transition,\"stroke-dashoffset\",i*M.enter.stroke.stagger);s.style.strokeDashoffset=\"0\";}});// wind back in reverse, quicker than it drew — the set unwrites itself\nconst drawOff=()=>svgs.forEach((sv,i)=>{const j=N-1-i;for(const s of Array.from(sv.children)){s.style.transition=tr(M.exit.unwrite.transition,\"stroke-dashoffset\",j*M.exit.unwrite.stagger);s.style.strokeDashoffset=s.dataset.len||\"100\";}});// it holds resolved for most of the cycle; the draw is the punctuation\nlet timer=null;let back=null;const cycle=()=>{drawOn();back=setTimeout(drawOff,M.loop.board.hold);};const start=()=>{if(timer)return;measure();requestAnimationFrame(()=>{cycle();timer=setInterval(cycle,M.loop.board.cycle);});};const stop=()=>{if(timer){clearInterval(timer);timer=null;}if(back){clearTimeout(back);back=null;}};// only run while it is on screen — no point animating what nobody sees\nconst io=new IntersectionObserver(es=>{for(const e of es)e.isIntersecting?start():stop();},{rootMargin:\"120px\"});io.observe(cell);}return cell;};/**\n * Data visualisation, drawn live for the same reason as the icons: it is a UI\n * card, so the DOM renders it sharper than any still and the numbers can count.\n * Motion follows the boards' own rules — the chart draws bottom-up on a 60ms\n * stagger, growth eases long, and the count is the brand's core act.\n */const DATAVIZ_MARK=\"https://framerusercontent.com/images/yihupSctlPn6nhtikCYVXFPoqvI.png\";const BAR_HEIGHTS=[20,28,30,42,48,52,60,66,72,80,86,100];const dataViz=()=>{const cell=document.createElement(\"div\");Object.assign(cell.style,{aspectRatio:\"16 / 9\",background:\"#F3F2EE\",overflow:\"hidden\",position:\"relative\"});const board=document.createElement(\"div\");Object.assign(board.style,{position:\"absolute\",top:\"0\",left:\"0\",width:\"960px\",height:\"540px\",transformOrigin:\"0 0\",fontFamily:BOARD_SANS,color:\"#141614\",boxSizing:\"border-box\",padding:\"28px 32px\"});board.innerHTML='<div style=\"font-size:9px;line-height:1.45\">'+\"<div>Data visualisation</div>\"+'<div style=\"margin-top:6px;max-width:460px\">Growth is shown as rings, not lines. Bars are 2px, bark on paper. Moss marks the current period only.</div>'+\"</div>\"+'<div style=\"position:absolute;left:400px;top:79px;width:500px;height:400px;background:#E4E3DE;display:flex;align-items:center;justify-content:center\">'+'<div style=\"width:300px;background:#F3F2EE;border-radius:14px;padding:16px;box-shadow:0 20px 50px #1416141f\">'+'<div style=\"display:flex;align-items:center;gap:10px\">'+'<img data-mark src=\"'+DATAVIZ_MARK+'\" alt=\"\" style=\"width:30px;height:30px;object-fit:contain;'+\"will-change:transform;transform:scale(\"+M.enter.grow.scaleFrom+');opacity:0\">'+'<div style=\"flex:1\"><div style=\"font-size:12px;font-weight:600\">Rift Valley Grove</div>'+'<div style=\"font-size:9px;color:#6B6E69\">Kenya &middot; 2,140 ha</div></div>'+'<div style=\"font-size:9px;color:#6B6E69\">Year 3</div>'+\"</div>\"+'<div style=\"font-size:26px;font-weight:500;letter-spacing:-.03em;margin:14px 0 4px;font-variant-numeric:tabular-nums\">'+'<span data-count>0</span> <span style=\"font-size:11px;color:#6B6E69;letter-spacing:0\">trees</span></div>'+'<div style=\"display:flex;align-items:flex-end;gap:3px;height:60px;margin-top:10px\">'+BAR_HEIGHTS.map((h,i)=>'<div data-bar style=\"flex:1;height:'+h+\"%;background:\"+(i===BAR_HEIGHTS.length-1?\"#7DBE95\":\"#141614\")+\";opacity:\"+(i===BAR_HEIGHTS.length-1?\"1\":\".35\")+';transform:scaleY(0);transform-origin:50% 100%\"></div>').join(\"\")+\"</div>\"+'<div style=\"display:flex;justify-content:space-between;font-size:9px;color:#6B6E69;margin-top:6px\">'+\"<span>Oct 25</span><span>Sep 26</span></div>\"+\"</div>\"+\"</div>\";cell.appendChild(board);const fit=()=>{const w=cell.clientWidth;if(w)board.style.transform=\"scale(\"+w/960+\")\";};fit();new ResizeObserver(fit).observe(cell);const mark=board.querySelector(\"[data-mark]\");const count=board.querySelector(\"[data-count]\");const bars=Array.from(board.querySelectorAll(\"[data-bar]\"));const TOTAL=412880;const settle=()=>{if(mark){mark.style.transform=\"scale(1)\";mark.style.opacity=\"1\";}if(count)count.textContent=TOTAL.toLocaleString(\"en-GB\");for(const b of bars)b.style.transform=\"scaleY(1)\";};const still=reducedMotion();if(still){settle();return cell;}let token=0;const run=()=>{const me=++token;// the object grows from the heartwood, the way every ring does\nif(mark){mark.style.transition=tr(M.enter.grow.transition,\"transform\")+\", \"+tr(M.enter.grow.opacity,\"opacity\");mark.style.transform=\"scale(1)\";mark.style.opacity=\"1\";}// the chart draws bottom-up, 60ms stagger — the rule the motion board states\nbars.forEach((b,i)=>{b.style.transition=tr(M.enter.draw.transition,\"transform\",i*M.enter.draw.stagger);b.style.transform=\"scaleY(1)\";});// counting is the brand's whole argument, so the number is counted, not set\nif(count){const DUR=M.emphasis.count.transition.duration,t0=performance.now();const countEase=easeOf(M.emphasis.count.transition.easing);const tick=now=>{if(me!==token)return;// a newer cycle owns the number now\nconst p=Math.min(1,(now-t0)/DUR);const e=countEase(p);count.textContent=Math.round(TOTAL*e).toLocaleString(\"en-GB\");if(p<1)requestAnimationFrame(tick);};requestAnimationFrame(tick);}};// wind back to nothing so the card can count itself up again\nconst reset=()=>{token++;if(mark){// a pure cross-fade: the scale is snapped back under an opacity of\n// zero, so the next cycle still has somewhere to grow from\nmark.style.transition=tr(M.exit.default.transition,\"opacity\")+\", \"+tr(M.exit.snap.transition,\"transform\",M.exit.default.transition.duration+20);mark.style.opacity=\"0\";mark.style.transform=\"scale(\"+M.enter.grow.scaleFrom+\")\";}bars.forEach((b,i)=>{b.style.transition=tr(M.exit.retract.transition,\"transform\",(bars.length-1-i)*M.exit.retract.stagger);b.style.transform=\"scaleY(0)\";});if(count)count.textContent=\"0\";};let timer=null;let back=null;const cycle=()=>{run();back=setTimeout(reset,M.loop.board.hold);};const start=()=>{if(timer)return;cycle();timer=setInterval(cycle,M.loop.board.cycle);};const stop=()=>{if(timer){clearInterval(timer);timer=null;}if(back){clearTimeout(back);back=null;}};// only run while it is on screen\nconst io=new IntersectionObserver(es=>{for(const e of es)e.isIntersecting?start():stop();},{rootMargin:\"120px\"});io.observe(cell);return cell;};const genForms=()=>{const cell=document.createElement(\"div\");Object.assign(cell.style,{aspectRatio:\"16 / 9\",background:\"#F3F2EE\",overflow:\"hidden\",position:\"relative\"});const board=document.createElement(\"div\");Object.assign(board.style,{position:\"absolute\",top:\"0\",left:\"0\",width:\"960px\",height:\"540px\",transformOrigin:\"0 0\",fontFamily:BOARD_SANS,color:\"#141614\",boxSizing:\"border-box\",padding:\"28px 32px\"});const CAPTIONS=[[\"Year 3 &middot; 94% survival\",\"Rift Valley Grove\"],[\"Year 7 &middot; 91% survival\",\"Sumatra Peatland\"],[\"Year 1 &middot; pending audit\",\"Cerrado Corridor\"]];board.innerHTML='<div style=\"font-size:9px;line-height:1.45\">'+\"<div>Generative forms</div>\"+'<div style=\"margin-top:6px;max-width:460px\">A grove&rsquo;s ring pattern is generated from its data: ring count from years verified, spacing from survival rate, offset from the direction the ground faces. No two groves share a ring.</div>'+\"</div>\"+'<div style=\"position:absolute;left:32px;right:32px;top:120px;bottom:60px;display:grid;'+'grid-template-columns:1fr 1fr 1fr;gap:24px;align-items:center;justify-items:center\">'+CAPTIONS.map(c=>'<div style=\"display:flex;flex-direction:column;align-items:center;gap:14px\">'+'<div data-form style=\"width:220px;height:220px;border-radius:50%;border:1.5px solid #141614\"></div>'+'<div style=\"font-size:9px;color:#3a3c38;text-align:center\">'+c[0]+\"<br>\"+c[1]+\"</div>\"+\"</div>\").join(\"\")+\"</div>\";cell.appendChild(board);const fit=()=>{const w=cell.clientWidth;if(w)board.style.transform=\"scale(\"+w/960+\")\";};fit();new ResizeObserver(fit).observe(cell);const els=Array.from(board.querySelectorAll(\"[data-form]\"));// spacing is the grove's own survival rate; the third is a single ring, pending\nconst forms=[{bearing:40,target:40,spacing:40.2,el:els[0]},{bearing:300,target:300,spacing:18,el:els[1]},{bearing:120,target:120,spacing:null,el:els[2]}];const paint=f=>{const r=f.bearing*Math.PI/180;const x=(50+Math.sin(r)*20).toFixed(1);const y=(50-Math.cos(r)*20).toFixed(1);const boss=\"radial-gradient(circle at \"+x+\"% \"+y+\"%, #141614 0 8px, transparent 8px)\";const rings=f.spacing==null?\"radial-gradient(circle at \"+x+\"% \"+y+\"%, transparent 0 40px, #141614 40px 41.5px, transparent 41.5px)\":\"repeating-radial-gradient(circle at \"+x+\"% \"+y+\"%, transparent 0 \"+f.spacing+\"px, #141614 \"+f.spacing+\"px \"+(f.spacing+1.5)+\"px)\";f.el.style.background=boss+\", \"+rings;};forms.forEach(paint);const still=reducedMotion();if(still)return cell;const ease=easeOf(M.ambient.swing.transition.easing);let raf=0,timer=null;const MOVE=M.ambient.swing.transition.duration;const swing=()=>{const t0=performance.now();const from=forms.map(f=>f.bearing);// each grove takes its own new bearing, never the same arc\nforms.forEach((f,i)=>{f.target=from[i]+70+Math.random()*140;});cancelAnimationFrame(raf);const step=now=>{const p=Math.min(1,(now-t0)/MOVE);const e=ease(p);forms.forEach((f,i)=>{f.bearing=from[i]+(f.target-from[i])*e;paint(f);});if(p<1)raf=requestAnimationFrame(step);};raf=requestAnimationFrame(step);};const start=()=>{if(timer)return;swing();timer=setInterval(swing,M.ambient.swing.interval);};const stop=()=>{if(timer){clearInterval(timer);timer=null;}cancelAnimationFrame(raf);};const io=new IntersectionObserver(es=>{for(const e of es)e.isIntersecting?start():stop();},{rootMargin:\"120px\"});io.observe(cell);return cell;};/**\n * Interface components, drawn live. The board's own copy states the card's\n * order — ring above, name and yield below, one action — so the card assembles\n * itself in exactly that order: the hierarchy is demonstrated, not asserted.\n * The ring grows on the brand's growth curve, the interface parts arrive at the\n * interface speed. Nothing overshoots.\n */const CARD_MARK=\"https://framerusercontent.com/images/39krc5igYf5ohutYHR0QI06Fc.png\";const cardBoard=()=>{const cell=document.createElement(\"div\");Object.assign(cell.style,{aspectRatio:\"16 / 9\",background:\"#F3F2EE\",overflow:\"hidden\",position:\"relative\"});const board=document.createElement(\"div\");Object.assign(board.style,{position:\"absolute\",top:\"0\",left:\"0\",width:\"960px\",height:\"540px\",transformOrigin:\"0 0\",fontFamily:BOARD_SANS,color:\"#141614\",boxSizing:\"border-box\",padding:\"28px 32px\"});board.innerHTML='<div style=\"font-size:9px;line-height:1.45\">'+\"<div>Interface components</div>\"+'<div style=\"margin-top:6px;max-width:460px\">The grove card is the atomic unit of the product. '+\"Ring above, name and yield below, one action. Everything else in the interface is a list or a \"+\"detail of this card.</div>\"+\"</div>\"+'<div style=\"position:absolute;left:400px;top:110px;width:528px;height:370px;background:#E4E3DE;'+'display:grid;place-items:center\">'+'<div data-frame style=\"width:220px;background:#F3F2EE;border-radius:20px;padding:24px 20px;'+\"border:1px solid #D9D7D0;box-shadow:0 30px 60px #1416141f;display:flex;flex-direction:column;\"+'align-items:center;gap:14px\">'+// will-change keeps this on one composited layer for the whole growth.\n// Without it the compositor rasterises the image at the scale it starts\n// from, stretches that bitmap up, then re-rasterises when the transition\n// ends — the image is soft all the way up and snaps sharp on the last\n// frame. Measured: 36% jump in rendered detail in a single frame.\n'<img data-ring src=\"'+CARD_MARK+'\" alt=\"\" style=\"width:120px;height:120px;'+'object-fit:contain;will-change:transform;filter:drop-shadow(0 17px 30px #14161459)\">'+'<div data-part style=\"text-align:center\">'+'<div style=\"font-size:15px;font-weight:600;letter-spacing:-.02em\">Rift Valley Grove</div>'+'<div style=\"font-size:10px;color:#6B6E69;margin-top:2px\">6.1% yield &middot; Year 3</div>'+\"</div>\"+// a div, not a button: this board is a picture of an interface, and a\n// real control here would be a tab stop that does nothing\n'<div data-part style=\"width:100%;height:42px;border-radius:999px;background:#141614;'+'color:#F3F2EE;display:grid;place-items:center;font-size:13px;font-weight:600\">Plant</div>'+'<div data-part style=\"font-size:8px;color:#6B6E69\">Verified by Annuli</div>'+\"</div>\"+\"</div>\";cell.appendChild(board);const fit=()=>{const w=cell.clientWidth;if(w)board.style.transform=\"scale(\"+w/960+\")\";};fit();new ResizeObserver(fit).observe(cell);const frame=board.querySelector(\"[data-frame]\");const ring=board.querySelector(\"[data-ring]\");const parts=Array.from(board.querySelectorAll(\"[data-part]\"));const still=reducedMotion();if(still)return cell;// nothing waits on stage: the card arrives, then fills. Leaving the frame\n// sitting there empty while the ring grew inside it read as a broken card.\nconst clear=()=>{if(frame){frame.style.transform=\"translateY(\"+M.enter.default.distance+\"px)\";frame.style.opacity=\"0\";}if(ring){ring.style.transform=\"scale(\"+M.enter.grow.scaleFrom+\")\";ring.style.opacity=\"0\";}parts.forEach((p,i)=>{p.style.transform=\"translateY(\"+(M.enter.part.distance-i*2)+\"px)\";p.style.opacity=\"0\";});};const run=()=>{// the card lands first — it is the container, so it cannot arrive late\nif(frame){frame.style.transition=tr(M.enter.default.transition,\"transform\")+\", \"+FADE(M.enter.default.transition);frame.style.transform=\"translateY(0)\";frame.style.opacity=\"1\";}if(ring){ring.style.transition=tr(M.enter.grow.transition,\"transform\",M.enter.handoff.delay)+\", \"+tr(M.enter.grow.opacity,\"opacity\",M.enter.handoff.delay);ring.style.transform=\"scale(1)\";ring.style.opacity=\"1\";}// ring first, then the name, then the one action — the reading order\nparts.forEach((p,i)=>{const at=700+i*M.enter.part.stagger;p.style.transition=tr(M.enter.part.transition,\"transform\",at)+\", \"+FADE(M.enter.part.transition,at);p.style.transform=\"translateY(0)\";p.style.opacity=\"1\";});};// The card grows in; it does not shrink out. Every exit here is a pure\n// cross-fade, with the transform snapped back once the element is already\n// transparent — so nothing is ever seen travelling backwards.\nconst reset=()=>{parts.forEach((p,i)=>{const j=parts.length-1-i;const at=j*M.exit.quick.stagger;p.style.transition=tr(M.exit.quick.transition,\"opacity\",at)+\", \"+tr(M.exit.snap.transition,\"transform\",at+M.exit.quick.transition.duration+20);p.style.opacity=\"0\";p.style.transform=\"translateY(\"+(M.enter.part.distance-i*2)+\"px)\";});if(ring){ring.style.transition=tr(M.exit.default.transition,\"opacity\",60)+\", \"+tr(M.exit.snap.transition,\"transform\",60+M.exit.default.transition.duration+20);ring.style.opacity=\"0\";ring.style.transform=\"scale(\"+M.enter.grow.scaleFrom+\")\";}// the container goes last, so the card is never seen standing empty\nif(frame){frame.style.transition=tr(M.exit.container.transition,\"opacity\")+\", \"+tr(M.exit.snap.transition,\"transform\",M.exit.container.transition.delay+M.exit.container.transition.duration+20);frame.style.opacity=\"0\";frame.style.transform=\"translateY(\"+M.enter.default.distance+\"px)\";}};clear();let timer=null;let back=null;const cycle=()=>{run();back=setTimeout(reset,M.loop.board.holdLong);};const start=()=>{if(timer)return;cycle();timer=setInterval(cycle,M.loop.board.cycle);};const stop=()=>{if(timer){clearInterval(timer);timer=null;}if(back){clearTimeout(back);back=null;}};const io=new IntersectionObserver(es=>{for(const e of es)e.isIntersecting?start():stop();},{rootMargin:\"120px\"});io.observe(cell);return cell;};/**\n * Micro-interactions, drawn live. This is the one board that cannot be a still\n * without contradicting itself: it claims three behaviours by name, so it\n * performs all three in turn — the card lifts, the button morphs through its\n * states with no spinner, the chart draws bottom-up on the stated 60ms stagger.\n * Timings are the board's own: 240ms for interface, the growth curve for growth.\n */const MICRO_BARS=[22,30,35,44,50,58,64,70,78,84,90,100];const MICRO_STATES=[{bg:\"#F3F2EE\",label:\"Plant $2,500\"},{bg:\"#B7B5AD\",label:\"Planting…\"},{bg:\"#7DBE95\",label:\"388 trees planted\"}];const microBoard=()=>{const cell=document.createElement(\"div\");Object.assign(cell.style,{aspectRatio:\"16 / 9\",background:\"#141614\",overflow:\"hidden\",position:\"relative\"});const board=document.createElement(\"div\");Object.assign(board.style,{position:\"absolute\",top:\"0\",left:\"0\",width:\"960px\",height:\"540px\",transformOrigin:\"0 0\",fontFamily:BOARD_SANS,background:\"#141614\",color:\"#F3F2EE\",boxSizing:\"border-box\",padding:\"28px 32px\"});board.innerHTML='<div style=\"font-size:9px;line-height:1.45\">'+\"<div>Micro-interactions</div>\"+'<div style=\"margin-top:6px;max-width:460px;color:#B7B5AD\">Live: hover the card, press the '+\"button, watch the chart draw. All transitions 240ms unless growth is implied.</div>\"+\"</div>\"+'<div style=\"position:absolute;left:32px;right:32px;top:120px;bottom:60px;display:grid;'+'grid-template-columns:1fr 1fr 1fr;gap:24px;align-items:center\">'+'<div data-card style=\"background:#2A2D2A;border-radius:20px;padding:22px;display:flex;'+'flex-direction:column;gap:16px\">'+'<img src=\"'+CARD_MARK+'\" alt=\"\" style=\"width:56px;height:56px;object-fit:contain;'+'filter:drop-shadow(0 8px 14px #00000073)\">'+'<div><div style=\"font-size:16px;font-weight:600\">Rift Valley Grove</div>'+'<div style=\"font-size:11px;color:#B7B5AD\">Hover to lift &middot; 240ms</div></div>'+\"</div>\"+'<div style=\"display:flex;flex-direction:column;align-items:center;gap:14px\">'+'<div data-btn style=\"height:52px;padding:0 28px;border-radius:999px;background:#F3F2EE;'+\"color:#141614;display:grid;place-items:center;font-size:15px;font-weight:600;\"+'white-space:nowrap\"><span data-label>Plant $2,500</span></div>'+'<div style=\"font-size:11px;color:#B7B5AD\">Press &middot; state morphs, no spinner</div>'+\"</div>\"+'<div style=\"display:flex;flex-direction:column;gap:12px\">'+'<div style=\"display:flex;align-items:flex-end;gap:3px;height:80px\">'+MICRO_BARS.map((h,i)=>'<div data-bar style=\"flex:1;height:'+h+\"%;background:\"+(i===MICRO_BARS.length-1?\"#7DBE95\":\"#B7B5AD\")+\";opacity:\"+(i===MICRO_BARS.length-1?\"1\":\".5\")+';transform:scaleY(0);transform-origin:50% 100%\"></div>').join(\"\")+\"</div>\"+'<div style=\"font-size:11px;color:#B7B5AD;text-align:center\">Chart draws bottom-up, '+\"60ms stagger</div>\"+\"</div>\"+\"</div>\"+'<div style=\"position:absolute;left:32px;right:32px;bottom:22px;display:flex;'+'justify-content:space-between;font-size:9px;color:#B7B5AD\"><span>Motion 02</span><span></span></div>';cell.appendChild(board);const fit=()=>{const w=cell.clientWidth;if(w)board.style.transform=\"scale(\"+w/960+\")\";};fit();new ResizeObserver(fit).observe(cell);const card=board.querySelector(\"[data-card]\");const btn=board.querySelector(\"[data-btn]\");const label=board.querySelector(\"[data-label]\");const bars=Array.from(board.querySelectorAll(\"[data-bar]\"));const still=reducedMotion();if(still){for(const b of bars)b.style.transform=\"scaleY(1)\";return cell;}if(card)card.style.transition=tr(M.interact.hover.transition,\"transform\")+\", \"+tr(M.interact.hover.transition,\"background\");if(btn)btn.style.transition=tr(M.interact.press.transition,\"transform\")+\", \"+tr(M.interact.morph.fill,\"background\");if(label)label.style.transition=tr(M.interact.morph.label,\"opacity\");// the label crossfades under its own width change, so the button reads as\n// morphing rather than snapping — the board's \"no spinner\" claim, kept\nlet state=0;const setState=n=>{if(n===state)return;state=n;const s=MICRO_STATES[n];if(btn)btn.style.background=s.bg;if(!label)return;label.style.opacity=\"0\";window.setTimeout(()=>{label.textContent=s.label;label.style.opacity=\"1\";},M.interact.morph.label.duration);};let ids=[];const at=(ms,fn)=>{ids.push(setTimeout(fn,ms));};const cycle=()=>{// a board that scrolled away mid-press froze where it stood, so put the\n// button back to rest before performing the sequence again\nsetState(0);if(btn)btn.style.transform=\"scale(1)\";// 1 — the chart draws itself, bottom-up, on the stagger the board states\nbars.forEach((b,i)=>{b.style.transition=tr(M.enter.draw.transition,\"transform\",i*M.enter.draw.stagger);b.style.transform=\"scaleY(1)\";});// 2 — the card takes its hover\nat(1200,()=>{if(card){card.style.transform=\"translateY(-\"+M.interact.hover.distance+\"px)\";card.style.background=\"#333733\";}});at(2e3,()=>{if(card){card.style.transform=\"translateY(0)\";card.style.background=\"#2A2D2A\";}});// 3 — the press, then the state morph the copy promises\nconst PRESS=2400,RELEASE=PRESS+M.interact.press.transition.duration;at(PRESS,()=>{if(btn)btn.style.transform=\"scale(\"+M.interact.press.scale+\")\";});at(RELEASE,()=>{if(btn)btn.style.transform=\"scale(1)\";setState(1);});at(RELEASE+M.interact.morph.pendingHold,()=>setState(2));// wind back so the board can perform it again\nat(M.loop.board.holdLong,()=>{setState(0);bars.forEach((b,i)=>{b.style.transition=tr(M.exit.retract.transition,\"transform\",(bars.length-1-i)*M.exit.retract.stagger);b.style.transform=\"scaleY(0)\";});});};let timer=null;const start=()=>{if(timer)return;cycle();timer=setInterval(cycle,M.loop.board.cycle);};const stop=()=>{if(timer){clearInterval(timer);timer=null;}for(const i of ids)clearTimeout(i);ids=[];};const io=new IntersectionObserver(es=>{for(const e of es)e.isIntersecting?start():stop();},{rootMargin:\"120px\"});io.observe(cell);return cell;};/**\n * Evidence · grove passport, ported from the Remotion composition that produced\n * Loop-Evidence_v3 (motion/remotion/src/scenes/Evidence.tsx). Same board, same\n * beats, same 14s; drawn live so the ten passport rows stay type rather than\n * video pixels, and so the rings are the vector construction the film uses —\n * which is the only version that can be born ring by ring from the heartwood.\n *\n * Timings below are the film's own frame numbers at 30fps, converted to ms.\n */const F=frames=>Math.round(frames*1e3/30);const GROW=EASE_GROW// the UI curve: Born, rings, rises\n;const FILM=bz(EZ.film)// the film curve: word reveals\n;const MAT_RAW={bands:[{w:1.5,c:\"#6E5230\"},{w:4.5,c:\"#B89B7A\"},{w:1.5,c:\"#7A5A38\"}],ink:\"#6E5230\",paper:\"#B89B7A\"};const MAT_BRONZE={bands:[{w:1.5,c:\"#C99A6B\"},{w:4.5,c:\"#E8D3B8\"},{w:1.5,c:\"#9E7549\"}],ink:\"#C99A6B\",paper:\"#E8D3B8\",sheen:true};const MAT_MOSS={bands:[{w:1.5,c:\"#7DBE95\"},{w:4.5,c:\"#DDE7DC\"},{w:1.5,c:\"#3E7D5A\"}],ink:\"#7DBE95\",paper:\"#DDE7DC\",sheen:true};const MAT_BLACK={bands:[{w:1.5,c:\"#1c1e1c\"},{w:4.5,c:\"#3a3c38\"},{w:1.5,c:\"#0C0D0C\"}],ink:\"#1c1e1c\",paper:\"#3a3c38\"};const EV_MUTE=\"#6B6E69\",EV_LINE=\"#E4E3DE\",EV_BARK=\"#141614\",EV_STONE=\"#D9D7D0\";const kebab=s=>s.replace(/[A-Z]/g,m=>\"-\"+m.toLowerCase());const evidenceBoard=()=>{const cell=document.createElement(\"div\");Object.assign(cell.style,{aspectRatio:\"16 / 9\",background:\"#F3F2EE\",overflow:\"hidden\",position:\"relative\"});const board=document.createElement(\"div\");Object.assign(board.style,{position:\"absolute\",top:\"0\",left:\"0\",width:\"960px\",height:\"540px\",transformOrigin:\"0 0\",fontFamily:BOARD_SANS,color:EV_BARK,boxSizing:\"border-box\",padding:\"28px 32px\",background:\"#F3F2EE\"});cell.appendChild(board);const fit=()=>{const w=cell.clientWidth;if(w)board.style.transform=\"scale(\"+w/960+\")\";};fit();new ResizeObserver(fit).observe(cell);const beats=[];const beat=(el,off,on,dur,delay,ez=GROW)=>{const tr=Object.keys(on).map(k=>kebab(k)+\" \"+dur+\"ms \"+ez+\" \"+delay+\"ms\").join(\", \");beats.push({el,off,on,tr});};const el=(tag,style,html)=>{const e=document.createElement(tag);e.setAttribute(\"style\",style);if(html!=null)e.innerHTML=html;return e;};/** Words rise through their own clip mask, one after another — the film's Reveal. */const reveal=(host,text,from,stagger,dur)=>{const words=text.split(/(\\s+)/).filter(w=>w.length);let n=0;for(const w of words){if(/^\\s+$/.test(w)){host.appendChild(document.createTextNode(\" \"));continue;}const clip=el(\"span\",\"display:inline-block;overflow:hidden;vertical-align:bottom;\"+\"padding:.12em .02em .16em;margin:-.12em -.02em -.16em\");const inner=el(\"span\",\"display:inline-block\");inner.textContent=w;clip.appendChild(inner);host.appendChild(clip);beat(inner,{transform:\"translateY(\"+M.text.caption.distance+\")\",opacity:\"0\"},{transform:\"translateY(0)\",opacity:\"1\"},dur,from+n*stagger,FILM);n++;}};/** A thing that simply rises into place. */const rise=(e,px,delay,dur=M.enter.rise.transition.duration)=>beat(e,{transform:\"translateY(\"+px+\"px)\",opacity:\"0\"},{transform:\"translateY(0)\",opacity:\"1\"},dur,delay);const SVGNS=\"http://www.w3.org/2000/svg\";/**\n     * A growth ring born properly: the disc lands, the heartwood appears, then every\n     * ring grows outward from the heartwood in the material's own bands, one after\n     * another — so the finished state IS the material. No wipe, no swap.\n     */const ringBorn=(size,hx,hy,mat,bandScale,start,opts={})=>{const wrap=el(\"div\",\"position:relative;width:\"+size+\"px;height:\"+size+\"px;\"+\"transform-origin:\"+hx+\"% \"+hy+\"%\");const cx=hx/100*size,cy=hy/100*size;const period=mat.bands.reduce((a,b)=>a+b.w,0)*bandScale;const reach=Math.hypot(Math.max(cx,size-cx),Math.max(cy,size-cy))+period;const n=Math.ceil(reach/period);const gapF=Math.max(1,Math.round(Math.min(4,36/n)));const bossR=size*.06;const overlay=!!opts.overlay;if(!overlay){const disc=el(\"div\",\"position:absolute;inset:0;border-radius:50%;background:\"+mat.paper+(opts.shadow?\";box-shadow:\"+opts.shadow:\"\"));wrap.appendChild(disc);// the disc lands: 0.6 -> 1 about the heartwood, exactly as the film does it\nbeat(wrap,{transform:\"scale(\"+M.enter.land.scaleFrom+\")\",opacity:\"0\"},{transform:\"scale(1)\",opacity:\"1\"},M.enter.land.transition.duration,start);}const svg=document.createElementNS(SVGNS,\"svg\");svg.setAttribute(\"viewBox\",\"0 0 \"+size+\" \"+size);svg.setAttribute(\"width\",String(size));svg.setAttribute(\"height\",String(size));svg.setAttribute(\"style\",\"position:absolute;inset:0;overflow:hidden;border-radius:50%\");const from=start+(overlay?0:F(16));for(let k=0;k<n;k++){const outer=period*(k+1);let acc=0;for(const b of mat.bands){const wFull=b.w*bandScale;const r=outer-period+acc+wFull/2;acc+=wFull;const c=document.createElementNS(SVGNS,\"circle\");c.setAttribute(\"cx\",String(cx));c.setAttribute(\"cy\",String(cy));c.setAttribute(\"r\",String(r));c.setAttribute(\"fill\",\"none\");c.setAttribute(\"stroke\",b.c);c.setAttribute(\"stroke-width\",String(wFull));svg.appendChild(c);// width grows from a hairline and the radius settles out from 92%, so a\n// ring never crosses the ones already laid down\nbeat(c,{r:(r*M.enter.ringBorn.radiusFrom).toFixed(2)+\"px\",strokeWidth:\"0.01px\",opacity:\"0\"},{r:r.toFixed(2)+\"px\",strokeWidth:wFull+\"px\",opacity:\"1\"},M.enter.ringBorn.transition.duration,from+k*F(gapF));}}if(!overlay){const dot=document.createElementNS(SVGNS,\"circle\");dot.setAttribute(\"cx\",String(cx));dot.setAttribute(\"cy\",String(cy));dot.setAttribute(\"r\",bossR.toFixed(2));dot.setAttribute(\"fill\",mat.ink);svg.appendChild(dot);beat(dot,{r:\"0px\",opacity:\"0\"},{r:bossR.toFixed(2)+\"px\",opacity:\"1\"},M.enter.ringBorn.heartwood.duration,start+F(8));}wrap.appendChild(svg);if(mat.sheen){const sh=el(\"div\",\"position:absolute;inset:0;border-radius:50%;mix-blend-mode:soft-light;\"+\"background:conic-gradient(from 210deg,#ffffff8c,#00000059,#ffffff59,#00000066,#ffffff8c)\");wrap.appendChild(sh);if(overlay)beat(sh,{opacity:\"0\"},{opacity:\"1\"},M.enter.land.transition.duration,start);}return wrap;};// ---- the film's timeline, in frames at 30fps ----\nconst T={head:F(6),card:F(18),rows:F(45),states:F(66),history:F(138),verify:F(192)};// ---------------- header ----------------\nconst head=el(\"div\",\"display:grid;grid-template-columns:120px 1fr 1fr;gap:24px;font-size:9px;line-height:1.45\");const logo=el(\"div\",\"display:flex;align-items:center;gap:1px\",'<svg viewBox=\"0 0 32 32\" width=\"14\" height=\"14\"><circle cx=\"16\" cy=\"16\" r=\"12\" fill=\"none\" '+'stroke=\"'+EV_BARK+'\" stroke-width=\"5\"></circle><circle cx=\"19.5\" cy=\"12.5\" r=\"4.2\" fill=\"'+EV_BARK+'\"></circle></svg><b>Annuli</b>');rise(logo,6,T.head);const eyebrow=el(\"div\",\"\");reveal(eyebrow,\"Evidence \\xb7 Grove passport\",T.head+F(4),M.text.caption.stagger,M.text.caption.transition.duration);const intro=el(\"div\",\"max-width:220px\");reveal(intro,\"Every ring carries its passport. Verification is a method, a date and a name, not a claim. \"+\"A grove moves from raw cast to bronze only when the field audit and the satellite pass agree.\",T.head+F(8),M.text.caption.stagger,M.text.caption.transition.duration);head.appendChild(logo);head.appendChild(eyebrow);head.appendChild(intro);board.appendChild(head);// ---------------- passport card ----------------\nconst cardBox=el(\"div\",\"position:absolute;left:32px;top:100px;width:430px;height:360px\");// Born: the surface is a real growing box — point, hairline, then the full card\nconst surface=el(\"div\",\"position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);\"+\"width:430px;height:360px;border-radius:16px;background:#fff;border:1px solid \"+EV_LINE+\";\"+\"box-sizing:border-box;box-shadow:0 20px 50px rgba(20,22,20,.12)\");beat(surface,{width:\"2px\",opacity:\"0\"},{width:\"430px\",opacity:\"1\"},M.enter.born.width.duration,T.card);beat(surface,{height:\"2px\"},{height:\"360px\"},M.enter.born.height.duration,T.card+M.enter.born.height.delay);const cardIn=el(\"div\",\"position:relative;height:100%;padding:18px 20px;box-sizing:border-box;\"+\"font-size:10px;line-height:1.4\");rise(cardIn,10,T.card+F(18),F(21));const idRow=el(\"div\",\"display:flex;align-items:center;gap:14px;margin-bottom:10px\");const ringSlot=el(\"div\",\"position:relative;width:56px;height:56px;flex:0 0 auto\");ringSlot.appendChild(ringBorn(56,67.3,40,MAT_RAW,.8,T.rows));// at the verification beat the same rings are re-laid in bronze, over the raw cast\nconst bronzeSlot=el(\"div\",\"position:absolute;inset:0\");bronzeSlot.appendChild(ringBorn(56,67.3,40,MAT_BRONZE,.8,T.verify,{overlay:true}));ringSlot.appendChild(bronzeSlot);const idText=el(\"div\",\"\");const name=el(\"div\",\"font-size:15px;font-weight:600;letter-spacing:-.02em\");reveal(name,\"Rift Valley Grove\",T.rows+F(4),F(2),F(18));const sub=el(\"div\",\"color:\"+EV_MUTE+\";display:flex;align-items:center;gap:4px\");const subTxt=el(\"span\",\"\");subTxt.textContent=\"Passport RVG-0214 \\xb7\";rise(subTxt,4,T.rows+F(10),F(15));const chip=el(\"span\",\"display:inline-block;padding:2px 8px;border-radius:999px;background:\"+EV_LINE+\";color:\"+EV_BARK+\";font-weight:600;font-size:9px\");chip.textContent=\"Pending\";beat(chip,{transform:\"scale(\"+M.emphasis.verify.scaleFrom+\")\",opacity:\"0\"},{transform:\"scale(\"+M.emphasis.verify.scaleFrom+\")\",opacity:\"1\"},F(15),T.rows+F(14));sub.appendChild(subTxt);sub.appendChild(chip);idText.appendChild(name);idText.appendChild(sub);idRow.appendChild(ringSlot);idRow.appendChild(idText);cardIn.appendChild(idRow);const rows=[[\"Grove\",\"Rift Valley Grove \\xb7 RVG-0214\"],[\"Location\",\"Kenya \\xb7 0.42\\xb0S 36.10\\xb0E\"],[\"Planted\",\"Mar 2023 \\xb7 2,140 ha\"],[\"Trees verified\",\"412,880 \\xb7 survival 94%\"],[\"tCO₂ verified\",\"61,200 \\xb7 vintage 2024–26\"],[\"Methodology\",\"Verra VCS \\xb7 VM0047 ARR \\xb7 ICVCM CCP-labelled\"],[\"Verifier\",\"Independent accredited VVB\"],[\"Field audit\",\"14 Aug 2026 \\xb7 12 plots \\xb7 3,600 stems counted\"],[\"Satellite pass\",\"02 Sep 2026 \\xb7 Sentinel-2 \\xb7 canopy NDVI 0.71\"],[\"Next audit\",\"14 Oct 2026\"]];rows.forEach(([k,v],i)=>{const start=T.rows+F(16)+F(i*10);const row=el(\"div\",\"display:grid;grid-template-columns:96px 1fr;gap:12px;padding:7px 0;position:relative\");const rule=el(\"div\",\"position:absolute;left:0;bottom:0;height:1px;width:100%;background:\"+EV_LINE+\";transform-origin:left\");beat(rule,{transform:\"scaleX(0)\"},{transform:\"scaleX(1)\"},M.enter.rule.transition.duration,start);const lab=el(\"span\",\"color:\"+EV_MUTE);lab.textContent=k;rise(lab,4,start,F(18));const val=el(\"span\",\"font-variant-numeric:tabular-nums\");reveal(val,v,start+F(4),M.text.caption.stagger,M.text.caption.transition.duration);row.appendChild(rule);row.appendChild(lab);row.appendChild(val);cardIn.appendChild(row);});cardBox.appendChild(surface);cardBox.appendChild(cardIn);board.appendChild(cardBox);// ---------------- material states ----------------\nconst right=el(\"div\",\"position:absolute;left:500px;right:32px;top:100px\");const stLab=el(\"div\",\"font-size:9px;color:\"+EV_MUTE+\";margin-bottom:14px\");reveal(stLab,\"Material follows the state\",T.states,M.text.caption.stagger,M.text.caption.transition.duration);right.appendChild(stLab);const stGrid=el(\"div\",\"display:grid;grid-template-columns:repeat(4,1fr);gap:12px\");const states=[{n:\"Pending\",s:\"Planted, not yet audited\",m:MAT_RAW,hx:40,hy:32.7},{n:\"Verified\",s:\"First field audit passed\",m:MAT_BRONZE,hx:56.8,hy:68.8},{n:\"Matured\",s:\"Year 7, income-bearing\",m:MAT_MOSS,hx:31.2,hy:56.8},{n:\"Retired\",s:\"Credits retired or survival < 70%\",m:MAT_BLACK,hx:56.8,hy:31.2}];states.forEach((s,i)=>{const start=T.states+F(10)+F(i*14);const col=el(\"div\",\"display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center\");col.appendChild(ringBorn(64,s.hx,s.hy,s.m,.8,start,{shadow:\"0 14px 30px rgba(20,22,20,.18)\"}));const cap=el(\"div\",\"\");cap.innerHTML='<div style=\"font-weight:600;font-size:11px\">'+s.n+\"</div>\"+'<div style=\"color:'+EV_MUTE+';font-size:9px;margin-top:2px;max-width:96px\">'+s.s+\"</div>\";rise(cap,6,start+F(22));col.appendChild(cap);stGrid.appendChild(col);});right.appendChild(stGrid);// ---------------- audit history ----------------\nconst hLab=el(\"div\",\"font-size:9px;color:\"+EV_MUTE+\";margin:34px 0 12px\");reveal(hLab,\"Rift Valley Grove \\xb7 audit history\",T.history,M.text.caption.stagger,M.text.caption.transition.duration);right.appendChild(hLab);const hRow=el(\"div\",\"position:relative;display:flex;gap:8px\");const hLine=el(\"div\",\"position:absolute;left:7%;right:7%;top:7px;height:1px;background:\"+EV_STONE+\";transform-origin:left\");beat(hLine,{transform:\"scaleX(0)\"},{transform:\"scaleX(1)\"},M.enter.rule.long.duration,T.history+F(10));hRow.appendChild(hLine);const audits=[{l:\"Planted\",d:\"Mar 2023\",m:MAT_RAW,hx:43.2,hy:68.8},{l:\"Audit 1 ✓\",d:\"Sep 2024\",m:MAT_BRONZE,hx:69.7,hy:53.5},{l:\"Audit 2 ✓\",d:\"Sep 2025\",m:MAT_BRONZE,hx:30.3,hy:46.5},{l:\"Audit 3 ✓\",d:\"Aug 2026\",m:MAT_BRONZE,hx:62.9,hy:34.7}];audits.forEach((a,i)=>{const start=T.history+F(14)+F(i*12);const col=el(\"div\",\"display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;position:relative\");col.appendChild(ringBorn(14,a.hx,a.hy,a.m,.4,start));const l=el(\"div\",\"font-size:9px;font-weight:600\");l.textContent=a.l;rise(l,4,start+F(14),F(15));const d=el(\"div\",\"font-size:9px;color:\"+EV_MUTE);d.textContent=a.d;rise(d,4,start+F(18),F(15));col.appendChild(l);col.appendChild(d);hRow.appendChild(col);});right.appendChild(hRow);board.appendChild(right);// ---------------- footer ----------------\nconst foot=el(\"div\",\"position:absolute;left:32px;right:32px;bottom:22px;display:flex;\"+\"justify-content:space-between;font-size:9px\",\"<span>Evidence</span><span>\\xa92026 Annuli — Brand Guidelines</span>\");beat(foot,{opacity:\"0\"},{opacity:\"1\"},F(18),T.head+F(20));board.appendChild(foot);// ---------------- playback ----------------\nconst still=reducedMotion();const settle=()=>{for(const b of beats){b.el.style.transition=\"none\";Object.assign(b.el.style,b.on);}chip.textContent=\"Verified\";chip.style.background=\"#7DBE95\";chip.style.transform=\"scale(1)\";};if(still){settle();return cell;}let ids=[];const at=(ms,fn)=>{ids.push(setTimeout(fn,ms));};const rest=()=>{for(const b of beats){b.el.style.transition=\"none\";Object.assign(b.el.style,b.off);}chip.textContent=\"Pending\";chip.style.background=EV_LINE;board.style.transition=\"none\";board.style.opacity=\"1\";};const cycle=()=>{rest();void board.offsetWidth// commit the rest state before the run\n;for(const b of beats)b.el.style.transition=b.tr;for(const b of beats)Object.assign(b.el.style,b.on);// the verification beat: the chip fills and takes its name as the bronze lands\nat(F(192),()=>{chip.style.transition=tr(M.emphasis.verify.transition,\"background\")+\", \"+tr(M.emphasis.verify.transition,\"transform\");chip.style.background=\"#7DBE95\";chip.style.transform=\"scale(1)\";});at(F(207),()=>{chip.textContent=\"Verified\";});// fade the whole board out so the loop closes on paper, as the film does\nat(F(396),()=>{board.style.transition=tr(M.exit.board.transition,\"opacity\");board.style.opacity=\"0\";});};let timer=null;const start=()=>{if(timer)return;cycle();timer=setInterval(cycle,F(420));};const stop=()=>{if(timer){clearInterval(timer);timer=null;}for(const i of ids)clearTimeout(i);ids=[];};const io=new IntersectionObserver(es=>{for(const e of es)e.isIntersecting?start():stop();},{rootMargin:\"120px\"});io.observe(cell);return cell;};/**\n * The boards are set in Manrope with a Newsreader Italic counterpoint, but the\n * site itself carries neither face — so every live board was quietly falling back\n * to Helvetica while the rendered stills beside them showed the real thing. Both\n * are loaded here as variable fonts: one 24KB file covers all four Manrope\n * weights, which is also the axis the typography board animates.\n */const BOARD_SANS=\"'AnnuliManrope', Manrope, system-ui, sans-serif\";const BOARD_SERIF=\"'AnnuliNewsreader', Newsreader, Georgia, serif\";const boardFonts=()=>{if(typeof document===\"undefined\"||document.getElementById(\"nsm-board-fonts\"))return;const st=document.createElement(\"style\");st.id=\"nsm-board-fonts\";st.textContent='@font-face{font-family:\"AnnuliManrope\";'+'src:url(https://framerusercontent.com/assets/yOr6GOlMYXra2M9DBWFjPFP0.woff2) format(\"woff2\");'+\"font-weight:200 800;font-style:normal;font-display:swap}\"+// the italic is only ever set at 300 here, so it ships as a single static\n// instance: 25KB instead of the 147KB variable cut, for nothing lost\n'@font-face{font-family:\"AnnuliNewsreader\";'+'src:url(https://framerusercontent.com/assets/6JoJVw6coYrPI4wzzCGl4OHZyI.woff2) format(\"woff2\");'+\"font-weight:300;font-style:italic;font-display:swap}\";document.head.appendChild(st);// ask for both faces outright — a face used only by off-screen text can sit\n// unloaded until it scrolls into view, which shows as a flash of the fallback\nif(document.fonts&&document.fonts.load){document.fonts.load('400 100px \"AnnuliManrope\"').catch(()=>{});document.fonts.load('italic 300 100px \"AnnuliNewsreader\"').catch(()=>{});}};/** The film curve: symmetric, quick through the middle, soft settle, no overshoot. */const filmEase=easeOf(M.emphasis.travel.transition.easing);const TYPE_STOPS=[{w:300,name:\"Manrope Light\"},{w:400,name:\"Manrope Regular\"},{w:600,name:\"Manrope SemiBold\"},{w:800,name:\"Manrope ExtraBold\"}];const AXIS_LO=300,AXIS_HI=800;const ABC=\"abcdefghijklmnopqrstuvwxyz\";const ABC_UP=\"ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789\";/**\n * Typography, drawn live. One specimen instead of five: Manrope is a variable\n * font, so the Aa travels the weight axis and rests on each of the four the\n * system uses, with a marker naming where it has stopped, then sweeps the full\n * range home. Only Manrope is shown as a specimen — the italic is a different\n * family, not a point on this axis, so it stays a line in the list.\n * The right column starts at x=400 — the same line the \"in use\" board sets its\n * copy on, so the two boards read as one spread.\n */const typeBoard=()=>{boardFonts();const cell=document.createElement(\"div\");Object.assign(cell.style,{aspectRatio:\"16 / 9\",background:\"#F3F2EE\",overflow:\"hidden\",position:\"relative\"});const board=document.createElement(\"div\");Object.assign(board.style,{position:\"absolute\",top:\"0\",left:\"0\",width:\"960px\",height:\"540px\",transformOrigin:\"0 0\",color:\"#141614\",boxSizing:\"border-box\",padding:\"28px 32px\",fontFamily:BOARD_SANS,background:\"#F3F2EE\"});const rowsHtml=TYPE_STOPS.map(s=>'<div data-row style=\"font-size:14px;line-height:1.55;color:#3a3c38\">'+'<b data-name style=\"font-size:15px;font-weight:600;color:#3a3c38\">'+s.name+\"</b><br>\"+'<span style=\"font-weight:'+s.w+'\">'+ABC+\"<br>\"+ABC_UP+\"</span>\"+\"</div>\").join(\"\");board.innerHTML='<div style=\"font-size:9px;line-height:1.45\">'+\"<div>Typography</div>\"+'<div style=\"margin-top:6px;max-width:460px\">Manrope in four weights for all interface and '+\"editorial use. Newsreader Italic appears only as a counterpoint in headlines, never below 24px.</div>\"+\"</div>\"+// the specimen: one Aa on the axis, with the axis drawn beneath it\n'<div style=\"position:absolute;left:32px;top:170px;width:330px;height:180px\">'+'<div data-aa style=\"position:absolute;left:0;top:0;font-size:180px;line-height:1;'+'letter-spacing:-.03em;font-weight:300\">Aa</div>'+\"</div>\"+'<div data-axis style=\"position:absolute;left:32px;top:386px;width:324px\">'+'<div style=\"position:relative;height:9px\">'+'<div style=\"position:absolute;left:0;right:0;top:4px;height:1px;background:#D9D7D0\"></div>'+TYPE_STOPS.map(s=>'<div style=\"position:absolute;top:0;left:'+((s.w-AXIS_LO)/(AXIS_HI-AXIS_LO)*100).toFixed(2)+'%;width:1px;height:9px;background:#D9D7D0\"></div>').join(\"\")+'<div data-dot style=\"position:absolute;top:1px;left:0;width:7px;height:7px;margin-left:-3px;'+'border-radius:50%;background:#141614\"></div>'+\"</div>\"+'<div style=\"display:flex;justify-content:space-between;font-size:9px;color:#6B6E69;margin-top:8px\">'+\"<span>wght \"+AXIS_LO+'</span><span data-read style=\"color:#141614;'+'font-variant-numeric:tabular-nums\">300</span><span>'+AXIS_HI+\"</span></div>\"+\"</div>\"+// the specimen list, on the same left edge the \"in use\" board uses\n'<div data-list style=\"position:absolute;left:400px;right:32px;top:106px;display:grid;row-gap:12px\">'+rowsHtml+'<div data-row style=\"font-size:14px;line-height:1.55;color:#3a3c38\">'+'<b data-name style=\"font-size:15px;font-weight:600;color:#3a3c38\">Newsreader Italic</b><br>'+'<span style=\"font-family:'+BOARD_SERIF+';font-style:italic;font-weight:300\">'+ABC+\"<br>\"+ABC_UP+\"</span>\"+\"</div>\"+\"</div>\"+'<div data-mark style=\"position:absolute;left:388px;top:106px;width:2px;height:20px;'+'background:#141614\"></div>';cell.appendChild(board);const fit=()=>{const w=cell.clientWidth;if(w)board.style.transform=\"scale(\"+w/960+\")\";};fit();new ResizeObserver(fit).observe(cell);const aa=board.querySelector(\"[data-aa]\");const dot=board.querySelector(\"[data-dot]\");const read=board.querySelector(\"[data-read]\");const mark=board.querySelector(\"[data-mark]\");const rows=Array.from(board.querySelectorAll(\"[data-row]\"));const names=Array.from(board.querySelectorAll(\"[data-name]\"));const setWeight=w=>{if(aa){aa.style.fontWeight=String(Math.round(w));aa.style.fontVariationSettings='\"wght\" '+w.toFixed(1);}if(dot)dot.style.left=((w-AXIS_LO)/(AXIS_HI-AXIS_LO)*100).toFixed(2)+\"%\";if(read)read.textContent=String(Math.round(w));};/** the marker sits against whichever row the specimen is currently showing */const setRow=i=>{const r=rows[i];if(r&&mark){mark.style.top=r.offsetTop+106+\"px\";mark.style.height=r.offsetHeight+\"px\";}names.forEach((n,k)=>{n.style.color=k===i?\"#141614\":\"#3a3c38\";});};setWeight(AXIS_LO);const still=reducedMotion();if(still){// no travel: rest on Regular, the weight the body copy is set in\nsetWeight(400);requestAnimationFrame(()=>setRow(1));return cell;}// hold on each named weight, travel between them, then sweep home\nconst HOLD=M.emphasis.travel.hold,MOVE=M.emphasis.travel.transition.duration,HOME=M.emphasis.travel.return.duration;const legs=[];let t=0;TYPE_STOPS.forEach((s,i)=>{legs.push({t0:t,t1:t+HOLD,from:s.w,to:s.w,row:i});t+=HOLD;if(i<TYPE_STOPS.length-1){legs.push({t0:t,t1:t+MOVE,from:s.w,to:TYPE_STOPS[i+1].w,row:i+1});t+=MOVE;}});// the whole range in one move rather than a cut back: it is a continuous axis,\n// and the sweep home is the only place the board shows you that\nlegs.push({t0:t,t1:t+HOME,from:AXIS_HI,to:AXIS_LO,row:0});const CYCLE=t+HOME;let raf=0,t0=0,lastRow=-1;const frame=now=>{if(!t0)t0=now;const ms=(now-t0)%CYCLE;let row=lastRow;for(const l of legs){if(ms>=l.t0&&ms<l.t1){const p=l.to===l.from?1:filmEase((ms-l.t0)/(l.t1-l.t0));setWeight(l.from+(l.to-l.from)*p);row=l.row;break;}}if(row!==lastRow){setRow(row);lastRow=row;}raf=requestAnimationFrame(frame);};const start=()=>{if(raf)return;t0=0;raf=requestAnimationFrame(frame);};const stop=()=>{if(raf){cancelAnimationFrame(raf);raf=0;}};const io=new IntersectionObserver(es=>{for(const e of es)e.isIntersecting?start():stop();},{rootMargin:\"120px\"});io.observe(cell);return cell;};/**\n * Social, drawn live. The three cards are 400×400 in the deck's own units and\n * sit in one 2400×900 frame, so each is written at 400 and scaled 1.8 once.\n *\n * Card one builds itself in the order the board reads: the dot field arrives\n * outward from the centre, the headline types, the mark is laid ring by ring\n * from its heartwood through an annulus mask — so the cast object itself\n * appears in rings rather than fading in — the two dashed orbits grow out from\n * behind it, and the two labels ride the inner orbit, staying upright as they go.\n * Cards two and three take the same headline treatment, and card three counts\n * its trees rather than stating them: the counting is the brand's whole claim.\n * The three start 200ms apart, left to right, so the row arrives as one gesture.\n */const SOCIAL_MARK_A=\"https://framerusercontent.com/images/r3cUni1wZNSQ7nmnsfMeuNbYg.png\";const SOCIAL_MARK_B=\"https://framerusercontent.com/images/AxkYTMNBCfiR7dxPjzElOoFfX98.png\";const SVGNS_S=\"http://www.w3.org/2000/svg\";const SOCIAL_TREES=4182306;let socialUid=0;const socialBoard=()=>{boardFonts();const cell=document.createElement(\"div\");Object.assign(cell.style,{aspectRatio:\"8 / 3\",background:\"#F3F2EE\",overflow:\"hidden\",position:\"relative\"});const frame=document.createElement(\"div\");Object.assign(frame.style,{position:\"absolute\",top:\"0\",left:\"0\",width:\"2400px\",height:\"900px\",transformOrigin:\"0 0\",fontFamily:BOARD_SANS,color:\"#141614\"});cell.appendChild(frame);const fit=()=>{const w=cell.clientWidth;if(w)frame.style.transform=\"scale(\"+w/2400+\")\";};fit();new ResizeObserver(fit).observe(cell);if(!document.getElementById(\"nsm-orbit-keys\")){const st=document.createElement(\"style\");st.id=\"nsm-orbit-keys\";// the pair counter-rotates so a label rides the circle without ever tipping\nst.textContent=\"@keyframes nsmOrbit{to{transform:rotate(360deg)}}\"+\"@keyframes nsmOrbitBack{to{transform:rotate(-360deg)}}\";document.head.appendChild(st);}/** a 400×400 card placed in the 2400×900 frame at the deck's 1.8 scale */const card=(x,css)=>{const c=document.createElement(\"div\");c.setAttribute(\"style\",\"position:absolute;left:\"+x+\"px;top:90px;width:400px;height:400px;\"+\"transform:scale(1.8);transform-origin:0 0;box-sizing:border-box;padding:28px;overflow:hidden;\"+css);frame.appendChild(c);return c;};const el=(tag,style,html)=>{const e=document.createElement(tag);e.setAttribute(\"style\",style);if(html!=null)e.innerHTML=html;return e;};const logo=col=>'<svg viewBox=\"0 0 32 32\" width=\"18\" height=\"18\"><circle cx=\"16\" cy=\"16\" r=\"12\" fill=\"none\" stroke=\"'+col+'\" stroke-width=\"5\"></circle><circle cx=\"19.5\" cy=\"12.5\" r=\"4.2\" fill=\"'+col+'\"></circle></svg>';const HEAD=\"font-size:34px;font-weight:500;letter-spacing:-.045em;line-height:1\";const FOOT=\"position:absolute;left:28px;right:28px;bottom:22px;display:flex;\"+\"justify-content:space-between;align-items:flex-end;font-size:9px;line-height:1.4\";const beats=[];const kebabS=s=>s.replace(/[A-Z]/g,m=>\"-\"+m.toLowerCase());const beat=(e,off,on,dur,delay,ez=EASE_GROW)=>{beats.push({el:e,off,on,tr:Object.keys(on).map(k=>kebabS(k)+\" \"+dur+\"ms \"+ez+\" \"+delay+\"ms\").join(\", \")});};/** words rise through their own clip mask, one after another — the film's Reveal */const revealToks=(host,toks,from,stagger,dur)=>{let n=0;for(const tk of toks){if(tk.br){host.appendChild(document.createElement(\"br\"));continue;}const clip=el(\"span\",\"display:inline-block;overflow:hidden;vertical-align:bottom;\"+\"padding:.14em .04em .2em;margin:-.14em -.04em -.2em\");const inner=el(\"span\",\"display:inline-block\");if(tk.el)inner.appendChild(tk.el);else if(tk.h)inner.innerHTML=tk.h;else inner.textContent=tk.t||\"\";clip.appendChild(inner);host.appendChild(clip);host.appendChild(document.createTextNode(\" \"));beat(inner,{transform:\"translateY(\"+M.text.caption.distance+\")\",opacity:\"0\"},{transform:\"translateY(0)\",opacity:\"1\"},dur,from+n*stagger,bz(M.text.headline.transition.easing));n++;}};const words=s=>s.split(/\\s+/).filter(x=>x.length).map(t=>({t}));// ---------------- card 1 · New grove open ----------------\nconst T1=0;const c1=card(60,\"background:#F3F2EE\");// the dot field, revealed outward from the centre through a soft-edged mask\nconst dots=el(\"div\",\"position:absolute;inset:0;\"+\"background-image:radial-gradient(#1416142e .8px, transparent .8px);background-size:14px 14px;\"+\"-webkit-mask-image:radial-gradient(circle,#000 52%,transparent 78%);\"+\"mask-image:radial-gradient(circle,#000 52%,transparent 78%);\"+\"-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;\"+\"-webkit-mask-position:center;mask-position:center\");beat(dots,{webkitMaskSize:\"0% 0%\",maskSize:\"0% 0%\"},{webkitMaskSize:\"300% 300%\",maskSize:\"300% 300%\"},M.enter.field.transition.duration,T1);c1.appendChild(dots);const h1=el(\"div\",HEAD+\";position:relative\");revealToks(h1,words(\"New grove open.\"),T1+400,M.text.headline.stagger,M.text.headline.transition.duration);c1.appendChild(h1);const stage=el(\"div\",\"position:absolute;inset:0;display:grid;place-items:center\");const ring300=el(\"div\",\"position:absolute;width:300px;height:300px;border-radius:50%;\"+\"border:1px dashed #1416144d\");const ring200=el(\"div\",\"position:absolute;width:200px;height:200px;border-radius:50%;\"+\"border:1px dashed #1416144d\");// out from behind the mark, inner first\nconst ORBITS_AT=T1+2300,orbitFrom=\"scale(\"+M.enter.orbit.scaleFrom+\")\";beat(ring200,{transform:orbitFrom,opacity:\"0\"},{transform:\"scale(1)\",opacity:\"1\"},M.enter.orbit.transition.duration,ORBITS_AT);beat(ring300,{transform:orbitFrom,opacity:\"0\"},{transform:\"scale(1)\",opacity:\"1\"},M.enter.orbit.transition.duration,ORBITS_AT+M.enter.orbit.stagger);// the mark: the photograph appears ring by ring through an annulus mask, and\n// turns as it lands — the object is built, not faded in\nconst MK=110,hx=62,hy=32;const cx=hx/100*MK,cy=hy/100*MK;const period=5,bossR=MK*.075;const reach=Math.hypot(Math.max(cx,MK-cx),Math.max(cy,MK-cy))+period;const nR=Math.ceil(reach/period);const uid=\"sm\"+ ++socialUid;const markWrap=el(\"div\",\"position:relative;width:\"+MK+\"px;height:\"+MK+\"px;\"+\"filter:drop-shadow(0 15px 27px #14161459)\");const svg=document.createElementNS(SVGNS_S,\"svg\");svg.setAttribute(\"viewBox\",\"0 0 \"+MK+\" \"+MK);svg.setAttribute(\"width\",String(MK));svg.setAttribute(\"height\",String(MK));const defs=document.createElementNS(SVGNS_S,\"defs\");const mask=document.createElementNS(SVGNS_S,\"mask\");mask.setAttribute(\"id\",uid);mask.setAttribute(\"maskUnits\",\"userSpaceOnUse\");mask.setAttribute(\"x\",\"0\");mask.setAttribute(\"y\",\"0\");mask.setAttribute(\"width\",String(MK));mask.setAttribute(\"height\",String(MK));const boss=document.createElementNS(SVGNS_S,\"circle\");boss.setAttribute(\"cx\",String(cx));boss.setAttribute(\"cy\",String(cy));boss.setAttribute(\"r\",bossR.toFixed(2));boss.setAttribute(\"fill\",\"#fff\");mask.appendChild(boss);beat(boss,{opacity:\"0\"},{opacity:\"1\"},M.enter.ringBorn.heartwood.duration,T1+1e3);for(let k=0;k<nR;k++){const r=period*(k+1)-period/2;const c=document.createElementNS(SVGNS_S,\"circle\");c.setAttribute(\"cx\",String(cx));c.setAttribute(\"cy\",String(cy));c.setAttribute(\"r\",r.toFixed(2));c.setAttribute(\"fill\",\"none\");c.setAttribute(\"stroke\",\"#fff\");c.setAttribute(\"stroke-width\",String(period));mask.appendChild(c);beat(c,{strokeWidth:\"0px\",opacity:\"0\"},{strokeWidth:period+\"px\",opacity:\"1\"},M.enter.ringBorn.transition.duration,T1+1150+k*M.enter.ringBorn.stagger);}defs.appendChild(mask);svg.appendChild(defs);const img=document.createElementNS(SVGNS_S,\"image\");img.setAttribute(\"href\",SOCIAL_MARK_A);img.setAttribute(\"x\",\"0\");img.setAttribute(\"y\",\"0\");img.setAttribute(\"width\",String(MK));img.setAttribute(\"height\",String(MK));img.setAttribute(\"preserveAspectRatio\",\"xMidYMid meet\");img.setAttribute(\"mask\",\"url(#\"+uid+\")\");svg.appendChild(img);markWrap.appendChild(svg);beat(markWrap,{transform:\"rotate(\"+M.enter.settle.rotateFrom+\"deg)\"},{transform:\"rotate(0deg)\"},M.enter.settle.transition.duration,T1+1e3);stage.appendChild(ring300);stage.appendChild(ring200);stage.appendChild(markWrap);// the labels ride the inner orbit and stay upright the whole way round\nconst ORBIT=100,SPIN=M.ambient.orbit.transition.duration/1e3;const orbitLabel=(text,phase)=>{const arm=el(\"div\",\"position:absolute;left:50%;top:50%;width:0;height:0;\"+\"animation:nsmOrbit \"+SPIN+\"s linear infinite;animation-delay:\"+-phase*SPIN+\"s\");const lab=el(\"div\",\"position:absolute;left:\"+ORBIT+\"px;top:0;white-space:nowrap;font-size:16px;\"+\"animation:nsmOrbitBack \"+SPIN+\"s linear infinite;animation-delay:\"+-phase*SPIN+\"s\");const inner=el(\"span\",\"display:block;transform:translate(-50%,-50%)\");inner.textContent=text;lab.appendChild(inner);arm.appendChild(lab);beat(inner,{opacity:\"0\"},{opacity:\"1\"},700,T1+2900);return arm;};stage.appendChild(orbitLabel(\"Annuli\",.5));stage.appendChild(orbitLabel(\"Kenya\",0));c1.appendChild(stage);const f1=el(\"div\",FOOT+\";color:#3a3c38\",\"<div>Yield p.a.<br>Hectares<br>Manager</div><div>6.1%<br>2,140<br>Annuli</div>\"+logo(\"#141614\"));beat(f1,{transform:\"translateY(6px)\",opacity:\"0\"},{transform:\"translateY(0)\",opacity:\"1\"},800,T1+3200);c1.appendChild(f1);// ---------------- card 2 · Grown for income ----------------\nconst T2=M.enter.sequence.stagger;const c2=card(840,\"background:#141614;color:#F3F2EE\");const h2=el(\"div\",HEAD);revealToks(h2,[...words(\"Grown for income,\"),{br:true},...words(\"not yield\"),// The italic is set 1.23em to match x-heights, but at that size it also\n// grows the line box — which lifted the word off its own baseline and\n// pushed this whole line below the matching line on card three. Scaling\n// its line-height is not enough: Newsreader's ascent and descent differ\n// from Manrope's, so its inline box still outgrows the strut. line-height\n// 0 takes it out of the line-box measurement altogether; the glyph keeps\n// its size and its baseline, and the surrounding padding absorbs it.\n{h:'<span style=\"font-size:1.23em;line-height:0;font-family:'+BOARD_SERIF+';font-style:italic;font-weight:300\">chasing</span>.'}],T2+400,M.text.headline.stagger,M.text.headline.transition.duration);c2.appendChild(h2);// the mark keeps the brand's own rule: rings scale from the centre, long ease-out\nconst m2=el(\"img\",\"position:absolute;left:50%;top:210px;width:120px;height:120px;object-fit:contain;\"+\"filter:drop-shadow(0 17px 30px #14161459)\");m2.src=SOCIAL_MARK_B;beat(m2,{transform:\"translateX(-50%) scale(\"+SC[\"0_7\"]+\")\",opacity:\"0\"},{transform:\"translateX(-50%) scale(1)\",opacity:\"1\"},M.enter.grow.transition.duration,T2+1100);c2.appendChild(m2);const f2=el(\"div\",FOOT+\";color:#B7B5AD\",\"<div>Announcing<br>Mekong Mangroves</div><div>powered by<br>annuli.earth</div>\"+logo(\"#F3F2EE\"));beat(f2,{transform:\"translateY(6px)\",opacity:\"0\"},{transform:\"translateY(0)\",opacity:\"1\"},800,T2+2200);c2.appendChild(f2);// ---------------- card 3 · the count ----------------\nconst T3=2*M.enter.sequence.stagger;const c3=card(1620,\"background:#7DBE95;color:#141614\");const h3=el(\"div\",HEAD);// counted, not stated: the number is the claim, so it is arrived at\nconst countEl=el(\"span\",\"display:inline-block;text-align:left;font-variant-numeric:tabular-nums\");countEl.textContent=SOCIAL_TREES.toLocaleString(\"en-GB\");revealToks(h3,[{el:countEl},{t:\"trees,\"},{br:true},...words(\"counted one by one.\")],T3+400,M.text.headline.stagger,M.text.headline.transition.duration);c3.appendChild(h3);const f3=el(\"div\",FOOT,\"<div>Q3 2026<br>Verification report</div>\"+logo(\"#141614\"));beat(f3,{transform:\"translateY(6px)\",opacity:\"0\"},{transform:\"translateY(0)\",opacity:\"1\"},800,T3+2200);c3.appendChild(f3);// hold the final width so the words after it never shift while it counts\nrequestAnimationFrame(()=>{const w=countEl.offsetWidth;if(w)countEl.style.minWidth=w+\"px\";countEl.textContent=\"0\";});const COUNT_FROM=T3+500,COUNT_DUR=M.emphasis.count.long.duration;const countEase=easeOf(M.emphasis.count.long.easing);let countRaf=0;const runCount=()=>{const t0=performance.now();const step=now=>{const p=Math.max(0,Math.min(1,(now-t0-COUNT_FROM)/COUNT_DUR));const e=countEase(p);countEl.textContent=Math.round(SOCIAL_TREES*e).toLocaleString(\"en-GB\");if(p<1)countRaf=requestAnimationFrame(step);};cancelAnimationFrame(countRaf);countRaf=requestAnimationFrame(step);};// ---------------- playback ----------------\nconst still=reducedMotion();if(still){for(const b of beats){b.el.style.transition=\"none\";Object.assign(b.el.style,b.on);}countEl.textContent=SOCIAL_TREES.toLocaleString(\"en-GB\");for(const a of Array.from(frame.querySelectorAll('[style*=\"nsmOrbit\"]')))a.style.animation=\"none\";return cell;}// The paper, the black and the green are the posts themselves: they are always\n// there. Only what is set on them arrives and leaves, so the row never blinks.\nconst fg=[dots,h1,stage,f1,h2,m2,f2,h3,f3];// it holds resolved for a full eight seconds before it leaves\nconst WIND=M.loop.read.hold,OUT=M.exit.scene.transition.duration,CYCLE=WIND+2*OUT;let ids=[];const rest=()=>{for(const e of fg){e.style.transition=\"none\";e.style.opacity=\"1\";}for(const b of beats){b.el.style.transition=\"none\";Object.assign(b.el.style,b.off);}};rest()// never let the resolved state show before the first cycle runs\n;const cycle=()=>{rest();void frame.offsetWidth;for(const b of beats)b.el.style.transition=b.tr;for(const b of beats)Object.assign(b.el.style,b.on);runCount();// it leaves as a cross-fade: nothing is ever seen running backwards\nids.push(setTimeout(()=>{for(const e of fg){e.style.transition=tr(M.exit.scene.transition,\"opacity\");e.style.opacity=\"0\";}},WIND));};let timer=null;const start=()=>{if(timer)return;cycle();timer=setInterval(cycle,CYCLE);};const stop=()=>{if(timer){clearInterval(timer);timer=null;}for(const i of ids)clearTimeout(i);ids=[];cancelAnimationFrame(countRaf);};const io=new IntersectionObserver(es=>{for(const e of es)e.isIntersecting?start():stop();},{rootMargin:\"120px\"});io.observe(cell);return cell;};const mediaGrid=(host,rows)=>{boardFonts();const grid=document.createElement(\"div\");Object.assign(grid.style,{display:\"grid\",gap:GUTTER+\"px\",marginTop:\"40px\"});const rowEls=[];// Vimeo cells collected here, then handed to the shared lazy queue in one go\nconst frames=[];const stillOnly=reducedMotion();for(const row of rows){const rowEl=document.createElement(\"div\");Object.assign(rowEl.style,{gridColumn:\"1 / -1\",display:\"grid\",gap:GUTTER+\"px\",gridTemplateColumns:\"repeat(\"+row.length+\", 1fr)\"});rowEls.push({el:rowEl,count:row.length});for(const s of row){if(s.lab){rowEl.appendChild(ringLab());continue;}if(s.forms){try{rowEl.appendChild(genForms());}catch{}continue;}if(s.dataviz){try{rowEl.appendChild(dataViz());}catch{}continue;}if(s.icons){try{rowEl.appendChild(iconBoard());}catch{}continue;}if(s.card){try{rowEl.appendChild(cardBoard());}catch{}continue;}if(s.micro){try{rowEl.appendChild(microBoard());}catch{}continue;}if(s.evidence){try{rowEl.appendChild(evidenceBoard());}catch{}continue;}if(s.typo){try{rowEl.appendChild(typeBoard());}catch{}continue;}if(s.social){try{rowEl.appendChild(socialBoard());}catch{}continue;}const cell=document.createElement(\"div\");Object.assign(cell.style,{aspectRatio:s.ar||\"16 / 9\",background:\"#1A1916\",overflow:\"hidden\"});if(s.click&&s.url){// a film you choose to watch: poster + play, plays from the start with sound\ncell.style.position=\"relative\";cell.appendChild(clickFilm(s.url,s.poster,\"Runrate\"));rowEl.appendChild(cell);continue;}if(s.html&&EMBEDS[s.html]){const fr=document.createElement(\"iframe\");fr.srcdoc=EMBEDS[s.html];fr.setAttribute(\"sandbox\",\"allow-scripts\");fr.setAttribute(\"loading\",\"lazy\");fr.title=\"Interactive demo\";Object.assign(fr.style,{width:\"100%\",height:\"100%\",border:\"0\",display:\"block\",background:\"#070d1f\"});// phones get the embed's own stacked layout, so the cell takes that ratio\nif(s.arNarrow){const wide=s.ar||\"16 / 9\",narrow=s.arNarrow;const fit=()=>{cell.style.aspectRatio=cell.clientWidth<700?narrow:wide;};new ResizeObserver(fit).observe(cell);}cell.appendChild(fr);rowEl.appendChild(cell);continue;}if(s.vimeo&&!stillOnly){// A board that animates: the loop replaces its own still, at the\n// film's exact ratio so the player never letterboxes inside the\n// cell. Under reduced motion this falls through to the still.\ncell.style.position=\"relative\";const frame=player(s.vimeo,LOOPING,\"\");frame.style.pointerEvents=\"none\";frame.setAttribute(\"aria-hidden\",\"true\");frame.setAttribute(\"tabindex\",\"-1\");if(s.url){// Hold the still until the loop is actually playing: the background\n// player is a black box for several seconds while it buffers.\nconst im=document.createElement(\"img\");im.src=s.url;im.alt=\"\";im.decoding=\"async\";Object.assign(im.style,{position:\"absolute\",inset:\"0\",width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\"});cell.appendChild(im);frame.style.opacity=\"0\";frame.style.transition=\"opacity .6s ease\";const onMsg=e=>{if(e.source!==frame.contentWindow)return;let d;try{d=typeof e.data===\"string\"?JSON.parse(e.data):e.data;}catch{return;}if(d?.event===\"ready\")frame.contentWindow?.postMessage(JSON.stringify({method:\"addEventListener\",value:\"playProgress\"}),\"*\");if(d?.event===\"playProgress\"||d?.event===\"play\"){frame.style.opacity=\"1\";window.removeEventListener(\"message\",onMsg);}};window.addEventListener(\"message\",onMsg);}cell.appendChild(frame);frames.push(frame);// same Sound chip as the top films: restarts the loop with audio, one film at a time\nif(s.sound)attachSoundChip(frame,cell,\"Runrate\");rowEl.appendChild(cell);continue;}if(s.video){// Loops are hosted as Framer file assets, not Vimeo: same CDN as the\n// stills, range requests supported, no per-video embed allowlist.\nconst v=document.createElement(\"video\");v.src=s.url||\"\";v.muted=true;v.loop=true;v.playsInline=true;v.preload=\"metadata\";v.setAttribute(\"muted\",\"\");v.setAttribute(\"playsinline\",\"\");const still=window.matchMedia&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;if(!still){v.autoplay=true;v.play().catch(()=>{});}Object.assign(v.style,{width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\"});cell.appendChild(v);rowEl.appendChild(cell);continue;}const img=document.createElement(\"img\");img.src=s.url||\"\";img.alt=\"\";img.loading=\"lazy\";img.decoding=\"async\";Object.assign(img.style,{width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\"});cell.appendChild(img);rowEl.appendChild(cell);}grid.appendChild(rowEl);}host.appendChild(grid);if(frames.length){primeVimeo();lazily(frames);}const bleed=bleedInto(host,grid,()=>{for(const r of rowEls)r.el.style.gridTemplateColumns=host.clientWidth<720?\"1fr\":\"repeat(\"+r.count+\", 1fr)\";});bleed();new ResizeObserver(bleed).observe(host);return grid;};// One sound-enabled film at a time across the whole page (top films and\n// results tiles share the tracker): starting one mutes the last.\nlet nsmSoundOpen=null;const attachSoundChip=(fr,box,label)=>{const post=(method,value)=>fr.contentWindow?.postMessage(JSON.stringify({method,value}),\"*\");const btn=document.createElement(\"button\");btn.type=\"button\";btn.setAttribute(\"aria-label\",\"Play \"+label+\" with sound\");btn.textContent=\"Sound\";Object.assign(btn.style,{position:\"absolute\",left:\"14px\",bottom:\"14px\",zIndex:\"3\",font:\"500 10px/1 'Geist', 'Geist Placeholder', sans-serif\",letterSpacing:\"0.14em\",textTransform:\"uppercase\",padding:\"9px 14px\",borderRadius:\"999px\",cursor:\"pointer\",background:\"rgba(15, 14, 12, 0.72)\",color:\"#F2EDE4\",border:\"1px solid rgba(242, 237, 228, 0.28)\"});let on=false;const off=()=>{on=false;post(\"setMuted\",true);btn.textContent=\"Sound\";btn.style.background=\"rgba(15, 14, 12, 0.72)\";btn.style.color=\"#F2EDE4\";};btn.addEventListener(\"click\",()=>{if(on){off();nsmSoundOpen=null;return;}if(nsmSoundOpen)nsmSoundOpen.off();nsmSoundOpen={off};on=true;post(\"setCurrentTime\",0);post(\"setVolume\",1);post(\"setMuted\",false);post(\"play\");btn.textContent=\"Mute\";btn.style.background=\"#C9A84C\";btn.style.color=\"#0F0E0C\";});box.style.position=\"relative\";box.appendChild(btn);};// A film you choose to watch: poster and a play button; click plays it from the start with sound,\n// click again pauses. Starting it silences any other film playing with sound.\nconst clickFilm=(src,poster,label)=>{const wrap=document.createElement(\"div\");Object.assign(wrap.style,{position:\"absolute\",inset:\"0\",cursor:\"pointer\"});const v=document.createElement(\"video\");v.src=src;if(poster)v.poster=poster;v.playsInline=true;v.preload=\"metadata\";v.setAttribute(\"playsinline\",\"\");Object.assign(v.style,{position:\"absolute\",inset:\"0\",width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\"});const btn=document.createElement(\"button\");btn.type=\"button\";btn.setAttribute(\"aria-label\",\"Play \"+label+\" with sound\");btn.innerHTML='<svg width=\"14\" height=\"14\" viewBox=\"0 0 22 22\" aria-hidden=\"true\"><path d=\"M7 4.5v13l11-6.5z\" fill=\"currentColor\"/></svg><span>Play with sound</span>';Object.assign(btn.style,{// bottom left, where the Sound chips sit across the site, so it never covers the poster\nposition:\"absolute\",left:\"14px\",bottom:\"14px\",zIndex:\"3\",display:\"flex\",alignItems:\"center\",gap:\"8px\",font:\"500 10px/1 'Geist', 'Geist Placeholder', sans-serif\",letterSpacing:\"0.14em\",textTransform:\"uppercase\",padding:\"8px 14px 8px 10px\",borderRadius:\"999px\",cursor:\"pointer\",background:\"rgba(15, 14, 12, 0.72)\",color:\"#F2EDE4\",border:\"1px solid rgba(242, 237, 228, 0.28)\",transition:\"opacity .25s ease\"});const show=on=>{btn.style.opacity=on?\"1\":\"0\";btn.style.pointerEvents=on?\"auto\":\"none\";};const off=()=>{v.pause();};const play=()=>{if(nsmSoundOpen)nsmSoundOpen.off();nsmSoundOpen={off};if(v.ended)v.currentTime=0;v.muted=false;v.volume=1;v.play().catch(()=>show(true));};v.addEventListener(\"play\",()=>show(false));v.addEventListener(\"pause\",()=>show(true));v.addEventListener(\"ended\",()=>{v.currentTime=0;show(true);});wrap.addEventListener(\"click\",()=>{if(v.paused)play();else v.pause();});wrap.appendChild(v);wrap.appendChild(btn);return wrap;};// Same chip for a Framer-hosted <video>: restarts it with audio; one film with sound at a time.\nconst attachVideoSoundChip=(v,box,label)=>{const btn=document.createElement(\"button\");btn.type=\"button\";btn.setAttribute(\"aria-label\",\"Play \"+label+\" with sound\");btn.textContent=\"Sound\";Object.assign(btn.style,{position:\"absolute\",left:\"14px\",bottom:\"14px\",zIndex:\"3\",font:\"500 10px/1 'Geist', 'Geist Placeholder', sans-serif\",letterSpacing:\"0.14em\",textTransform:\"uppercase\",padding:\"9px 14px\",borderRadius:\"999px\",cursor:\"pointer\",background:\"rgba(15, 14, 12, 0.72)\",color:\"#F2EDE4\",border:\"1px solid rgba(242, 237, 228, 0.28)\"});let on=false;const off=()=>{on=false;v.muted=true;btn.textContent=\"Sound\";btn.style.background=\"rgba(15, 14, 12, 0.72)\";btn.style.color=\"#F2EDE4\";};btn.addEventListener(\"click\",()=>{if(on){off();nsmSoundOpen=null;return;}if(nsmSoundOpen)nsmSoundOpen.off();nsmSoundOpen={off};on=true;v.currentTime=0;v.muted=false;v.volume=1;v.play().catch(()=>{});btn.textContent=\"Mute\";btn.style.background=\"#C9A84C\";btn.style.color=\"#0F0E0C\";});box.style.position=\"relative\";box.appendChild(btn);};/** slug → extra hero meta: an Objectives cell before the Discipline cell, which is relabelled */const HEAD_META={\"runrate\":{objectives:\"Category Positioning \\xb7 Brand Launch \\xb7 Product Experience\",discipline:\"Deliverables\"},\"quadrant\":{objectives:\"Category Positioning \\xb7 Brand System \\xb7 Motion Language\",discipline:\"Deliverables\"}};/** slug → films pinned full-width at the top of the case page, above every section */const TOP_FILMS={// UNIVERSE 10 iconic master — verified 1920x1920, plays with score on the chip\n\"the-universe\":[{id:\"1229815857\",label:\"The Universe — Iconic\",ar:\"1 / 1\",sound:true}],// RUNRATE_1 — verified 1920x1080 (old case, now runrate-old / draft)\n\"runrate-old\":[{id:\"1226957759\",label:\"Runrate\",ar:\"16 / 9\",sound:true}],// ITV Hub — verified 1280x720 / 1920x1080\n\"product-motion\":[{id:\"1226565587\",label:\"ITV Hub — Gala\",ar:\"16 / 9\",sound:true},{id:\"1226565586\",label:\"ITV Hub — How To\",ar:\"16 / 9\",sound:true},// ITV Hub IPP idents — icon to logo, all verified 1920x1080\n{row:[{id:\"1227089872\",label:\"ITV Hub — Download\",ar:\"16 / 9\"},{id:\"1227089963\",label:\"ITV Hub — Series So Far\",ar:\"16 / 9\"}]},{row:[{id:\"1227089918\",label:\"ITV Hub — Hub Buzz\",ar:\"16 / 9\"},{id:\"1227089921\",label:\"ITV Hub — Premiere\",ar:\"16 / 9\"}]},{row:[{id:\"1227089919\",label:\"ITV Hub — Last Chance\",ar:\"16 / 9\"},{id:\"1227089868\",label:\"ITV Hub — Catch Up\",ar:\"16 / 9\"}]},{row:[{id:\"1227089871\",label:\"ITV Hub — Boxset\",ar:\"16 / 9\"},{id:\"1227089870\",label:\"ITV Hub — First Look\",ar:\"16 / 9\"}]}]};/** slug -> stills pinned directly after the Approach section */const APPROACH_STILLS={// Runrate brand boards - newest exports, 16:10 + motion 2.25:1 (old case, now runrate-old / draft)\n\"runrate-old\":[{id:\"\",still:\"https://framerusercontent.com/images/qbdy88dnG2coOQaCKHdNjAssm4.png\",label:\"Runrate — brand board\",ar:\"16 / 10\"},{id:\"\",still:\"https://framerusercontent.com/images/pcy6dSCbsljwz0n2MwM9eUf2w.png\",label:\"Runrate — logo board\",ar:\"16 / 10\"},{id:\"\",still:\"https://framerusercontent.com/images/Nj89w1Yp1VOZGsCuV5tIQQlUKI.png\",label:\"Runrate — colour board\",ar:\"16 / 10\"},{id:\"\",still:\"https://framerusercontent.com/images/Jhb9RDKfM2tK82GGtANaCQ7i4.png\",label:\"Runrate — type board\",ar:\"16 / 10\"},{id:\"\",still:\"https://framerusercontent.com/images/ykmSYknYePI3v4808HmmPXmGDs.png\",label:\"Runrate — product board\",ar:\"16 / 10\"},{id:\"\",still:\"https://framerusercontent.com/images/MVgxdLncXaI8R3PHwEoPaXXruto.png\",label:\"Runrate — motion board\",ar:\"2880 / 1280\"}]};/**\n * The template sets each section head as a 200px label rail beside the copy, so\n * the eyebrow and the paragraph sit on two different left edges (80 and 360).\n * Stack them instead: one left edge per section, the copy keeping its measure.\n */const statementBand=(after,label,text)=>{const title=document.querySelector('section[data-framer-name=\"Project Head\"] h1');const t=title?getComputedStyle(title):null;const band=document.createElement(\"section\");band.setAttribute(\"data-nsm-statement\",\"1\");Object.assign(band.style,{padding:\"clamp(96px, 11vw, 160px) 0 0\",width:\"100%\",boxSizing:\"border-box\"});const p=document.createElement(\"p\");p.textContent=text;const ease=\"cubic-bezier(.075,.82,.165,1)\";Object.assign(p.style,{margin:\"0\",maxWidth:\"1100px\",fontFamily:t?.fontFamily||\"inherit\",fontWeight:t?.fontWeight||\"500\",textTransform:t?.textTransform||\"none\",color:t?.color||\"#F2EDE4\",letterSpacing:\"-0.01em\",fontSize:\"clamp(40px, 6vw, 84px)\",lineHeight:\"1\",textWrap:\"balance\",opacity:\"0\",transform:\"translateY(48px)\",transition:`opacity 900ms ${ease}, transform 900ms ${ease}`});band.appendChild(p);after.parentElement?.insertBefore(band,after.nextSibling);// sit on the chapter label's line, like the copy above it\nconst lab=leafWith(after,label.toLowerCase());const align=()=>{const x=lab?lab.getBoundingClientRect().left-band.getBoundingClientRect().left:40;p.style.marginLeft=`${Math.max(16,x)}px`;p.style.marginRight=`${Math.max(16,x)}px`;};align();window.addEventListener(\"resize\",align);window.addEventListener(\"load\",align);const io=new IntersectionObserver(es=>es.forEach(e=>{if(!e.isIntersecting)return;align();p.style.opacity=\"1\";p.style.transform=\"none\";io.disconnect();}),{rootMargin:\"0px 0px -8% 0px\"});io.observe(p);};const stackHead=(sec,label)=>{return;// retired 9 Sep: copy now sits on the 280px label rail, aligned with the header Discipline column\nconst leaf=leafWith(sec,label.toLowerCase());if(!leaf)return;let col=leaf;while(col.parentElement&&col.parentElement!==sec&&col.parentElement.children.length<2)col=col.parentElement;const row=col.parentElement;if(!row||row===sec||row.children.length<2)return;if(getComputedStyle(row).flexDirection===\"column\")return;row.setAttribute(\"data-nsm-head\",\"1\");row.style.flexDirection=\"column\";row.style.alignItems=\"flex-start\";row.style.gap=\"18px\";for(const child of Array.from(row.children)){child.style.flex=\"none\";child.style.width=\"100%\";if(child!==col)child.style.maxWidth=\"820px\"// keep the reading measure\n;}};/**\n * Boards bleed to the window edge and carry their own 32px caption margin, so the\n * type inside a board starts well left of the template's centred copy column — a\n * gap that widens with the viewport. Pull the section heads onto that same line.\n */const boardCopyX=()=>{let best=null;for(const img of Array.from(document.querySelectorAll(\"img\"))){const r=img.getBoundingClientRect();if(r.width<window.innerWidth*.6)continue;if(Math.abs(r.width/r.height-16/9)>.06)continue;// a 960x540 board\nif(!best||r.width>best.width)best=r;}return best?best.left+32*best.width/960:null;};const alignHeadsToBoards=results=>{return;// retired 9 Sep with stackHead: heads stay on the template rail\nconst target=boardCopyX();if(target==null||window.innerWidth<900)return;for(const row of Array.from(document.querySelectorAll(\"[data-nsm-head]\"))){// a negative margin only moves it half way: the row is centred by auto\n// margins, which rebalance. A relative offset shifts it without relayout.\nrow.style.position=\"relative\";row.style.left=\"0px\";const shift=Math.round(target-row.getBoundingClientRect().left);if(shift<-1)row.style.left=shift+\"px\";}if(results){const pad=Math.round(target-results.getBoundingClientRect().left);if(pad>0){results.style.paddingLeft=pad+\"px\";results.style.paddingRight=pad+\"px\";}}};const restructure=()=>{const slug=slugNow();// slug-scoped: client-side navigation swaps the page DOM without a full\n// load, so the restructure must run again for each project it lands on\nif(document.body.getAttribute(\"data-nsm-restructured\")===slug)return;const summary=document.querySelector('section[data-framer-name=\"Summary\"]');// on cold client-side navigations the sections stream in after this runs:\n// leave the page unstamped so the retry poller can come back for it\nif(!summary)return;document.body.setAttribute(\"data-nsm-restructured\",slug);const chapters=[];if(MEDIA_FIRST.has(slug)){const band=document.querySelector('section[data-framer-name=\"Full Bleed\"]');if(band&&summary&&summary.parentElement)summary.parentElement.insertBefore(band,summary);}if(FULL_BLEED_HIDE.has(slug)){const band=document.querySelector('section[data-framer-name=\"Full Bleed\"]');if(band)band.style.display=\"none\";}const meta=HEAD_META[slug];if(meta){// clone the Discipline cell so the new one inherits the hero's type, rules and spacing\nconst head=document.querySelector('section[data-framer-name=\"Project Head\"]');const lab=head?Array.from(head.querySelectorAll(\"p\")).find(p=>p.textContent?.trim()===\"Discipline\"):undefined;const cell=lab?.parentElement?.parentElement;const row=cell?.parentElement;if(head&&lab&&cell&&row&&!head.querySelector(\"[data-nsm-meta]\")){const obj=cell.cloneNode(true);obj.setAttribute(\"data-nsm-meta\",\"1\");const ps=obj.querySelectorAll(\"p\");if(ps.length>=2){ps[0].textContent=\"Objectives\";ps[1].textContent=meta.objectives;row.insertBefore(obj,cell);cell.setAttribute(\"data-nsm-meta\",\"2\");row.setAttribute(\"data-nsm-meta-row\",\"1\");// below desktop the extra cells stack full width under Client and their copy wraps\nif(!document.getElementById(\"nsm-meta-css\")){const st=document.createElement(\"style\");st.id=\"nsm-meta-css\";st.textContent=\"@media (max-width: 1199.98px){[data-nsm-meta]{flex:1 1 100% !important;width:100% !important;max-width:100% !important;padding-left:0 !important;margin-top:18px}[data-nsm-meta]::after,[data-nsm-meta]::before{display:none !important}[data-nsm-meta] > *{width:100% !important;max-width:100% !important}[data-nsm-meta] p{white-space:normal !important}[data-nsm-meta-row] > *::after{display:none !important}}\";document.head.appendChild(st);}}lab.textContent=meta.discipline;}}const top=TOP_FILMS[slug];if(top&&summary&&summary.parentElement&&!document.querySelector(\"[data-nsm-topfilms]\")){const wrap=document.createElement(\"div\");wrap.setAttribute(\"data-nsm-topfilms\",\"1\");Object.assign(wrap.style,{display:\"flex\",flexDirection:\"column\",gap:GUTTER+\"px\",width:\"100%\",background:\"#0F0E0C\"});const topFrames=[];const topTile=(fm,parent)=>{const box=document.createElement(\"div\");Object.assign(box.style,{position:\"relative\",width:\"100%\",aspectRatio:fm.ar||\"16 / 9\",overflow:\"hidden\",background:\"#1A1916\"});if(fm.still){const im=document.createElement(\"img\");im.src=fm.still;im.alt=fm.label;im.loading=\"lazy\";im.decoding=\"async\";Object.assign(im.style,{position:\"absolute\",inset:\"0\",width:\"100%\",height:\"100%\",objectFit:\"cover\"});box.appendChild(im);parent.appendChild(box);return;}if(fm.mp4&&fm.click){box.appendChild(clickFilm(fm.mp4,fm.poster,fm.label));parent.appendChild(box);return;}if(fm.mp4){const v=document.createElement(\"video\");v.src=fm.mp4;if(fm.poster)v.poster=fm.poster;v.muted=true;v.loop=true;v.playsInline=true;v.preload=\"auto\";v.setAttribute(\"muted\",\"\");v.setAttribute(\"playsinline\",\"\");Object.assign(v.style,{position:\"absolute\",inset:\"0\",width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\"});const still=window.matchMedia&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;if(!still){v.autoplay=true;v.play().catch(()=>{});}box.appendChild(v);if(fm.sound)attachVideoSoundChip(v,box,fm.label);parent.appendChild(box);return;}if(fm.controls){const fr=player(fm.id,\"autopause=0\",fm.label);box.appendChild(fr);parent.appendChild(box);topFrames.push(fr);return;}const fr=player(fm.id,LOOPING,fm.label);fr.style.pointerEvents=\"none\";box.appendChild(fr);if(fm.sound)attachSoundChip(fr,box,fm.label);parent.appendChild(box);topFrames.push(fr);};for(const item of top){if(\"row\"in item){// a family of similar loops sits as one grid line, small tiles\nconst rowEl=document.createElement(\"div\");const cols=document.documentElement.clientWidth<720?2:item.row.length;Object.assign(rowEl.style,{display:\"grid\",gap:GUTTER+\"px\",gridTemplateColumns:\"repeat(\"+cols+\", 1fr)\"});for(const fm of item.row)topTile(fm,rowEl);wrap.appendChild(rowEl);}else{if(item.titled){const lab=document.createElement(\"p\");lab.textContent=item.label;Object.assign(lab.style,{margin:\"40px 40px 14px\",font:\"500 11px/1 'Geist', 'Geist Placeholder', sans-serif\",letterSpacing:\"0.18em\",textTransform:\"uppercase\",color:\"#C9A84C\"});wrap.appendChild(lab);}topTile(item,wrap);}}// films sit directly under the Challenge copy; the rest follows\nsummary.parentElement.insertBefore(wrap,summary.nextSibling);primeVimeo();lazily(topFrames);}const post=APPROACH_STILLS[slug];if(post&&!document.querySelector(\"[data-nsm-post-stills]\")){const apSec=leafWith(document,\"approach\")?.closest(\"section\");if(apSec&&apSec.parentElement){const wrap=document.createElement(\"div\");wrap.setAttribute(\"data-nsm-post-stills\",\"1\");Object.assign(wrap.style,{display:\"flex\",flexDirection:\"column\",gap:GUTTER+\"px\",width:\"100%\",background:\"#0F0E0C\"});for(const fm of post){const box=document.createElement(\"div\");Object.assign(box.style,{position:\"relative\",width:\"100%\",aspectRatio:fm.ar||\"16 / 9\",overflow:\"hidden\",background:\"#1A1916\"});const im=document.createElement(\"img\");im.src=fm.still||\"\";im.alt=fm.label;im.loading=\"lazy\";im.decoding=\"async\";Object.assign(im.style,{position:\"absolute\",inset:\"0\",width:\"100%\",height:\"100%\",objectFit:\"cover\"});box.appendChild(im);wrap.appendChild(box);}apSec.parentElement.insertBefore(wrap,apSec.nextSibling);}}const hide=HIDE_CHAPTERS[slug];if(hide)for(const t of hide){const l=leafWith(document,t);const sec=l?.closest(\"section\");if(sec&&sec!==summary)sec.style.display=\"none\";}const mediaFor=INTERLUDE_MEDIA[slug]||{};if(summary){chapters.push({label:\"Challenge\",el:summary});if(mediaFor.challenge)mediaGrid(summary,mediaFor.challenge);}if(SPLIT_APPROACH.has(slug)){const label=leafWith(document,\"approach\");const section=label?.closest(\"section\");if(label&&section){const paras=Array.from(section.querySelectorAll(\"p\")).filter(p=>p!==label&&!p.contains(label)&&(p.textContent||\"\").trim().length>40);const peek=p=>{const s=p.querySelector(\"strong, b\");if(!s||s!==p.firstElementChild)return\"\";return(s.textContent||\"\").trim().replace(/[.:]$/,\"\");};const strip=p=>{const s=p.querySelector(\"strong, b\");if(!s||s!==p.firstElementChild)return;s.remove();if(p.firstChild&&p.firstChild.nodeType===3)p.firstChild.textContent=(p.firstChild.textContent||\"\").replace(/^\\s+/,\"\");};// a paragraph with no bold lead continues the part above it (Motion runs to four paragraphs)\nconst labels=paras.map(peek).map((l,i,a)=>l||a.slice(0,i).reverse().find(x=>x)||\"\");const groups=SECTION_GROUPS[slug];const order=SECTION_ORDER[slug]||[];const names=order.length?order:labels.filter((l,i)=>l&&labels.indexOf(l)===i);const buckets=names.map(name=>({name,idx:labels.map((l,i)=>[l,i]).filter(([l])=>(groups?groups[l]:l)===name).map(([,i])=>i)})).filter(b=>b.idx.length);if(buckets.length){const made=[];for(let b=buckets.length-1;b>=1;b--){const sec=section.cloneNode(true);for(const el of Array.from(sec.querySelectorAll(\"[id]\")))el.removeAttribute(\"id\");section.parentElement?.insertBefore(sec,section.nextSibling);made.unshift(sec);}const secs=[section,...made];secs.forEach((sec,b)=>{const bucket=buckets[b];const l=leafWith(sec,\"approach\");if(l)l.textContent=bucket.name;const ps=Array.from(sec.querySelectorAll(\"p\")).filter(p=>p!==l&&!p.contains(l)&&(p.textContent||\"\").trim().length>40);ps.forEach((p,j)=>{if(bucket.idx.indexOf(j)===-1){p.remove();return;}if(labels[j]===bucket.name)strip(p);});chapters.push({label:bucket.name,el:sec});const rows=mediaFor[bucket.name.toLowerCase()];if(rows&&rows.length)mediaGrid(sec,rows);});}}}const renames=HEADING_RENAMES[slug];if(renames)for(const[from,to]of Object.entries(renames)){const l=leafWith(document,from);if(l)l.textContent=to;}const results=leafWith(document,\"results\")?.closest(\"section\");const outcomeCfg=RESULTS_CHAPTER[slug];if(results&&outcomeCfg)chapters.push({label:outcomeCfg.label,el:results});const stmt=STATEMENT[slug];const stmtAfter=stmt&&chapters.find(c=>c.label===stmt.after);if(stmt&&stmtAfter&&!document.querySelector(\"[data-nsm-statement]\"))statementBand(stmtAfter.el,stmt.after,stmt.text);for(const c of chapters)stackHead(c.el,c.label);// every head, and Outcome's own gutter, onto the board copy line\nconst realign=()=>alignHeadsToBoards(results);realign();requestAnimationFrame(realign);window.addEventListener(\"load\",realign);let t;window.addEventListener(\"resize\",()=>{clearTimeout(t);t=setTimeout(realign,120);});if(CHAPTER_NAV.has(slug)&&chapters.length>2&&!document.querySelector(\"[data-nsm-nav]\")){const nav=document.createElement(\"nav\");nav.setAttribute(\"data-nsm-nav\",\"1\");nav.setAttribute(\"aria-label\",\"Chapters\");Object.assign(nav.style,{position:\"fixed\",left:\"24px\",bottom:\"22px\",zIndex:\"50\",display:\"flex\",gap:\"14px\",fontSize:\"11px\",letterSpacing:\".08em\",textTransform:\"uppercase\",fontFamily:\"inherit\",color:\"#F2EDE4\",pointerEvents:\"auto\",mixBlendMode:\"difference\"});const items=chapters.map(c=>{const a=document.createElement(\"button\");a.textContent=c.label;a.type=\"button\";Object.assign(a.style,{background:\"none\",border:\"0\",padding:\"0\",color:\"inherit\",font:\"inherit\",letterSpacing:\"inherit\",textTransform:\"inherit\",cursor:\"pointer\",opacity:\".38\",transition:\"opacity .24s\"});a.addEventListener(\"click\",()=>c.el.scrollIntoView({behavior:\"smooth\",block:\"start\"}));nav.appendChild(a);return a;});document.body.appendChild(nav);const update=()=>{nav.style.display=window.innerWidth<720?\"none\":\"flex\";const y=window.innerHeight*.45;let active=0;chapters.forEach((c,i)=>{if(c.el.getBoundingClientRect().top<=y)active=i;});items.forEach((a,i)=>{a.style.opacity=i===active?\"1\":\".38\";});};update();window.addEventListener(\"scroll\",update,{passive:true});window.addEventListener(\"resize\",update);}};const hideApproach=()=>{if(!APPROACH_HIDE.has(slugNow()))return;const HEADS=[\"challenge\",\"sequence stills\",\"cg work\",\"motion\",\"results\",\"delivery\",\"application\",\"style frames\",\"motion studies\",\"nebulas\",\"the tease\",\"title reveal\"];const all=Array.from(document.querySelectorAll(\"*\"));const headLeaves=all.filter(el=>el.children.length===0&&HEADS.includes((el.textContent||\"\").trim().toLowerCase()));const leaves=all.filter(el=>el.children.length===0&&(el.textContent||\"\").trim().toLowerCase()===\"approach\");for(const leaf of leaves){let block=leaf;while(block.parentElement&&block.parentElement!==document.body&&!headLeaves.some(h=>block.parentElement.contains(h))){block=block.parentElement;}block.style.display=\"none\";}};// Case-study pager (and any other in-page link) must respect the same gate\n// as the work grid: a not-yet-live slug is shown but not clickable.\n// KEEP IN SYNC with NOT_YET_LIVE in LoopVideo.tsx — Framer code files cannot\n// import each other, so the set is duplicated here.\nconst NOT_YET_LIVE=new Set([\"chanel-misia\"]);const gatePager=()=>{for(const a of Array.from(document.querySelectorAll(\"a[href]\"))){const slug=(a.pathname||\"\").split(\"/\").filter(Boolean).pop()||\"\";if(!NOT_YET_LIVE.has(slug))continue;const strip=()=>{if(a.hasAttribute(\"href\"))a.removeAttribute(\"href\");};strip();a.style.cursor=\"default\";const block=e=>{e.preventDefault();e.stopPropagation();};for(const t of[\"click\",\"pointerup\",\"touchend\"])a.addEventListener(t,block,true);const mo=new MutationObserver(strip);mo.observe(a,{attributes:true,attributeFilter:[\"href\"]});}};export function withResultsFilm(Component){return props=>{const ref=useRef(null);useEffect(()=>{const host=ref.current?.firstElementChild;if(!host)return;gatePager();hideApproach();restructure();// retry while the CMS-driven sections stream in (homepage -> project\n// navigations arrive with nothing prefetched); restructure self-guards\nlet rsTries=0;const rsTimer=setInterval(()=>{rsTries++;restructure();const done=document.body.getAttribute(\"data-nsm-restructured\")===slugNow();if(done||rsTries>40)clearInterval(rsTimer);},200);if(RESULTS_HIDE.has(slugNow())){host.style.display=\"none\";return;}const film=RESULTS[slugNow()];const rowsCfg=RESULTS_ROWS[slugNow()];const textOnly=!film&&!rowsCfg;if(textOnly&&!RESULTS_CHAPTER[slugNow()])return;// other projects keep their results copy alone\nconst grid=document.createElement(\"div\");Object.assign(grid.style,{display:\"grid\",gap:GUTTER+\"px\",marginTop:\"8px\"});const frames=[];const rowEls=[];const addCell=(fm,parent)=>{if(host.querySelector('iframe[data-vid=\"'+fm.id+'\"]')||grid.querySelector('iframe[data-vid=\"'+fm.id+'\"]'))return null;if(fm.titled){const lab=document.createElement(\"p\");lab.textContent=fm.label;Object.assign(lab.style,{gridColumn:\"1 / -1\",margin:\"48px 0 6px\",font:\"500 11px/1 'Geist', 'Geist Placeholder', sans-serif\",letterSpacing:\"0.18em\",textTransform:\"uppercase\",color:\"#C9A84C\"});parent.appendChild(lab);}const cell=document.createElement(\"div\");if(parent===grid)cell.style.gridColumn=\"1 / -1\";const box=stage(fm);const fr=player(fm.id,LOOPING,fm.label);fr.setAttribute(\"data-vid\",fm.id);fr.style.pointerEvents=\"none\";box.appendChild(fr);cell.appendChild(box);parent.appendChild(cell);frames.push(fr);if(fm.sound)attachSoundChip(fr,box,fm.label);return fr;};if(textOnly){}else if(rowsCfg){for(const item of rowsCfg){if(\"row\"in item){const rowEl=document.createElement(\"div\");Object.assign(rowEl.style,{gridColumn:\"1 / -1\",display:\"grid\",gap:GUTTER+\"px\",gridTemplateColumns:`repeat(${item.row.length}, 1fr)`});rowEls.push({el:rowEl,count:item.row.length});for(const fm of item.row)addCell(fm,rowEl);grid.appendChild(rowEl);}else addCell(item,grid);}}else{addCell(film,grid);}const f=frames[0]// undefined when text-only\n;// Some projects treat 08 as a chapter of its own: rename the\n// heading and carry the chapter's approach copy above the film.\nconst chapterCfg=RESULTS_CHAPTER[slugNow()];let labelLeaf=null;let labelWas=\"\";let copyEl=null;if(chapterCfg){labelLeaf=Array.from(host.querySelectorAll(\"*\")).find(el=>el.children.length===0&&(el.textContent||\"\").trim().toLowerCase()===\"results\")||null;if(labelLeaf){labelWas=labelLeaf.textContent||\"\";labelLeaf.textContent=chapterCfg.label;}if(!chapterCfg.copy){}const srcP=Array.from(document.querySelectorAll(\"p\")).find(el=>el.offsetParent!==null&&(el.textContent||\"\").trim().length>120);copyEl=chapterCfg.copy?srcP?srcP.cloneNode(false):document.createElement(\"p\"):null;if(copyEl)copyEl.textContent=chapterCfg.copy||\"\";if(copyEl)Object.assign(copyEl.style,{margin:\"8px 0 24px 0\",width:\"100%\",// the body rhythm the chapter 07 copy reads at\nfontSize:\"16px\",lineHeight:\"26.4px\"});// directly after the heading's own block, not the end of the\n// section — the gap should read like Cinemagraph Iconics\nlet block=labelLeaf;while(block&&block.parentElement&&block.parentElement!==host)block=block.parentElement;if(copyEl&&block&&block.parentElement===host)host.insertBefore(copyEl,block.nextSibling);else if(copyEl)host.appendChild(copyEl);// collapse the heading block's empty layout slots so the copy\n// sits as close under the label as it does on chapter 07\nif(block&&labelLeaf){for(const el of Array.from(block.querySelectorAll(\"*\"))){if(el===labelLeaf||el.contains(labelLeaf)||labelLeaf.contains(el))continue;if(el.textContent?.trim())continue;const bg=getComputedStyle(el).backgroundImage;if(el.querySelector(\"img, iframe, video\")||bg&&bg!==\"none\"&&bg.includes(\"url(\"))continue;el.style.display=\"none\";}block.style.gap=\"8px\";// measured: pull the copy up by whatever surplus remains\nconst tuneGap=()=>{if(!copyEl||!labelLeaf)return;const l=labelLeaf.getBoundingClientRect();const c=copyEl.getBoundingClientRect();if(!l.height||!c.height)return;const gap=c.top-l.bottom;const target=16;if(Math.abs(gap-target)<2)return;const current=parseFloat(copyEl.style.marginTop)||8;copyEl.style.marginTop=Math.min(8,current-(gap-target))+\"px\";};tuneGap();requestAnimationFrame(tuneGap);setTimeout(tuneGap,600);}}if(textOnly)return()=>{if(copyEl)copyEl.remove();if(labelLeaf)labelLeaf.textContent=labelWas;};host.appendChild(grid);const bleed=bleedInto(host,grid,()=>{for(const r of rowEls){r.el.style.gridTemplateColumns=host.clientWidth<720?\"1fr\":host.clientWidth<1e3&&r.count>2?\"repeat(2, 1fr)\":`repeat(${r.count}, 1fr)`;}});bleed();const ro=new ResizeObserver(bleed);ro.observe(host);const io=lazily(frames);return()=>{io.disconnect();ro.disconnect();grid.remove();if(copyEl)copyEl.remove();if(labelLeaf)labelLeaf.textContent=labelWas;};},[]);return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{display:\"contents\"},children:/*#__PURE__*/_jsx(Component,{...props})});};}/** Full bleed — swaps the still for a silent looping film at the same 80vh height */export function withFullBleedVideo(Component){return props=>{const ref=useRef(null);useEffect(()=>{const host=ref.current?.firstElementChild;if(!host)return;const film=FULL_BLEED[slugNow()];if(!film)return;// other projects keep their still\nif(window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches)return;const prevImage=host.style.backgroundImage;host.style.backgroundImage=\"none\";// uncropped: the band adopts the film's ratio instead of holding\n// its canvas height, so the master shows whole\nconst prevHeight=host.style.height;const prevAspect=host.style.aspectRatio;if(film.uncropped){host.style.height=\"auto\";host.style.aspectRatio=String(film.ar);}if(getComputedStyle(host).position===\"static\")host.style.position=\"relative\";const box=document.createElement(\"div\");// Framer paints the section's fill into its own child layer, so\n// clearing backgroundImage above does not remove the placeholder\n// hatch. An opaque backdrop here covers it while the film loads.\nObject.assign(box.style,{position:\"absolute\",inset:\"0\",overflow:\"hidden\",background:\"#1A1916\"});const f=player(film.id,film.sound?INTERACTIVE:LOOPING,film.sound?\"Watch film\":\"\");if(film.sound){f.style.pointerEvents=\"auto\";}else{f.style.pointerEvents=\"none\";f.setAttribute(\"aria-hidden\",\"true\");f.setAttribute(\"tabindex\",\"-1\");}// The band is a fixed height crop of the film, so cover rather than\n// letterbox: oversize whichever axis would otherwise leave bars.\n// This has to use the film's real ratio — sizing a 2:1 master as\n// 16:9 makes the player letterbox itself inside the iframe, which is\n// where the grey bars came from. The 2px is subpixel slack.\nconst fit=()=>{const w=host.clientWidth,h=host.clientHeight;if(!w||!h)return;const over=w/h>film.ar;Object.assign(f.style,{top:\"50%\",left:\"50%\",transform:\"translate(-50%, -50%)\",width:(over?w:Math.ceil(h*film.ar))+2+\"px\",height:(over?Math.ceil(w/film.ar):h)+2+\"px\"});};box.appendChild(f);host.appendChild(box);fit();const ro=new ResizeObserver(fit);ro.observe(host);// This band sits at the top of the page, so waiting for an\n// IntersectionObserver only delays the one film everybody sees first.\nprimeVimeo();const url=f.dataset.src;if(url){delete f.dataset.src;f.src=url;}return()=>{ro.disconnect();box.remove();host.style.backgroundImage=prevImage;if(film.uncropped){host.style.height=prevHeight;host.style.aspectRatio=prevAspect;}};},[]);return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{display:\"contents\"},children:/*#__PURE__*/_jsx(Component,{...props})});};}const P=9/16// long portrait\n;const SQ=1// square\n;const SCOPE=2.35// 2.35:1\n;const LAB_WALL=[[{id:\"1220293811\",ar:SCOPE,src:2.367},{id:\"1220321397\",ar:SQ,src:1.896},{id:\"1220305382\",ar:P,src:1.521}],[{id:\"1220292853\",ar:SCOPE,src:1.625}],[{id:\"1220296749\",ar:SCOPE,src:2},{id:\"1220310177\",ar:4/3,src:1}],[{id:\"1220305377\",ar:SCOPE,src:2.315},{id:\"1220293569\",ar:SQ,src:1},{id:\"1220303497\",ar:16/9,src:2}],[{id:\"1220309379\",ar:SCOPE,src:1.521}],[{id:\"1220319351\",ar:4/3,src:1},{id:\"1220296319\",ar:4/3,src:1}],[{id:\"1220307213\",ar:SCOPE,src:2.033},{id:\"1220310303\",ar:P,src:1},{id:\"1220289692\",ar:1.8,src:1.8}],[// WAVE_TERRAIN family: 03 native square (verified 2048x2048) beside 04's scope cut\n{id:\"1220289650\",ar:SQ,src:1},{id:\"1220289649\",ar:SCOPE,src:.889}],[{id:\"1220293542\",ar:16/9,src:2},{id:\"1220292098\",ar:SCOPE,src:1.625}],[{id:\"1220295865\",ar:SQ,src:.889},{id:\"1220306072\",ar:1.775,src:1.775},{id:\"1220291245\",ar:SCOPE,src:2.029}],[{id:\"1220306494\",ar:SCOPE,src:1.775},{id:\"1220301411\",ar:16/9,src:2.393}],[{id:\"1220321232\",ar:SQ,src:1.896},{id:\"1220310064\",ar:SQ,src:1},{id:\"1220320775\",ar:16/9,src:2.4}],[{id:\"1220300213\",ar:2,src:2},{id:\"1220309718\",ar:4/3,src:1}],[{id:\"1220294217\",ar:SQ,src:1},{id:\"1220300481\",ar:SCOPE,src:2.16}]];/** Lab — a shuffled wall of studio loops on the site gutter */export function withLabWall(Component){return props=>{const ref=useRef(null);useEffect(()=>{const host=ref.current?.firstElementChild;if(!host)return;if(host.querySelector(\"[data-nsm-lab-wall]\"))return;const wall=document.createElement(\"div\");wall.setAttribute(\"data-nsm-lab-wall\",\"1\");Object.assign(wall.style,{display:\"flex\",flexDirection:\"column\",gap:GUTTER+\"px\",width:\"100%\"});const frames=[];const rows=[];LAB_WALL.forEach((row,ri)=>{const rowEl=document.createElement(\"div\");Object.assign(rowEl.style,{display:\"flex\",gap:GUTTER+\"px\",width:\"100%\"});const cells=[];for(const t of row){const cell=document.createElement(\"div\");Object.assign(cell.style,{position:\"relative\",overflow:\"hidden\",background:\"#1A1916\",flex:\"0 0 auto\"});const f=player(t.id,LOOPING,\"\");f.style.pointerEvents=\"none\";f.setAttribute(\"aria-hidden\",\"true\");f.setAttribute(\"tabindex\",\"-1\");cell.appendChild(f);frames.push(f);rowEl.appendChild(cell);cells.push({el:cell,f,ar:t.ar,src:t.src});}rows.push({el:rowEl,cells});wall.appendChild(rowEl);});// Size the player to cover its box: oversize whichever axis would\n// otherwise leave bars, using the film's real ratio. 2px is slack.\nconst fit=c=>{const w=c.el.clientWidth,h=c.el.clientHeight;if(!w||!h)return;const over=w/h>c.src;Object.assign(c.f.style,{top:\"50%\",left:\"50%\",transform:\"translate(-50%, -50%)\",width:(over?w:Math.ceil(h*c.src))+2+\"px\",height:(over?Math.ceil(w/c.src):h)+2+\"px\"});};// one across on narrow screens — the wall stacks, still seamless\n// Every tile is sized in pixels here, from the row's measured width:\n// one shared height per row, widths in proportion to ratio, the last\n// tile absorbing the rounding so the row fills exactly. Nothing is\n// left to aspect-ratio or flex maths — Safari resolved both to zero\n// and drew an empty wall.\nconst layout=()=>{const narrow=host.clientWidth<720;for(const r of rows){r.el.style.flexDirection=narrow?\"column\":\"row\";const n=r.cells.length;const rowW=r.el.clientWidth||wall.clientWidth||host.clientWidth;if(!rowW)continue;if(narrow){for(const c of r.cells){c.el.style.flex=\"0 0 auto\";c.el.style.width=rowW+\"px\";c.el.style.height=Math.round(rowW/c.ar)+\"px\";}}else{const sum=r.cells.reduce((k,c)=>k+c.ar,0);const avail=rowW-GUTTER*(n-1);const h=Math.round(avail/sum);let used=0;r.cells.forEach((c,i)=>{const last=i===n-1;const w=last?avail-used:Math.round(h*c.ar);used+=w;c.el.style.flex=\"0 0 auto\";c.el.style.width=w+\"px\";c.el.style.height=h+\"px\";});}}for(const r of rows)for(const c of r.cells)fit(c);};// bleed past the page padding to the viewport edge\nconst bleed=()=>{const pad=parseFloat(getComputedStyle(host).paddingLeft)||0;wall.style.marginLeft=-pad+\"px\";wall.style.marginRight=-pad+\"px\";wall.style.width=\"calc(100% + \"+pad*2+\"px)\";};host.appendChild(wall);bleed();layout();const ro=new ResizeObserver(()=>{bleed();layout();});ro.observe(host);primeVimeo();const io=lazily(frames);// Belt and braces for engines where the observer never fires under\n// the smooth-scroll layer: anything within two screens of the\n// viewport is loaded anyway, on a timer and again on scroll.\nconst loadNear=()=>{const limit=(window.innerHeight||800)*2;for(const f of frames){const url=f.dataset.src;if(!url)continue;const r=f.getBoundingClientRect();if(r.bottom>-limit&&r.top<limit){delete f.dataset.src;enqueueVimeo(()=>{f.src=url;});}}};const t1=window.setTimeout(loadNear,1200);const t2=window.setTimeout(layout,300)// a second pass once fonts/layout settle\n;window.addEventListener(\"scroll\",loadNear,{passive:true});return()=>{clearTimeout(t1);clearTimeout(t2);window.removeEventListener(\"scroll\",loadNear);ro.disconnect();io.disconnect();wall.remove();};},[]);return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{display:\"contents\"},children:/*#__PURE__*/_jsx(Component,{...props})});};}\nexport const __FramerMetadata__ = {\"exports\":{\"withLabWall\":{\"type\":\"reactHoc\",\"name\":\"withLabWall\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withResultsFilm\":{\"type\":\"reactHoc\",\"name\":\"withResultsFilm\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withFullBleedVideo\":{\"type\":\"reactHoc\",\"name\":\"withFullBleedVideo\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withVideoGrid\":{\"type\":\"reactHoc\",\"name\":\"withVideoGrid\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./VideoGrid.map"],"mappings":"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"}