{"version":3,"file":"NorthwindStack.BCZ2kC15.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/m3wjQcCxMhfRzlTov5cG/IOZ5nVPHI5ydlFt7qhe4/NorthwindStack.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";const AOS=[\"https://framerusercontent.com/assets/tHQOsJEUBmqD3WJxgeVvT2BmOY.webp\",\"https://framerusercontent.com/assets/LO12KJlFqea4DYqI60dryvFeX0k.webp\",\"https://framerusercontent.com/assets/rFbGWHC0e6oAhXbI8ukoJxzpU.webp\",\"https://framerusercontent.com/assets/Lfkc1W7sPDLmnpwNXN3xQb1vGpQ.webp\",\"https://framerusercontent.com/assets/gOYEixtwSVP0Pzl1asEDJJpStI.webp\",\"https://framerusercontent.com/assets/k03hcCCDxRTGPauY6b8CyhxtKs.webp\",\"https://framerusercontent.com/assets/uDzRCz5mgAiRY1tVysJNl6CMqkA.webp\",\"https://framerusercontent.com/assets/XT4ARTBr0BjZN8npq9xmFoRwO2E.webp\",\"https://framerusercontent.com/assets/2TY1YuHMCHtoDQv9JXC52MWQo.webp\",\"https://framerusercontent.com/assets/fKZeRG8hwlxF3LtDkGKnUXQe84.webp\",\"https://framerusercontent.com/assets/VrSGLiMcMteIZubZp5zGuKVzRI4.webp\",\"https://framerusercontent.com/assets/cHim3OZ4nIHmafSUz7aCMLWkeOo.webp\",\"https://framerusercontent.com/assets/3J65R0b2UShbRoMsGRTfIJuIqg.webp\",\"https://framerusercontent.com/assets/LCCYFIqmry2qQ85r3tWCea3JN9k.webp\",\"https://framerusercontent.com/assets/Cg04GSmh0jCCI3nRrYcTIyiw.webp\",\"https://framerusercontent.com/assets/rWGdgIEh2AWDyQdAk01pS2zk4sM.webp\",\"https://framerusercontent.com/assets/3WoTHDho9el5lsvSRrqdT77Vh4.webp\",\"https://framerusercontent.com/assets/fZnlTLCp6WhaQf2oOmt2tIbtRS8.webp\",\"https://framerusercontent.com/assets/xbnqtmThvBo69vTY6lYi03ydTRo.webp\",\"https://framerusercontent.com/assets/ifj16fHq3KtAidjaPrJP9hwwaRY.webp\",\"https://framerusercontent.com/assets/oECgthCHgcMW136g43OqpfNBrek.webp\",\"https://framerusercontent.com/assets/RLDYQ0TCgfca9cueBvjfHDnzXPc.webp\",\"https://framerusercontent.com/assets/vg8XEx968LXptSG7Yz6re2lTY.webp\",\"https://framerusercontent.com/assets/ycsF8kYy5SNWlcrkNG9XAvtWEO8.webp\",\"https://framerusercontent.com/assets/qPWaxtOWs1fgPyszieuiaWeJ2k.webp\",\"https://framerusercontent.com/assets/tTs1jqShsMKYWIMsLV8tnhfpu1s.webp\",\"https://framerusercontent.com/assets/LCsDCd24b3vfM74vGNkYErHbsBU.webp\",\"https://framerusercontent.com/assets/laM8YQd9T3WLztuPI3xWDmKqcw.webp\",\"https://framerusercontent.com/assets/BeeX15a5MqM2jco2sEw5DhVCQw.webp\",\"https://framerusercontent.com/assets/Bb6zL7rYQi29fQZCCeUei5hww.webp\",\"https://framerusercontent.com/assets/u2uqGsw4RDJMBJqqGeUNPu4NVY.webp\",\"https://framerusercontent.com/assets/CsHoitkgDobGAmuvznjYm4Sz7oY.webp\",\"https://framerusercontent.com/assets/E0Nqe2ygXmJwrbpS5XiyzJOLw.webp\",\"https://framerusercontent.com/assets/kB5E2CJjWYhsQTCUxOhOE6aZ5b8.webp\",\"https://framerusercontent.com/assets/6JEXLspzT3hrfYf26roqe6hVBU.webp\",\"https://framerusercontent.com/assets/i1lNMPJSPXLmIflC0HyyRpXgR5g.webp\",\"https://framerusercontent.com/assets/28AVOYBi5BQplkRqxYYg7ez4g.webp\",\"https://framerusercontent.com/assets/IUw1vfc6XwAPwtN0rueHPAyvKRs.webp\",\"https://framerusercontent.com/assets/O7hphTI5KLC36C56ZOeGRYD8E.webp\",\"https://framerusercontent.com/assets/RWiaM5fcsneZstHmBaSXeN5ebw.webp\",\"https://framerusercontent.com/assets/JDsnpvwd9lApu0PtCSZMSIZ86u8.webp\",\"https://framerusercontent.com/assets/TNlBcscrNf2nRYZLpcNVczn9tmk.webp\",\"https://framerusercontent.com/assets/X0d4Sfn81YwSf7PzU4r7EgwNu1k.webp\",\"https://framerusercontent.com/assets/RGcxeOPxTqG503q5PWe5XuDhw.webp\",\"https://framerusercontent.com/assets/b87Hpakuy18o7ZLZDkvb48yQBZY.webp\",\"https://framerusercontent.com/assets/BURlSofLwcot3xsEr2vWMp0jg.webp\",\"https://framerusercontent.com/assets/f1zV1Zge2JkBZD5vt4hf1p2nX1o.webp\",\"https://framerusercontent.com/assets/45QA70JLIbXakKKEPbdgJZwalws.webp\",\"https://framerusercontent.com/assets/18LVyov586ZxhDNJ3MBZ6uDyolk.webp\",\"https://framerusercontent.com/assets/9YQSTbPV0TcPhOxi5lGXU00WXao.webp\",\"https://framerusercontent.com/assets/2TScSc3unBmNS2hKWcDPGbWG5DY.webp\",\"https://framerusercontent.com/assets/MpEuPLQLXxeMBzRTUpJl0UvD8c.webp\",\"https://framerusercontent.com/assets/mw1a2vvazxWhQ9JLKHLlFCt0xxA.webp\",\"https://framerusercontent.com/assets/bFYGC3asDTX7jTVxvx96l4nQJvw.webp\",\"https://framerusercontent.com/assets/8PK1Zv0zjzpknMHCgALIQjMKGU4.webp\",\"https://framerusercontent.com/assets/CsHmqXa5007UT1N65hWUpalbBFE.webp\",\"https://framerusercontent.com/assets/HA2hul2M2wKZODaQDReMfnYyd8.webp\",\"https://framerusercontent.com/assets/017sDVTtxuvfKp6HqN96qT7o.webp\",\"https://framerusercontent.com/assets/mcMaLIBrJrYVr7n7jRq9GLomEz0.webp\",\"https://framerusercontent.com/assets/PThLS5dWqw6YLKNupr8veY6liP4.webp\",\"https://framerusercontent.com/assets/6IMmTThT4yY3D5ACXnuf9vw30.webp\",\"https://framerusercontent.com/assets/MaAlHd15FVe6XHxrRIHLOh2FBsA.webp\",\"https://framerusercontent.com/assets/qTi2sNKWdAWXqGHSdFT34TxSMc.webp\",\"https://framerusercontent.com/assets/nMYvmpuHzWw9x1kD34WJ1a6R4.webp\",\"https://framerusercontent.com/assets/4w1ROWZEpYFixcgOYgBYKlC5dY0.webp\",\"https://framerusercontent.com/assets/EYDPrDhs4tlzKZRmJBoG5W78.webp\",\"https://framerusercontent.com/assets/tmxW3rXKJZKx3iD5rb2IOarvvf0.webp\",\"https://framerusercontent.com/assets/Fl5nVuvI6eUhsUTyekPPKA1E44.webp\",\"https://framerusercontent.com/assets/laXZE7k83inCA0M1TblKCt2pfU.webp\",\"https://framerusercontent.com/assets/w5u8LNC4AzPvlqzxqUpwzvcFo.webp\",\"https://framerusercontent.com/assets/HC1eBa0Q0EeH84v6705MBPzmz0.webp\",\"https://framerusercontent.com/assets/Nlt6JjZjOJiweSS6g32xxiYDupo.webp\",\"https://framerusercontent.com/assets/veF68vcqr4EMzLgtX3XkOxfes.webp\",\"https://framerusercontent.com/assets/kMqlkGLY9xNWShjBwKSOWZV1kaM.webp\",\"https://framerusercontent.com/assets/P95frGqZc49IUNKEzjljWEp4w.webp\",\"https://framerusercontent.com/assets/ROD0Zs3QS5oEk88FAu4yebcKXMs.webp\",\"https://framerusercontent.com/assets/KSNpCjkJlypKNyjDwf0yq4PhYMQ.webp\",\"https://framerusercontent.com/assets/SuVEc91m8dlS3UC5y3m6U5ZjJDU.webp\",\"https://framerusercontent.com/assets/J4pHKdSrfqooOXflz5gmwDeF1I.webp\",\"https://framerusercontent.com/assets/lthG9NJSVyzG8t57J0NsQFQaTp8.webp\"];const SM=[\"https://framerusercontent.com/assets/rDU1yX25SvNZ5Idf9EFyERa0wxI.webp\",\"https://framerusercontent.com/assets/TwRcJAmoFgP7fT5CIUXRYNJ6iRI.webp\",\"https://framerusercontent.com/assets/spjVWtjw9vO6jKY1sl4TRpbgVU.webp\",\"https://framerusercontent.com/assets/eWzS3DYieqcJIBNbVj0PpWmuI2s.webp\",\"https://framerusercontent.com/assets/xHIUn72TQCcs49sPvtRRPw4HEk.webp\",\"https://framerusercontent.com/assets/OaQJA9er6m1zamauFBLUZTJRtJI.webp\",\"https://framerusercontent.com/assets/qSChBVNtcpQBmX4rYt6k83frTCQ.webp\",\"https://framerusercontent.com/assets/4RB04VJkKYGuNU6etLM2X3N4o.webp\",\"https://framerusercontent.com/assets/bMS2A2dm23vOHlbToK7N11J8.webp\",\"https://framerusercontent.com/assets/9VgCGshL6KyixKt3yCGuAFcobc.webp\",\"https://framerusercontent.com/assets/azojGEgY5Wvp1Dzgo22gUXYQyog.webp\",\"https://framerusercontent.com/assets/Dwky80l4k1Fxy1PklFupRUNlDI.webp\",\"https://framerusercontent.com/assets/0CBZsqeLZ175gIKNK18ukzvs.webp\",\"https://framerusercontent.com/assets/Ab1BW4XMrgdyqxAy8Io2rjGDw.webp\",\"https://framerusercontent.com/assets/z0pn0USHe4IQIcsjw8IVB3wT9Q4.webp\",\"https://framerusercontent.com/assets/1pTQ15HYdIbe5LuMAUXz4d58sOE.webp\",\"https://framerusercontent.com/assets/i3APDzOoD3tGPUD0QYuTj2VT8v8.webp\",\"https://framerusercontent.com/assets/11UxmXwwVsuFvYXKUF1nk6Gdngo.webp\",\"https://framerusercontent.com/assets/YMWDl35HoazQnkZYviRducXys5Q.webp\",\"https://framerusercontent.com/assets/uHBzELgwab1ECrShwcPKQq9gSEg.webp\",\"https://framerusercontent.com/assets/EeshIjz7YbHWkCamNqANlweY1c.webp\",\"https://framerusercontent.com/assets/8gtgPidpoSZtHalR2Tfwg31C4.webp\",\"https://framerusercontent.com/assets/HCDXnRIZnoKZ06Dj8xvxVP5C5OI.webp\",\"https://framerusercontent.com/assets/zyJLmhFGdHTciUbYmcIX9IAfQ0.webp\",\"https://framerusercontent.com/assets/Wre4mTWjvp1gsWi2FjNfjWurfVo.webp\",\"https://framerusercontent.com/assets/gVOucNTbJxPdOQOBPscKQ3tOecY.webp\",\"https://framerusercontent.com/assets/l0w7CSDSdyhgn6UNOxncbpOaMdY.webp\",\"https://framerusercontent.com/assets/a7c3zjpkSUgAW2NfumnCq27414.webp\",\"https://framerusercontent.com/assets/YOCWlJkHYVIGy5e2iWmB7WMYFek.webp\",\"https://framerusercontent.com/assets/oCChnMTExPGyiGd1pYuhXTOxjrY.webp\",\"https://framerusercontent.com/assets/LLB7kZh8MGyYK1CDWShVw4lFRA.webp\",\"https://framerusercontent.com/assets/F7484fZP56usJVYZgBcEDpzf2Y.webp\",\"https://framerusercontent.com/assets/iL7yCfqqiZZVqaOILSplP8JmGZ4.webp\",\"https://framerusercontent.com/assets/JRQp91wOfwovp5X4lIr6ertY3Ow.webp\",\"https://framerusercontent.com/assets/EsWQ2tLZ4BCT2ir7fGj9eH7aas.webp\",\"https://framerusercontent.com/assets/ITXTk2GlBiksBrHLymLJaat28.webp\",\"https://framerusercontent.com/assets/s2SHuR4kBG8u7HKGIWqBuLcw.webp\",\"https://framerusercontent.com/assets/h92tEW84HYn9efgwTFlT7JaiK8.webp\",\"https://framerusercontent.com/assets/BOqHCYgK8zytUAghhsV3xQnG03s.webp\",\"https://framerusercontent.com/assets/bZ2E5CSUdRNo1lKwVACtBXYqNE.webp\",\"https://framerusercontent.com/assets/FKl7bGohlou4MyXO7YfwuOgFiOU.webp\",\"https://framerusercontent.com/assets/9bNocb4XsHFa0Gd7e9zTOCvoaiQ.webp\",\"https://framerusercontent.com/assets/AVDXrqNld4bX2gyU9SJok1Omc.webp\",\"https://framerusercontent.com/assets/FJWUZq8HdwOXRXLHNGzI3lFe860.webp\",\"https://framerusercontent.com/assets/fogcM5vwVHVXedVALtaLFvvYBg.webp\",\"https://framerusercontent.com/assets/VnMpoMabUVe5Yj5zwXc6kAzEyk.webp\",\"https://framerusercontent.com/assets/k4WESRsXSFUr0o1CvjhQa36bzBw.webp\",\"https://framerusercontent.com/assets/6rnDUCyqBGktKHXLbRy5PEAkfdk.webp\",\"https://framerusercontent.com/assets/8Ps5dnn80hRKg61GMiXC7RQMKv8.webp\",\"https://framerusercontent.com/assets/gR1EHnjMtHfvcnPZ1TXAYNhmY.webp\",\"https://framerusercontent.com/assets/9F2AZ3VLDDrvjPDteWDcajUl1DE.webp\",\"https://framerusercontent.com/assets/qaeC3wSWfWVf8VyZSoUtDmMqrk.webp\",\"https://framerusercontent.com/assets/p3r5XQm6XniJ7gNAzClVMqfun8.webp\",\"https://framerusercontent.com/assets/J31EVgig9jQY6B1tAoGZWfFpt0.webp\",\"https://framerusercontent.com/assets/xFVXCODjnVTYvPHXXzTJadba6c.webp\",\"https://framerusercontent.com/assets/IAA2zrso351LWiTK14xW5VtxY.webp\",\"https://framerusercontent.com/assets/vf9l63WUkxhX87ycFCroDz2476A.webp\",\"https://framerusercontent.com/assets/a3WSE8LDf3kabLlStUucUzFyyY.webp\",\"https://framerusercontent.com/assets/Wm9zMz08QPahOLHrrcDVbBHiuc.webp\",\"https://framerusercontent.com/assets/C7ApVSn3oil4bNrKug1uGsKjq0.webp\",\"https://framerusercontent.com/assets/qmCsy5AeKkI3rxY92lmVfE1KAA.webp\",\"https://framerusercontent.com/assets/MXhwykrTAeah4H8kahOOQWi9Bs8.webp\",\"https://framerusercontent.com/assets/T2g8NvBdbWJcvRBAeutlFB1fH74.webp\",\"https://framerusercontent.com/assets/PUihIduA07PQPGx2oSthAkaw8n4.webp\",\"https://framerusercontent.com/assets/VcMCbZQxpSD4WRGKU3d8EZ8e6Cs.webp\",\"https://framerusercontent.com/assets/fpw17M7somzqvuXtPw2zmH5Gbw.webp\",\"https://framerusercontent.com/assets/cqfCYN4uwTnJMu0TC0icVs0rz8.webp\",\"https://framerusercontent.com/assets/iodYpMvYnMkS3IPOgbSNlBkfww.webp\",\"https://framerusercontent.com/assets/bxK0D2O4aGTIat17qHPe4HGFh8.webp\",\"https://framerusercontent.com/assets/oEGfP730JXVfNVaFaXolINBGeg.webp\",\"https://framerusercontent.com/assets/5tWKpKY9D7bzEtNT4WU8pGPernU.webp\",\"https://framerusercontent.com/assets/dWlMnnEg7FT9DeaetI3FjIg97U.webp\",\"https://framerusercontent.com/assets/CcpxN2NCQGAaHqB0YG4C6ZsY.webp\",\"https://framerusercontent.com/assets/JYyaWXLJJI9OkxggzHzZeS2BHls.webp\",\"https://framerusercontent.com/assets/gABojuroj9zgdoTgS5YUhrg40.webp\",\"https://framerusercontent.com/assets/vibo4n5CxaDIRHl2iwPY5B3A.webp\",\"https://framerusercontent.com/assets/UG6dbcEL3DFUnHviyMRzJnThGk.webp\",\"https://framerusercontent.com/assets/kF2M79JCKjTeLHT3djieC4kcIKg.webp\",\"https://framerusercontent.com/assets/nqJJyg32RVQJIj9aM6DH18M.webp\",\"https://framerusercontent.com/assets/aWJGt912cQGOaRlukEUrhQ9MI.webp\"];const PLATES_URL=\"https://framerusercontent.com/assets/ADQPfYUijGxHq51lCwVaIOBQTxk.json\";const DEFAULT_LAYERS=[{name:\"Data & integrations\",description:\"Connect every source in minutes, with lineage on every field.\",startFrame:1},{name:\"Knowledge\",description:\"Your documents indexed, grounded and always current.\",startFrame:15},{name:\"Models\",description:\"The right model for each task, swappable without rework.\",startFrame:27},{name:\"Agents\",description:\"Agents that use your tools, follow your rules and ask when unsure.\",startFrame:37},{name:\"Apps & interfaces\",description:\"Assistants, copilots and APIs, shipped where your teams already work.\",startFrame:49},{name:\"Security & governance\",description:\"Access controls, audit trails and SSO, built into every layer.\",startFrame:61}];/* ---------- plate label warp (homography, drawn as triangles) ---------- */function homography(q){const[x0,y0]=q[0],[x1,y1]=q[1],[x2,y2]=q[2],[x3,y3]=q[3];const dx1=x1-x2,dx2=x3-x2,dy1=y1-y2,dy2=y3-y2;const sx=x0-x1+x2-x3,sy=y0-y1+y2-y3;const den=dx1*dy2-dx2*dy1;const g=(sx*dy2-dx2*sy)/den,h=(dx1*sy-sx*dy1)/den;const a=x1-x0+g*x1,b=x3-x0+h*x3,d=y1-y0+g*y1,e=y3-y0+h*y3;return(u,v)=>{const w=g*u+h*v+1;return[(a*u+b*v+x0)/w,(d*u+e*v+y0)/w];};}function tri(ctx,img,s0,s1,s2,d0,d1,d2){const[u0,v0]=s0,[u1,v1]=s1,[u2,v2]=s2,[x0,y0]=d0,[x1,y1]=d1,[x2,y2]=d2;const den=(u1-u0)*(v2-v0)-(u2-u0)*(v1-v0);if(!den)return;const a=((x1-x0)*(v2-v0)-(x2-x0)*(v1-v0))/den;const b=((x2-x0)*(u1-u0)-(x1-x0)*(u2-u0))/den;const c=((y1-y0)*(v2-v0)-(y2-y0)*(v1-v0))/den;const d=((y2-y0)*(u1-u0)-(y1-y0)*(u2-u0))/den;ctx.save();ctx.beginPath();ctx.moveTo(x0,y0);ctx.lineTo(x1,y1);ctx.lineTo(x2,y2);ctx.closePath();ctx.clip();ctx.transform(a,c,b,d,x0-a*u0-b*v0,y0-c*u0-d*v0);ctx.drawImage(img,0,0);ctx.restore();}function warp(ctx,img,quad,alpha){const map=homography(quad),NX=10,NY=3,W=img.width,H=img.height;ctx.save();ctx.globalAlpha=alpha;for(let i=0;i<NX;i++)for(let j=0;j<NY;j++){const u0=i/NX,u1=(i+1)/NX,v0=j/NY,v1=(j+1)/NY;const p00=map(u0,v0),p10=map(u1,v0),p11=map(u1,v1),p01=map(u0,v1);tri(ctx,img,[u0*W,v0*H],[u1*W+.5,v0*H],[u1*W+.5,v1*H+.5],p00,p10,p11);tri(ctx,img,[u0*W,v0*H],[u1*W+.5,v1*H+.5],[u0*W,v1*H+.5],p00,p11,p01);}ctx.restore();}/**\r\n * Northwind Stack\r\n *\r\n * @framerIntrinsicWidth 1200\r\n * @framerIntrinsicHeight 900\r\n *\r\n * @framerSupportedLayoutWidth fixed\r\n * @framerSupportedLayoutHeight auto\r\n */export default function NorthwindStack(props){const{eyebrow,headingLine1,headingLine2,subline,layers=DEFAULT_LAYERS,desktopFrames,phoneFrames,plates,startFrame,scrollLength,showPlateLabels,phoneBreakpoint,background,textColor,mutedColor,pillColor,activeColor,plateTextColor,fontFamily,style}=props;const deskList=desktopFrames&&desktopFrames.length?desktopFrames:AOS;const phoneList=phoneFrames&&phoneFrames.length?phoneFrames:SM;const platesUrl=plates||PLATES_URL;const isStatic=useIsStaticRenderer()||RenderTarget.current()===RenderTarget.canvas// editor canvas: light static preview\n;const rootRef=useRef(null);const canvasRef=useRef(null);const[active,setActive]=useState(0);const[narrow,setNarrow]=useState(false);const narrowRef=useRef(false);useEffect(()=>{const root=rootRef.current;if(!root||typeof ResizeObserver===\"undefined\")return;const check=()=>{const n=root.clientWidth>0&&root.clientWidth<phoneBreakpoint;narrowRef.current=n;setNarrow(n);};check();const ro=new ResizeObserver(check);ro.observe(root);return()=>ro.disconnect();},[phoneBreakpoint]);useEffect(()=>{if(typeof window===\"undefined\")return;const root=rootRef.current;const cv=canvasRef.current;if(!root||!cv)return;const ctx=cv.getContext(\"2d\");if(!ctx)return;const RM=window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;const frames=narrowRef.current||window.innerWidth<phoneBreakpoint?phoneList:deskList;const N=frames.length;const START=Math.min(N-1,Math.max(0,startFrame));const imgs=new Array(N);let data=null;let dead=false;const tiles=new Map;const textTile=(text,aspect,size,weight=500,color=plateTextColor)=>{const key=text+aspect+size;const hit=tiles.get(key);if(hit)return hit;const H=128,W=Math.round(H*aspect);const c=document.createElement(\"canvas\");c.width=W;c.height=H;const g=c.getContext(\"2d\");if(!g)return c;let fs=Math.round(H*size);g.font=`${weight} ${fs}px ${fontFamily}`;g.textAlign=\"center\";g.textBaseline=\"middle\";const mw=g.measureText(text).width;if(mw>W*.86){fs=Math.floor(fs*W*.86/mw);g.font=`${weight} ${fs}px ${fontFamily}`;}g.fillStyle=color;g.fillText(text,W/2,H/2);tiles.set(key,c);return c;};const drawLabels=(k,x,y,w,h)=>{if(!data||!showPlateLabels)return;const fr=data.frames[Math.min(data.frames.length-1,2*k+1)];if(!fr)return;const sx=w/data.w,sy=h/data.h;const T=q=>q.map(([px,py])=>[x+px*sx,y+py*sy]);const vis=fr.plates.filter(p=>p.visible).sort((a,b)=>a.id-b.id);vis.forEach((p,n)=>{const name=p.id<=4?layers[p.id]?.name:undefined;if(!name)return;const a=p.gapAbove==null?1:Math.max(0,Math.min(1,(p.gapAbove-.05)/.2));if(a<.02)return;const tile=textTile(name,3/.62,.5);const q=T(p.label);const covers=vis.slice(n+1).map(o=>T(o.face));const cx=q.reduce((s,pt)=>s+pt[0],0)/q.length,cy=q.reduce((s,pt)=>s+pt[1],0)/q.length;const inside=poly=>{let r=false;for(let i=0,j=poly.length-1;i<poly.length;j=i++){const[xi,yi]=poly[i],[xj,yj]=poly[j];if(yi>cy!==yj>cy&&cx<(xj-xi)*(cy-yi)/(yj-yi)+xi)r=!r;}return r;};if(covers.some(inside))return;// label under another plate: hide it entirely\nif(!covers.length){warp(ctx,tile,q,a);return;}const path=()=>{const P=new Path2D;covers.forEach(c=>{P.moveTo(c[0][0],c[0][1]);c.slice(1).forEach(pt=>P.lineTo(pt[0],pt[1]));P.closePath();});return P;};ctx.save();const out=new Path2D;out.rect(-1e4,-1e4,2e4,2e4);out.addPath(path());ctx.clip(out,\"evenodd\");warp(ctx,tile,q,a);ctx.restore();ctx.save();ctx.clip(path());ctx.filter=\"blur(1.5px)\";warp(ctx,tile,q,a*.16);ctx.restore();});const top=layers[5]?.name;if(fr.logoSlot&&top)warp(ctx,textTile(top,1.9/.72,.42,600,\"#18181B\"),T(fr.logoSlot),1);};let shown=START,target=START,curF=-1;const draw=force=>{const f=Math.max(0,Math.min(N-1,Math.round(shown)));if(!force&&f===curF)return;let k=f;let im=imgs[k];while(k>0&&!(im&&im.complete&&im.naturalWidth))im=imgs[--k];if(!im||!im.complete||!im.naturalWidth)return;curF=f;const cw=cv.width,ch=cv.height;const r=Math.min(cw/im.naturalWidth,ch/im.naturalHeight)*.9// keep the whole stack (and its bottom plates) inside the canvas\n;const w=im.naturalWidth*r,h=im.naturalHeight*r,x=(cw-w)/2,y=(ch-h)/2-ch*.03;ctx.clearRect(0,0,cw,ch);ctx.drawImage(im,x,y,w,h);// the render crops the lowest plate mid-sequence: fade the bottom of the frame into the background instead of a hard edge\nctx.save();ctx.globalCompositeOperation=\"destination-out\"// erase only inside the fade strip\n;const fade=ctx.createLinearGradient(0,y+h*.86,0,y+h*.995);fade.addColorStop(0,\"rgba(0,0,0,0)\");fade.addColorStop(1,\"rgba(0,0,0,1)\");ctx.fillStyle=fade;ctx.fillRect(x,y+h*.86,w,h*.14+2);ctx.restore();drawLabels(f,x,y,w,h);};const loadOne=i=>{if(imgs[i]||!frames[i])return;const im=new Image;im.crossOrigin=\"anonymous\";im.decoding=\"async\";im.onload=()=>{if(!dead&&i===Math.round(shown))draw(true);};im.src=frames[i];imgs[i]=im;};let started=false;const loadAll=()=>{if(started)return;started=true;loadOne(START);for(let i=0;i<N;i++)loadOne(i);};if(showPlateLabels&&platesUrl){fetch(platesUrl).then(r=>r.ok?r.json():null).then(d=>{if(dead)return;data=d;draw(true);}).catch(()=>{});}const size=()=>{const dpr=Math.min(2,window.devicePixelRatio||1);cv.width=Math.max(1,cv.clientWidth*dpr);cv.height=Math.max(1,cv.clientHeight*dpr);draw(true);};let lastActive=-1;let inView=false;const update=()=>{const r=root.getBoundingClientRect();const total=root.offsetHeight-window.innerHeight;const p=total>0?Math.min(1,Math.max(0,-r.top/total)):0;inView=r.top<window.innerHeight&&r.bottom>0;if(r.top<window.innerHeight*2)loadAll();target=RM?N-1:START+p*(N-1-START);const fr=Math.round(target);let a=0;layers.forEach((l,i)=>{if(fr+1>=l.startFrame)a=i;});if(a!==lastActive){lastActive=a;setActive(a);}};let raf=0;const loop=()=>{if(dead)return;if(inView){shown+=(target-shown)*(RM?1:.16);draw(false);}raf=requestAnimationFrame(loop);};size();if(isStatic){loadOne(START);}else{update();window.addEventListener(\"scroll\",update,{passive:true});raf=requestAnimationFrame(loop);}window.addEventListener(\"resize\",size);return()=>{dead=true;cancelAnimationFrame(raf);window.removeEventListener(\"scroll\",update);window.removeEventListener(\"resize\",size);};},[isStatic,deskList,phoneList,platesUrl,startFrame,showPlateLabels,layers,plateTextColor,fontFamily,phoneBreakpoint,narrow]);const goTo=i=>{const root=rootRef.current;if(!root||typeof window===\"undefined\")return;const N=(narrow?phoneList:deskList).length;const START=Math.min(N-1,Math.max(0,startFrame));const total=root.offsetHeight-window.innerHeight;const top=root.getBoundingClientRect().top+window.scrollY;const f=Math.max(0,((layers[i]?.startFrame??0)+4-START)/(N-1-START));window.scrollTo({top:top+total*Math.min(1,f),behavior:\"smooth\"});};const heightVh=isStatic?100:Math.max(120,scrollLength);return /*#__PURE__*/_jsx(\"div\",{ref:rootRef,style:{...style,position:\"relative\",width:\"100%\",height:`${heightVh}vh`,background,fontFamily},children:/*#__PURE__*/_jsxs(\"div\",{style:{position:isStatic?\"relative\":\"sticky\",top:0,height:\"100vh\",overflow:\"hidden\",background,color:textColor},children:[/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",left:narrow?\"50%\":\"63%\",top:narrow?\"68%\":\"84%\",width:narrow?\"70%\":\"40%\",height:\"8%\",transform:\"translate(-50%,-50%)\",borderRadius:\"50%\",pointerEvents:\"none\",background:\"radial-gradient(closest-side, rgba(24,24,27,.14), rgba(24,24,27,0))\",filter:\"blur(10px)\"}}),/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,role:\"img\",\"aria-label\":`${headingLine1} ${headingLine2}`,style:{position:\"absolute\",left:narrow?0:\"34%\",top:narrow?\"32%\":\"9%\",width:narrow?\"100%\":\"58%\",height:narrow?\"38%\":\"80%\",pointerEvents:\"none\"}}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",left:narrow?16:48,right:narrow?16:undefined,top:narrow?84:120,width:narrow?\"auto\":420,zIndex:3},children:[/*#__PURE__*/_jsx(\"p\",{style:{margin:0,fontSize:13,color:mutedColor,letterSpacing:\"-0.01em\"},children:eyebrow}),/*#__PURE__*/_jsxs(\"h2\",{style:{margin:\"12px 0 0\",fontSize:narrow?40:\"clamp(40px, 4.2vw, 62px)\",lineHeight:1,letterSpacing:\"-0.045em\",fontWeight:600,color:textColor},children:[headingLine1,/*#__PURE__*/_jsx(\"br\",{}),headingLine2]}),/*#__PURE__*/_jsx(\"p\",{style:{margin:\"16px 0 0\",color:mutedColor,fontSize:narrow?15:16,lineHeight:1.5,maxWidth:340},children:subline})]}),/*#__PURE__*/_jsx(\"ol\",{\"aria-label\":\"Platform layers\",style:{position:\"absolute\",left:narrow?16:48,right:narrow?16:undefined,top:narrow?undefined:360,bottom:narrow?22:undefined,width:narrow?\"auto\":440,zIndex:3,listStyle:\"none\",margin:0,padding:0,display:\"flex\",flexDirection:\"column\",alignItems:\"flex-start\",gap:narrow?0:10},children:layers.map((l,i)=>{const on=i===active;if(narrow&&!on)return null;return /*#__PURE__*/_jsxs(\"li\",{style:{maxWidth:\"100%\",width:on?\"100%\":undefined,borderRadius:on?12:20,background:on?activeColor:pillColor,color:\"#fff\",transition:\"background .35s cubic-bezier(.22,1,.36,1), border-radius .35s cubic-bezier(.22,1,.36,1)\"},children:[/*#__PURE__*/_jsxs(\"button\",{type:\"button\",\"aria-expanded\":on,onClick:()=>goTo(i),style:{display:\"inline-flex\",alignItems:\"center\",gap:10,height:on?\"auto\":40,padding:on?\"16px 21px 6px\":\"0 10px 0 17px\",border:0,background:\"none\",color:on?\"rgba(255,255,255,.78)\":\"inherit\",font:`${on?500:600} ${on?14:15}px/1 ${fontFamily}`,letterSpacing:\"-0.01em\",cursor:on?\"default\":\"pointer\",whiteSpace:\"nowrap\"},children:[/*#__PURE__*/_jsx(\"span\",{children:l.name}),on?null:/*#__PURE__*/_jsx(\"i\",{style:{width:20,height:20,borderRadius:\"50%\",background:\"rgba(255,255,255,.28)\",display:\"grid\",placeItems:\"center\",fontStyle:\"normal\",fontSize:13,lineHeight:1},children:\"+\"})]}),on?/*#__PURE__*/_jsx(\"p\",{style:{margin:0,padding:\"0 21px 18px\",fontSize:16,fontWeight:500,lineHeight:1.5,color:\"#fff\"},children:l.description}):null]},i);})})]})});}addPropertyControls(NorthwindStack,{eyebrow:{type:ControlType.String,title:\"Eyebrow\",defaultValue:\"The platform\"},headingLine1:{type:ControlType.String,title:\"Heading line 1\",defaultValue:\"Six layers.\"},headingLine2:{type:ControlType.String,title:\"Heading line 2\",defaultValue:\"One platform.\"},subline:{type:ControlType.String,title:\"Subline\",displayTextArea:true,defaultValue:\"Everything an AI product needs, built to work together.\"},layers:{type:ControlType.Array,title:\"Layers\",maxCount:6,description:\"Layers 1–5 are written onto the glass plates, layer 6 on the top plate.\",control:{type:ControlType.Object,controls:{name:{type:ControlType.String,title:\"Name\",defaultValue:\"Layer\"},description:{type:ControlType.String,title:\"Description\",displayTextArea:true,defaultValue:\"\"},startFrame:{type:ControlType.Number,title:\"From frame\",min:1,max:80,step:1,defaultValue:1}}},defaultValue:DEFAULT_LAYERS},desktopFrames:{type:ControlType.Array,title:\"Frames\",control:{type:ControlType.File,allowedFileTypes:[\"webp\",\"jpg\",\"jpeg\",\"png\"]},maxCount:160},phoneFrames:{type:ControlType.Array,title:\"Frames (phone)\",control:{type:ControlType.File,allowedFileTypes:[\"webp\",\"jpg\",\"jpeg\",\"png\"]},maxCount:160},plates:{type:ControlType.File,title:\"Plate data\",allowedFileTypes:[\"json\"]},startFrame:{type:ControlType.Number,title:\"Start frame\",min:0,max:79,step:1,defaultValue:12},scrollLength:{type:ControlType.Number,title:\"Scroll length\",unit:\"vh\",min:150,max:600,step:10,defaultValue:300},showPlateLabels:{type:ControlType.Boolean,title:\"Plate labels\",defaultValue:true},phoneBreakpoint:{type:ControlType.Number,title:\"Phone below\",unit:\"px\",min:400,max:1200,step:1,defaultValue:810},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"#F4F4F2\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#18181B\"},mutedColor:{type:ControlType.Color,title:\"Muted text\",defaultValue:\"rgba(24, 24, 27, 0.6)\"},pillColor:{type:ControlType.Color,title:\"Pill\",defaultValue:\"#8F8F95\"},activeColor:{type:ControlType.Color,title:\"Active card\",defaultValue:\"#7A7A80\"},plateTextColor:{type:ControlType.Color,title:\"Plate text\",defaultValue:\"rgba(24, 24, 27, 0.5)\"},fontFamily:{type:ControlType.String,title:\"Font\",defaultValue:'\"Inter Tight\", \"Inter\", sans-serif'}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"NorthwindStack\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicHeight\":\"900\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicWidth\":\"1200\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NorthwindStack.map"],"mappings":"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"}