{"version":3,"file":"PlanTimeline.DCMDlI-J.mjs","names":["useMemo","useState","useRef","useLayoutEffect","useEffect","__esmMin","pe","init_npm_react_18_3_1","init_ssg_sandbox_shims","window","le","_e","p","init_jsx_runtime","ce","de","init_framer_BL70qLPA","addPropertyControls","RenderTarget","ControlType","init_CollectionData","collectionData","init_Postmark","Postmark","fontVars","o","f","fam","family","quoteFamily","weight","fstyle","parseJson","src","fallback","v","resolveStop","s","raw","when","title","line","image","alt","cut","findProduct","view","im","url","usedView","CUTOUT_URLS","fit","postmark","PlanTimeline","props","target","onCanvas","ink","tok","paper","accent","dF","displayFont","bF","bodyFont","stopsParsed","DEFAULT_STOPS","notesParsed","DEFAULT_NOTES","stops","notesFor","m","n","k","t","mode","setMode","modeRef","rootRef","pinRef","stageRef","scrollerRef","trackRef","fillRef","hintRef","plateRefs","G","useIsoLayout","root","pin","stage","scroller","track","fill","w","mqPin","mqReduce","reveal","el","revealAll","raf","frame","r","vh","scrollable","c01","x","limit","onScroll","rowRaf","hinted","rowFrame","max","onRowScroll","io","watchPlates","entries","en","measureRaf","measure","overflow","pinNow","cols","c","screens","next","onResize","onMq","ro","rootStyle","style","cls","badJson","heading","CSS","showHeading","notes","i","showCta","ctaLabel","ctaHref","IMG","ALT","DATA","PRODUCTS","init_PlanTimeline","id"],"sources":["https:/framerusercontent.com/modules/CnHjPLWf8wO9sA4vAQIe/cvHWu4W108q7njGoGrqj/PlanTimeline.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useLayoutEffect,useMemo,useRef,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{collectionData}from\"https://framerusercontent.com/modules/QHbN9mgizdqFBjkkPFKz/Vz0RsHFqjwf6llUCZ3Ek/CollectionData.js\";import Postmark from\"https://framerusercontent.com/modules/A498U5OkYaxzQgNiITiB/nRrrINXP7Vx0H4ukWoN2/Postmark.js\";/**\n * DejaTen planning timeline (round 4, 31 Oct 2026): \"Planning your invitations\" as a horizontal\n * timeline in which the real pieces appear at each milestone.\n *\n * Each stop is a 300 px column: a hairline rule, the \"when\" in small lining caps, the title in\n * the display face, one line in the body face, and a 1:1 image plate (Linen tint, 16 px radius)\n * holding the piece. Product cut-outs sit centred with 8 percent padding; the studio scenes fill\n * the plate. The Postmark component sits on the posting stops. Notes are 14 px Umber-on-Linen\n * chips under the text of the stop they follow, 16 px clear of the plate.\n *\n * Desktop (viewport 1000 px and up, fine pointer, motion allowed, and the track wider than the\n * component): a tall wrapper holds a sticky stage, so the pin lives entirely inside this\n * component's own height. While pinned, the track glides left with scroll and each plate rises\n * 16 px and fades in as its column crosses 60 percent of the viewport. A progress hairline along\n * the top of the stage fills with scroll. The pin length scales with how far the track has to\n * travel (about 2.6 screens for seven stops at 1440 by 900).\n *\n * Tablet, phone, coarse pointers and reduced motion: no pin; a horizontal swipe row with\n * scroll-snap, 84 percent columns on phones and 44 percent on tablets, a \"swipe\" hint that fades\n * after the first scroll, and the progress hairline following the row. Reduced motion shows\n * every plate at once.\n *\n * The canvas and exports render the swipe row itself at every width (stops side by side, no pin,\n * every plate eager and opaque). The track is a grid with subgrid columns, so the rule, \"when\",\n * title, line, notes and plate rows share one height across every stop and the plates line up.\n * Transforms and opacity only; geometry is measured once per resize.\n *\n * Stops JSON: [{ when, title, line, image?, alt?, product?, view?, fit?, postmark? }]. `product`\n * is a CollectionData id (\"18\"), `view` \"closed\" (default) or \"open\"; it fills `image` and `alt`\n * from the data when they are empty. `fit` is \"contain\" or \"cover\" (default: contain for a\n * cut-out, cover otherwise). `postmark` is true, false or the arc text (default: on when the\n * title starts with \"Post\", using \"when · title\").\n * Notes JSON: [{ afterStop, text }] with afterStop 1-based.\n *\n * @framerDisableUnlink\n * @framerIntrinsicWidth 1200\n * @framerIntrinsicHeight 640\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */const useIsoLayout=typeof window!==\"undefined\"?useLayoutEffect:useEffect;const tok=v=>v&&typeof v===\"object\"&&\"value\"in v?v.value:v;const quoteFamily=f=>/[,\"']/.test(f)?f:`\"${f}\"`;function fontVars(f,family,weight,fstyle){const o=f&&typeof f===\"object\"?f:{};const fam=typeof o.fontFamily===\"string\"&&o.fontFamily?o.fontFamily:family;return{family:`${quoteFamily(fam)}, ${quoteFamily(family)}, Georgia, serif`,weight:o.fontWeight||weight,style:o.fontStyle||fstyle};}const c01=v=>v<0?0:v>1?1:v;// ---------- images ----------\n// The landed round 4 scenes (uploaded 31 Oct 2026). AI concepts, never presented as photography.\nconst IMG={save:\"https://framerusercontent.com/images/XXE9Hls9ryt7FB4iQypQqzxngY.webp\",proof:\"https://framerusercontent.com/images/9suwBbg97gz64UkR4fVRBndk4TM.webp\",print:\"https://framerusercontent.com/images/7obf3uh9A0hgNb371WLho8VwjI.webp\",post:\"https://framerusercontent.com/images/OM9TUBczPY8AzM0CtrODcW53Q.webp\",dayof:\"https://framerusercontent.com/images/4cWHOGHefWae6pDiKLSYBOd8G5w.webp\"};const ALT={save:\"Lilac floral save the date card on its cream envelope with a sprig of wax flower\",proof:\"An open ivory booklet invitation beside a proof sheet, a pencil and a blank tag on the studio bench\",print:\"A stack of freshly printed burgundy pocketfold invitations with a gold foil roll and seal stamp in our studio\",post:\"Hands sliding a teal gatefold invitation into its cream envelope beside a stack ready to post\",dayof:\"Gold foil monogram card with a matching menu and place card on a wedding table\"};const DATA=collectionData&&typeof collectionData===\"object\"?collectionData:{};const PRODUCTS=Array.isArray(DATA.products)?DATA.products:[];const CUTOUT_URLS=new Set;for(const p of PRODUCTS){const im=p&&p.images?p.images:{};const cut=p&&p.cutout?p.cutout:{};if(im.closed&&cut.closed)CUTOUT_URLS.add(im.closed);if(im.open&&cut.open)CUTOUT_URLS.add(im.open);}const findProduct=id=>PRODUCTS.find(p=>String(p.id)===String(id).padStart(2,\"0\")||String(p.id)===String(id))||null;// ---------- defaults: the Indian page's seven stops (copy/geo.md 04-planning) ----------\nconst DEFAULT_STOPS=[{when:\"12+ months\",title:\"Save the dates\",line:\"Share the date with family at home and overseas.\",image:IMG.save,alt:ALT.save},{when:\"8 to 12 months\",title:\"Design session\",line:\"Bring your families to a free session in our studio.\",product:\"18\"},{when:\"6 to 8 months\",title:\"Design and proofs\",line:\"Wording, language and a card for each event, proofed.\",image:IMG.proof,alt:ALT.proof},{when:\"4 months\",title:\"Approve and print\",line:\"You approve every card, then we print in-house.\",image:IMG.print,alt:ALT.print},{when:\"10 weeks\",title:\"Post in Australia\",line:\"Send the full set so guests know which events are theirs.\",product:\"22\"},{when:\"12+ weeks\",title:\"Post overseas\",line:\"Allow extra weeks for relatives in India, Sri Lanka and beyond.\",image:IMG.post,alt:ALT.post},{when:\"The day\",title:\"Matching menus and signs\",line:\"Programmes, menus and signs to match your cards.\",image:IMG.dayof,alt:ALT.dayof}];const DEFAULT_NOTES=[{afterStop:1,text:\"Count households first and add extras for keepsakes.\"},{afterStop:5,text:\"The cards for each event can be posted together or in the order of the days.\"}];function parseJson(src,fallback){if(typeof src!==\"string\"||!src.trim())return{list:fallback,error:false};try{const v=JSON.parse(src);return Array.isArray(v)?{list:v,error:false}:{list:[],error:true};}catch(e){return{list:[],error:true};}}function resolveStop(raw){const s=raw&&typeof raw===\"object\"?raw:{};const when=String(s.when||\"\");const title=String(s.title||\"\");const line=String(s.line||\"\");let image=typeof s.image===\"string\"?s.image.trim():\"\";let alt=typeof s.alt===\"string\"?s.alt:\"\";let cut=false;if(s.product!=null&&s.product!==\"\"){const p=findProduct(s.product);if(p){const view=s.view===\"open\"?\"open\":\"closed\";const im=p.images||{};const url=im[view]||im.closed||im.open||\"\";const usedView=im[view]?view:im.closed?\"closed\":\"open\";if(!image&&url){image=url;cut=!!(p.cutout&&p.cutout[usedView]);}if(!alt)alt=p.name||\"\";}}if(image&&CUTOUT_URLS.has(image))cut=true;const fit=s.fit===\"cover\"||s.fit===\"contain\"?s.fit:cut?\"contain\":\"cover\";let postmark=\"\";if(typeof s.postmark===\"string\")postmark=s.postmark;else if(s.postmark===true||s.postmark!==false&&/^post\\b/i.test(title))postmark=[when,title].filter(Boolean).join(\" \\xb7 \");return{when,title,line,image,alt,fit,postmark};}// ---------- component ----------\nexport default function PlanTimeline(props){const{heading=\"Planning your invitations\",showHeading=true,ctaLabel=\"Get the price guide\",ctaHref=\"https://dejaten.com.au/?book=indian-wedding-cards&mode=guide\",showCta=true,displayFont,bodyFont,style}=props;const target=RenderTarget.current();const onCanvas=target===RenderTarget.canvas||target===RenderTarget.export||target===RenderTarget.thumbnail;const ink=tok(props.ink)||\"#2B1E19\";const paper=tok(props.paper)||\"#F4EFE2\";const accent=tok(props.accent)||\"#4B3621\";const dF=fontVars(displayFont,\"Italiana\",400,\"normal\");const bF=fontVars(bodyFont,\"Cormorant Garamond\",400,\"normal\");const stopsParsed=useMemo(()=>parseJson(props.stops,DEFAULT_STOPS),[props.stops]);const notesParsed=useMemo(()=>parseJson(props.notes,DEFAULT_NOTES),[props.notes]);const stops=useMemo(()=>stopsParsed.list.map(resolveStop),[stopsParsed]);const notesFor=useMemo(()=>{const m={};for(const n of notesParsed.list){if(!n||typeof n!==\"object\")continue;const k=Number(n.afterStop);const t=String(n.text||\"\").trim();if(!k||!t)continue;(m[k]=m[k]||[]).push(t);}return m;},[notesParsed]);const[mode,setMode]=useState(\"swipe\");const modeRef=useRef(\"swipe\");modeRef.current=mode;const rootRef=useRef(null);const pinRef=useRef(null);const stageRef=useRef(null);const scrollerRef=useRef(null);const trackRef=useRef(null);const fillRef=useRef(null);const hintRef=useRef(null);const plateRefs=useRef([]);const G=useRef({overflow:0,lefts:[],left:0,vw:0,vh:0,reduced:false}).current;useIsoLayout(()=>{if(onCanvas)return;const root=rootRef.current;const pin=pinRef.current;const stage=stageRef.current;const scroller=scrollerRef.current;const track=trackRef.current;const fill=fillRef.current;if(!root||!pin||!stage||!scroller||!track||!fill)return;const w=window;const mqPin=w.matchMedia(\"(min-width: 1000px) and (min-height: 740px) and (pointer: fine)\");const mqReduce=w.matchMedia(\"(prefers-reduced-motion: reduce)\");root.classList.add(\"is-live\");const reveal=k=>{const el=plateRefs.current[k];if(el&&!el.classList.contains(\"is-in\"))el.classList.add(\"is-in\");};const revealAll=()=>plateRefs.current.forEach((_,k)=>reveal(k));// One frame of the pinned stage: track position, progress fill, plate reveals.\nlet raf=0;const frame=()=>{raf=0;if(modeRef.current!==\"pin\")return;const r=pin.getBoundingClientRect();const vh=G.vh||w.innerHeight;if(r.bottom<-vh||r.top>vh*2)return;const scrollable=Math.max(1,r.height-stage.offsetHeight);const p=c01(-r.top/scrollable);const x=-p*G.overflow;track.style.transform=`translate3d(${x}px,0,0)`;fill.style.transform=`scaleX(${p})`;if(r.top<vh*.75){const limit=(G.vw||w.innerWidth)*.6;for(let k=0;k<G.lefts.length;k++){if(G.left+G.lefts[k]+x<limit)reveal(k);}}};const onScroll=()=>{if(!raf)raf=w.requestAnimationFrame(frame);};// The swipe row: progress follows the row, the hint fades on the first scroll.\nlet rowRaf=0;let hinted=false;const rowFrame=()=>{rowRaf=0;if(modeRef.current!==\"swipe\")return;const max=Math.max(1,scroller.scrollWidth-scroller.clientWidth);fill.style.transform=`scaleX(${c01(scroller.scrollLeft/max)})`;if(!hinted&&scroller.scrollLeft>8){hinted=true;if(hintRef.current)hintRef.current.classList.add(\"is-hidden\");}};const onRowScroll=()=>{if(!rowRaf)rowRaf=w.requestAnimationFrame(rowFrame);};// Plates reveal as they scroll into view in the swipe row (every plate at once under reduced motion).\nlet io=null;const watchPlates=()=>{if(io)io.disconnect();io=null;if(G.reduced||modeRef.current===\"pin\")return;if(typeof IntersectionObserver===\"undefined\"){revealAll();return;}io=new IntersectionObserver(entries=>{entries.forEach(en=>{if(!en.isIntersecting)return;const k=Number(en.target.dataset.k);reveal(k);io&&io.unobserve(en.target);});},{threshold:.3});plateRefs.current.forEach(el=>el&&!el.classList.contains(\"is-in\")&&io&&io.observe(el));};// Measure once per resize: decide the mode, cache the geometry, size the pin.\nlet measureRaf=0;const measure=()=>{measureRaf=0;G.reduced=mqReduce.matches;if(G.reduced)root.classList.add(\"is-static\");else root.classList.remove(\"is-static\");G.vw=w.innerWidth;G.vh=w.innerHeight;const overflow=track.scrollWidth-scroller.clientWidth;const pinNow=mqPin.matches&&!G.reduced&&overflow>40;G.overflow=Math.max(0,overflow);const cols=Array.from(track.children);G.lefts=cols.map(c=>c.offsetLeft);G.left=stage.getBoundingClientRect().left;if(pinNow){const screens=1+Math.min(1.6,Math.max(.4,G.overflow/G.vh*1.4));pin.style.height=`${Math.round(screens*100)}vh`;}else{pin.style.height=\"\";track.style.transform=\"\";}const next=pinNow?\"pin\":\"swipe\";if(modeRef.current!==next){modeRef.current=next;setMode(next);}if(G.reduced)revealAll();if(next===\"pin\")frame();else{rowFrame();watchPlates();}};const onResize=()=>{if(!measureRaf)measureRaf=w.requestAnimationFrame(measure);};measure();w.addEventListener(\"scroll\",onScroll,{passive:true});w.addEventListener(\"resize\",onResize);scroller.addEventListener(\"scroll\",onRowScroll,{passive:true});const onMq=()=>onResize();mqPin.addEventListener?mqPin.addEventListener(\"change\",onMq):mqPin.addListener(onMq);mqReduce.addEventListener?mqReduce.addEventListener(\"change\",onMq):mqReduce.addListener(onMq);let ro=null;if(typeof ResizeObserver!==\"undefined\"){ro=new ResizeObserver(onResize);ro.observe(root);}return()=>{w.removeEventListener(\"scroll\",onScroll);w.removeEventListener(\"resize\",onResize);scroller.removeEventListener(\"scroll\",onRowScroll);mqPin.removeEventListener?mqPin.removeEventListener(\"change\",onMq):mqPin.removeListener(onMq);mqReduce.removeEventListener?mqReduce.removeEventListener(\"change\",onMq):mqReduce.removeListener(onMq);if(ro)ro.disconnect();if(io)io.disconnect();if(raf)w.cancelAnimationFrame(raf);if(rowRaf)w.cancelAnimationFrame(rowRaf);if(measureRaf)w.cancelAnimationFrame(measureRaf);};},[onCanvas,stops.length]);const rootStyle={...style,\"--pt-ink\":ink,\"--pt-paper\":paper,\"--pt-accent\":accent,\"--pt-display\":dF.family,\"--pt-display-w\":dF.weight,\"--pt-body\":bF.family,\"--pt-body-w\":bF.weight,\"--pt-body-s\":bF.style};const cls=\"pt\"+(mode===\"pin\"?\" is-pin\":\"\")+(onCanvas?\" is-canvas is-static\":\"\");const badJson=onCanvas&&(stopsParsed.error||notesParsed.error);return /*#__PURE__*/_jsxs(\"section\",{ref:rootRef,className:cls,style:rootStyle,\"aria-label\":heading,children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS}}),/*#__PURE__*/_jsx(\"div\",{className:\"pt-pin\",ref:pinRef,children:/*#__PURE__*/_jsxs(\"div\",{className:\"pt-stage\",ref:stageRef,children:[/*#__PURE__*/_jsx(\"div\",{className:\"pt-progress\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"span\",{className:\"pt-progress-fill\",ref:fillRef})}),/*#__PURE__*/_jsxs(\"div\",{className:\"pt-head\",children:[showHeading&&/*#__PURE__*/_jsx(\"h2\",{className:\"pt-heading\",children:heading}),/*#__PURE__*/_jsxs(\"span\",{className:\"pt-hint\",ref:hintRef,\"aria-hidden\":\"true\",children:[\"Swipe\",/*#__PURE__*/_jsx(\"svg\",{width:\"18\",height:\"10\",viewBox:\"0 0 18 10\",fill:\"none\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M1 5h15M12 1l4 4-4 4\",stroke:\"currentColor\",strokeWidth:\"1.3\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})})]})]}),badJson&&/*#__PURE__*/_jsx(\"p\",{className:\"pt-warn\",children:\"PlanTimeline: the stops or notes JSON does not parse. Check the quotes and commas.\"}),/*#__PURE__*/_jsx(\"div\",{className:\"pt-scroller\",ref:scrollerRef,tabIndex:0,role:\"region\",\"aria-label\":heading||\"Planning timeline\",children:/*#__PURE__*/_jsx(\"ol\",{className:\"pt-track\",ref:trackRef,children:stops.map((s,k)=>{const notes=notesFor[k+1]||[];return /*#__PURE__*/_jsxs(\"li\",{className:\"pt-stop\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"pt-rule\",\"aria-hidden\":\"true\"}),/*#__PURE__*/_jsx(\"span\",{className:\"pt-when\",children:s.when}),/*#__PURE__*/_jsx(\"h3\",{className:\"pt-title\",children:s.title}),/*#__PURE__*/_jsx(\"p\",{className:\"pt-line\",children:s.line}),/*#__PURE__*/_jsx(\"div\",{className:\"pt-notes\",children:notes.map((t,i)=>/*#__PURE__*/_jsx(\"p\",{className:\"pt-note\",children:t},i))}),/*#__PURE__*/_jsxs(\"figure\",{className:\"pt-plate is-\"+s.fit,\"data-k\":k,ref:el=>{plateRefs.current[k]=el;},children:[s.image&&/*#__PURE__*/_jsx(\"img\",{src:s.image,alt:s.alt,loading:\"eager\",decoding:\"async\",draggable:\"false\"}),s.postmark&&/*#__PURE__*/_jsx(\"span\",{className:\"pt-postmark\",children:/*#__PURE__*/_jsx(Postmark,{text:s.postmark,size:72,ink:ink,opacity:.72,rotate:-8})})]})]},k);})})}),showCta&&ctaLabel&&/*#__PURE__*/_jsx(\"div\",{className:\"pt-cta-row\",children:/*#__PURE__*/_jsxs(\"a\",{className:\"pt-cta\",href:ctaHref||\"#\",children:[ctaLabel,/*#__PURE__*/_jsx(\"svg\",{className:\"pt-cta-arrow\",width:\"16\",height:\"12\",viewBox:\"0 0 16 12\",fill:\"none\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M1 6h13M10 1.5L14.5 6 10 10.5\",stroke:\"currentColor\",strokeWidth:\"1.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})})]})})]})})]});}PlanTimeline.displayName=\"PlanTimeline\";// picks2 (10 Nov 2026): the notes are Cocoa Lift #5C4733, 5.6:1 on their #E4CBB2 chip. Umber (#75604C) and Chocolate (#845A4A) both measure 3.8:1 there, under AA's 4.5.\nconst CSS=`\n.pt{\n  --pt-linen:rgba(228,203,178,.35);\n  --pt-linen-full:#E4CBB2;\n  --pt-umber:#75604C;\n  --pt-hair:rgba(43,30,25,.14);\n  --pt-ease-out:cubic-bezier(.23,1,.32,1);\n  --pt-col:300px;\n  --pt-gap:40px;\n  position:relative;width:100%;background:var(--pt-paper);color:var(--pt-ink);\n  font-family:var(--pt-body);font-weight:var(--pt-body-w);font-style:var(--pt-body-s);\n  -webkit-font-smoothing:antialiased;container-type:inline-size;\n}\n.pt,.pt *{box-sizing:border-box}\n.pt-heading,.pt-title,.pt-line,.pt-note,.pt-warn,.pt-track,.pt-plate,.pt-notes{margin:0;padding:0}\n.pt-track{list-style:none}\n.pt-pin{position:relative}\n.pt-stage{position:relative;padding:40px 0 8px}\n.pt-progress{position:absolute;left:0;right:0;top:0;height:1px;background:var(--pt-hair)}\n.pt-progress-fill{position:absolute;inset:0;background:var(--pt-accent);transform:scaleX(0);transform-origin:0 50%;will-change:transform}\n.pt-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}\n/* Heading 2 as the project text style: 58 px desktop, 48 px at 1200, 38 px at 810 and below, line-height 1.1. */\n.pt-heading{font-family:var(--pt-display);font-weight:var(--pt-display-w);font-size:58px;line-height:1.1;letter-spacing:0;color:var(--pt-ink);text-wrap:balance}\n.pt-hint{display:inline-flex;align-items:center;gap:8px;flex:none;margin-left:auto;padding-bottom:6px;font-family:var(--pt-body);font-weight:600;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--pt-umber);opacity:1;transition:opacity .3s ease}\n.pt-hint.is-hidden{opacity:0}\n.pt.is-pin .pt-hint{display:none}\n.pt-warn{margin-top:16px;font-size:14px;color:#7B2D35}\n.pt-scroller{margin-top:36px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;padding-bottom:6px}\n.pt-scroller::-webkit-scrollbar{display:none}\n/* One grid for the whole track: six rows shared by every stop (subgrid), so the plates line up. */\n.pt-track{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:var(--pt-col);grid-template-rows:auto auto auto auto auto auto;column-gap:var(--pt-gap);align-items:start;width:max-content;min-width:100%}\n.pt-stop{position:relative;width:var(--pt-col);scroll-snap-align:start;display:grid;grid-row:1 / -1;grid-template-rows:subgrid;align-content:start;justify-items:start}\n.pt-rule{grid-row:1}.pt-when{grid-row:2}.pt-title{grid-row:3}.pt-line{grid-row:4}.pt-notes{grid-row:5}.pt-plate{grid-row:6}\n.pt-rule{display:block;width:100%;height:1px;background:var(--pt-hair);margin-bottom:14px;justify-self:stretch}\n.pt-when{font-family:var(--pt-body);font-weight:600;font-style:normal;font-size:13px;letter-spacing:.08em;text-transform:uppercase;line-height:1;color:var(--pt-umber);font-variant-numeric:lining-nums tabular-nums}\n.pt-title{font-family:var(--pt-display);font-weight:var(--pt-display-w);font-style:normal;font-size:26px;line-height:1.15;letter-spacing:.005em;color:var(--pt-ink);margin-top:10px;min-height:2.3em;text-wrap:balance}\n.pt-line{font-size:15px;line-height:1.45;color:var(--pt-ink);opacity:.86;margin-top:8px;max-width:30ch;text-wrap:pretty}\n.pt-line:empty{margin:0}\n.pt-plate{position:relative;width:100%;justify-self:stretch;aspect-ratio:1/1;margin-top:16px;border-radius:16px;background:var(--pt-linen);overflow:hidden;isolation:isolate;will-change:transform,opacity}\n.pt-plate img{position:absolute;inset:0;width:100%;height:100%;display:block;user-select:none;-webkit-user-drag:none}\n.pt-plate.is-cover img{object-fit:cover}\n.pt-plate.is-contain img{inset:8%;width:84%;height:84%;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(43,30,25,.16))}\n.pt-postmark{position:absolute;right:12px;bottom:12px;width:72px;height:72px;display:block;pointer-events:none;z-index:2}\n.pt-postmark > *{width:72px !important;height:72px !important}\n/* Notes: 14 px Umber-on-Linen call-out chips under the text, 16 px clear of the plate. */\n.pt-notes{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:14px;max-width:100%}\n.pt-notes:empty{margin:0}\n.pt .pt-note{display:inline-block;padding:10px 14px;border-radius:8px;background:var(--pt-linen-full);color:#5C4733;font-family:var(--pt-body);font-weight:600;font-style:normal;font-size:14px;letter-spacing:.01em;line-height:1.35;max-width:100%;text-wrap:pretty}\n/* Reveal: hidden only once the script is live, so a page without JS still shows every plate. */\n.pt.is-live .pt-plate{opacity:0;transform:translate3d(0,16px,0);transition:opacity .6s var(--pt-ease-out),transform .6s var(--pt-ease-out)}\n.pt.is-live .pt-plate.is-in,.pt.is-static .pt-plate{opacity:1;transform:none}\n.pt.is-static .pt-plate{transition:none}\n/* The pinned stage (desktop, fine pointer, motion allowed, track wider than the component). */\n.pt.is-pin .pt-stage{position:-webkit-sticky;position:sticky;top:0;height:100vh;height:100svh;display:flex;flex-direction:column;justify-content:center;padding:32px 0}\n.pt.is-pin .pt-scroller{overflow:visible;scroll-snap-type:none;margin-top:32px;padding-bottom:0}\n.pt.is-pin .pt-track{will-change:transform}\n.pt.is-pin .pt-stop{scroll-snap-align:none}\n/* CTA: the single secondary action under the track. */\n.pt-cta-row{margin-top:36px;display:flex}\n.pt.is-pin .pt-cta-row{margin-top:32px}\n.pt-cta{\n  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:12px;height:52px;padding:0 28px;border-radius:999px;\n  border:1.5px solid var(--pt-accent);background:transparent;color:var(--pt-accent);text-decoration:none;cursor:pointer;\n  font-family:var(--pt-body);font-weight:600;font-style:normal;font-size:16px;letter-spacing:.01em;line-height:1;white-space:nowrap;\n  transition:background-color .2s ease,transform .16s var(--pt-ease-out);\n}\n.pt-cta-arrow{flex:none;transition:transform .2s var(--pt-ease-out)}\n.pt-cta:active{transform:scale(.97)}\n.pt-cta:focus-visible{outline:2px solid var(--pt-accent);outline-offset:3px}\n.pt-scroller:focus-visible{outline:2px solid var(--pt-accent);outline-offset:4px;border-radius:4px}\n@media (hover:hover) and (pointer:fine){\n  .pt-cta:hover{background-color:rgba(228,203,178,.4)}\n  .pt-cta:hover .pt-cta-arrow{transform:translateX(3px)}\n}\n/* Canvas and exports: the swipe row as on the site, no pin, every plate opaque (is-static). */\n/* Heading 2 size between 1000 and 1199. */\n@container (max-width:1199px){ .pt-heading{font-size:48px} }\n/* Tablet: 44 percent columns. */\n@container (max-width:999px){\n  .pt{--pt-col:44cqw;--pt-gap:28px}\n  .pt-heading{font-size:48px}\n  .pt-stage{padding-top:32px}\n  .pt-scroller{margin-top:28px}\n}\n/* Phone: 84 percent columns, smaller type, full-width button. */\n@container (max-width:599px){\n  .pt{--pt-col:84cqw;--pt-gap:20px}\n  .pt-heading{font-size:38px}\n  .pt-title{font-size:22px}\n  .pt-line{font-size:15px} /* 15 px floor for body text on phones (3 Nov 2026, Run B; was 14) */\n  .pt-cta-row{margin-top:28px}\n  .pt-cta{width:100%;height:48px}\n}\n/* Browsers without container units: fixed column widths instead of 44 and 84 percent. */\n@supports not (width:1cqw){\n  @container (max-width:999px){ .pt{--pt-col:320px} }\n  @container (max-width:599px){ .pt{--pt-col:280px} }\n}\n@media (prefers-reduced-motion:reduce){\n  .pt .pt-plate,.pt.is-live .pt-plate{opacity:1;transform:none;transition:none}\n  .pt-cta,.pt-cta-arrow,.pt-hint{transition:none}\n  .pt-cta:active{transform:none}\n}\n`;addPropertyControls(PlanTimeline,{showHeading:{type:ControlType.Boolean,title:\"Show heading\",defaultValue:true},heading:{type:ControlType.String,title:\"Heading\",defaultValue:\"Planning your invitations\",hidden:p=>p.showHeading===false},stops:{type:ControlType.String,title:\"Stops\",displayTextArea:true,description:\"JSON: [{ when, title, line, image, alt }], with optional product (CollectionData id), view, fit, postmark.\",defaultValue:JSON.stringify(DEFAULT_STOPS)},notes:{type:ControlType.String,title:\"Notes\",displayTextArea:true,description:\"JSON: [{ afterStop, text }], afterStop counted from 1.\",defaultValue:JSON.stringify(DEFAULT_NOTES)},showCta:{type:ControlType.Boolean,title:\"Show button\",defaultValue:true},ctaLabel:{type:ControlType.String,title:\"Button\",defaultValue:\"Get the price guide\",hidden:p=>p.showCta===false},ctaHref:{type:ControlType.String,title:\"Button link\",defaultValue:\"https://dejaten.com.au/?book=indian-wedding-cards&mode=guide\",hidden:p=>p.showCta===false},displayFont:{type:ControlType.Font,title:\"Display\",controls:\"basic\",defaultValue:{fontFamily:\"Italiana\",fontWeight:400}},bodyFont:{type:ControlType.Font,title:\"Body\",controls:\"basic\",defaultValue:{fontFamily:\"Cormorant Garamond\",fontWeight:400}},ink:{type:ControlType.Color,title:\"Ink\",defaultValue:\"#2B1E19\"},paper:{type:ControlType.Color,title:\"Paper\",defaultValue:\"#F4EFE2\"},accent:{type:ControlType.Color,title:\"Cocoa\",defaultValue:\"#4B3621\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PlanTimeline\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PlanTimeline.map"],"mappings":"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"}