1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,81867,e=>{"use strict";var t=e.i(53286),i=e.i(26747),r=e.i(50145),s=e.i(91096),a=e.i(11428);e.i(64066);var l=e.i(20588),n=e.i(548),o=e.i(13901);let d="focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ion/60 focus-visible:ring-offset-2 focus-visible:ring-offset-[#060609]",c="focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-cine-gold/60 focus-visible:ring-offset-2 focus-visible:ring-offset-[#060609]",m={initial:{opacity:0,y:28},whileInView:{opacity:1,y:0},viewport:{once:!0,margin:"-90px"},transition:{duration:.9,ease:[.22,1,.36,1]}},u=["Reading your spaceâ¦","Measuring walls + fixturesâ¦","Designing three directionsâ¦","Pricing every surfaceâ¦","Composing your visionsâ¦"],p=["â reading the photoâ¦","â measuring walls + fixture anchorsâ¦","â designing three directionsâ¦","â pricing materials from comparable homesâ¦","â composing your visionsâ¦"],h=["â rendering each direction â one change per passâ¦","â self-verifying geometry against your photoâ¦","â packaging your visionâ¦"],x=[{id:"warmer",label:"Warmer"},{id:"cooler",label:"Cooler"},{id:"darker",label:"Darker"},{id:"lighter",label:"Lighter"},{id:"more-modern",label:"More modern"},{id:"more-traditional",label:"More traditional"}],b=[{id:"kitchen",label:"Kitchen"},{id:"bath",label:"Bath"},{id:"living",label:"Living"},{id:"exterior",label:"Exterior"},{id:"backyard",label:"Backyard"}],g={"warm-transitional":"/reels/short/pov-morph-kitchen.mp4","modern-minimal":"/reels/short/morph-living.mp4","dramatic-luxe":"/reels/short/pov-morph-bath.mp4","spa-retreat":"/reels/short/pov-morph-bath.mp4","modern-clean-bath":"/reels/short/morph-bath.mp4","classic-traditional-bath":"/reels/short/wow-bath.mp4","modern-farmhouse":"/reels/short/wow-hero.mp4","sleek-contemporary":"/reels/short/wow-hero.mp4","warm-craftsman":"/reels/short/wow-hero.mp4","resort-pool":"/reels/short/pov-morph-pool.mp4","putting-green":"/reels/short/morph-pool.mp4","outdoor-living":"/reels/short/wow-pool.mp4","soft-staged-living":"/reels/short/pov-morph-living.mp4","modern-gallery-living":"/reels/short/morph-living.mp4","dramatic-lounge":"/reels/short/wow-living.mp4"},f="/reels/short/pov-morph-kitchen.mp4",v=[{top:"60%",left:"27%"},{top:"40%",left:"62%"},{top:"80%",left:"48%"},{top:"30%",left:"20%"},{top:"52%",left:"83%"}];function w(e){if(!e||!Number.isFinite(e))return"â";let t=Math.round(12*e);return`${Math.trunc(t/12)}'-${Math.abs(t%12)}"`}function j(e,t){return"number"!=typeof e||"number"!=typeof t?null:`$${e.toLocaleString()}â$${t.toLocaleString()}`}function y(e){return"number"==typeof e?`${Math.round(100*e)}%`:"â"}function N(e){return`https://www.google.com/search?tbm=shop&q=${encodeURIComponent(e)}`}function k(e){return"string"==typeof e&&e.trim()?e:null}function _(e){if(e)try{return window.localStorage.getItem(`cortivex:vwrite:${e}`)??void 0}catch{return}}async function $(){let e=await fetch("/references/brooklyn-kitchen.png"),t=await e.blob();return new File([t],"brooklyn-kitchen.png",{type:t.type||"image/png"})}function S({label:e,value:i,chip:r}){return(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4 border-b border-white/[0.07] pb-3",children:[(0,t.jsx)("span",{className:"text-[0.64rem] uppercase tracking-[0.2em] text-white/35",children:e}),(0,t.jsxs)("span",{className:"flex max-w-[16rem] flex-wrap items-center justify-end gap-1.5 text-right text-sm text-white/80",children:[i,r]})]})}function C({basis:e}){if(!e)return null;switch(e){case"measured":return(0,t.jsx)(o.BasisChip,{basis:"measured"});case"assumed":return(0,t.jsx)(o.BasisChip,{basis:"assumed"});case"county-record":return(0,t.jsx)(o.BasisChip,{basis:"county"});case"typical":return(0,t.jsx)(o.BasisChip,{basis:"typical"});case"live-db":return(0,t.jsx)(o.BasisChip,{basis:"measured",children:"Live DB"})}}function z({basis:e}){switch(e){case"measured":return(0,t.jsx)(o.BasisChip,{basis:"measured"});case"record":return(0,t.jsx)(o.BasisChip,{basis:"county"});case"assumed":return(0,t.jsx)(o.BasisChip,{basis:"assumed"});case"typical":return(0,t.jsx)(o.BasisChip,{basis:"typical"})}}var T=e.i(94189),R=e.i(92139);let L={selected:1,rendered:.25,kept:2,shared:3,contracted:5,feedback_up:2,feedback_down:-2};function M(e){let t=void 0!==R.default?R.default.env:{};return t[e]??t[`NEXT_PUBLIC_${e}`]??""}function B(e){let{url:t,key:i}={url:M("SUPABASE_URL").replace(/\/$/,""),key:M("SUPABASE_ANON_KEY")};if(!t||!i||!e.event_type)return!1;let r=JSON.stringify({...e,weight:e.weight??L[e.event_type]??1});try{return fetch(`${t}/rest/v1/consumer_selection_event`,{method:"POST",keepalive:!0,headers:{apikey:i,Authorization:`Bearer ${i}`,"Content-Type":"application/json",Prefer:"return=minimal"},body:r}).catch(()=>{}),!0}catch{return!1}}var P=e.i(30747),q=e.i(69042),I=e.i(14192),D=e.i(79486),O=e.i(55781),F=e.i(90513),A=e.i(63695);function E({busy:e,stage:i,reduced:r,termLines:s}){return r?(0,t.jsxs)("div",{className:"rounded-2xl border border-ion/15 bg-black/50 p-4 backdrop-blur",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium text-white/85",role:"status","aria-live":"polite",children:[(0,t.jsx)(q.Loader2,{className:"size-4 animate-spin text-ion"})," ","render"===e?"Rendering three designsâ¦":u[i]]}),(0,t.jsx)("div",{className:"mt-3 flex gap-1.5",children:u.map((r,s)=>(0,t.jsx)("span",{className:`h-1 flex-1 rounded-full transition-colors ${"render"===e||s<=i?"bg-ion/70":"bg-white/10"}`},r))}),(0,t.jsx)("p",{className:"mt-2 text-[0.66rem] text-white/35",children:"render"===e?"Real renders · ~30s · keep this tab open":"Free measured preview · ~30s · keep this tab open"})]}):(0,t.jsxs)(F.motion.div,{initial:{opacity:0,y:10}
1,animate:{opacity:1,y:0},transition:{duration:.45,ease:[.22,1,.36,1]},children:[(0,t.jsx)(A.PipelineTerminal,{lines:s,title:"render"===e?"vizhaus â render":"vizhaus â vision"}),(0,t.jsx)("div",{className:"mt-2.5 flex gap-1.5",children:u.map((r,s)=>(0,t.jsx)("span",{className:`h-1 flex-1 rounded-full transition-colors duration-500 ${!e||"render"===e||s<=i?"bg-ion/70":"bg-white/10"}`},r))}),(0,t.jsx)("p",{className:"mt-2 text-[0.66rem] text-white/35",children:"render"===e?"Real renders · ~30s · keep this tab open":e?"Free measured preview · ~30s · keep this tab open":"Measured · priced · packaged"}),(0,t.jsx)("span",{className:"sr-only",role:"status","aria-live":"polite",children:"render"===e?"Rendering three designs":e?u[i]:"Your vision is ready"})]})}let U=[["Sees","classifies the space"],["Measures","creates a plan"],["Designs","three directions"],["Prices","real material bands"],["Shops","surfaces to buy"]];function V({vision:e}){let{inputRef:l,file:n,busy:o,stage:c,data:m,err:u,beforeUrl:p,lastId:h,restoring:x,reduced:b,termLines:g,settling:v,onPick:w,runSample:j,restore:y,openPicker:N}=e;return(0,t.jsxs)("section",{className:"relative min-h-dvh overflow-hidden",children:[(0,t.jsx)(O.SurveyGrid,{density:"hero"}),(0,t.jsx)("div",{"aria-hidden":"true",className:"pointer-events-none absolute -right-24 top-1/2 hidden w-[46rem] -translate-y-1/2 opacity-[0.13] lg:block",children:(0,t.jsx)(D.PlanSheet,{})}),(0,t.jsx)("div",{className:"absolute inset-0 bg-[radial-gradient(circle_at_72%_30%,rgba(127,240,210,0.10),transparent_30%),radial-gradient(circle_at_30%_70%,rgba(52,211,153,0.06),transparent_26%)]"}),(0,t.jsx)("div",{className:"absolute inset-x-0 bottom-0 h-48 bg-gradient-to-t from-[#030305] to-transparent"}),(0,t.jsxs)("header",{className:"relative z-10 mx-auto flex max-w-7xl items-center justify-between px-5 py-6 sm:px-8",children:[(0,t.jsx)(i.default,{href:"/",className:"font-serif text-sm font-medium tracking-[0.5em] text-white/90",children:"VIZHAUS"}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(i.default,{href:"/studio",className:`hidden rounded-full border border-white/15 bg-white/[0.03] px-4 py-2 text-[0.72rem] font-medium uppercase tracking-[0.2em] text-white/70 backdrop-blur-md transition-colors hover:border-white/30 hover:text-white sm:inline-flex ${d}`,children:"Studio"}),(0,t.jsxs)("button",{type:"button",onClick:()=>void j(),disabled:!!o,className:`inline-flex items-center gap-2 rounded-full bg-white px-4 py-2.5 text-[0.72rem] font-semibold uppercase tracking-[0.2em] text-black transition hover:scale-[1.04] disabled:cursor-wait disabled:opacity-60 ${d}`,children:["Try sample ",(0,t.jsx)(s.ArrowRight,{className:"size-3.5"})]})]})]}),(0,t.jsxs)("div",{className:"relative z-10 mx-auto grid min-h-[calc(100dvh-6rem)] max-w-7xl gap-10 px-5 pb-14 pt-8 sm:px-8 lg:grid-cols-[0.95fr_1.05fr] lg:items-center",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"inline-flex items-center gap-2 rounded-full border border-ion/20 bg-ion/[0.06] px-3 py-1.5 text-[0.66rem] font-medium uppercase tracking-[0.32em] text-ion/75 backdrop-blur",children:"Instant Vision"}),(0,t.jsxs)("h1",{className:"mt-7 max-w-4xl font-serif text-[13vw] font-light leading-[0.92] tracking-[-0.02em] text-white sm:text-7xl md:text-[6rem]",children:["Drop a photo. ",(0,t.jsx)("span",{className:"text-white/45",children:"Watch it decide."})]}),(0,t.jsx)("p",{className:"mt-7 max-w-2xl text-base font-light leading-8 text-white/55 sm:text-lg",children:"One image becomes three measured, priced, shoppable renovation directions. No prompt. No tab hunt. The preview is free; renders are explicit."}),(0,t.jsx)("div",{className:"mt-8 grid max-w-2xl grid-cols-2 gap-2 sm:grid-cols-5",children:U.map(([e,i])=>(0,t.jsxs)("div",{className:"border-y border-white/10 bg-black/20 px-3 py-3 backdrop-blur",children:[(0,t.jsx)("div",{className:"text-sm font-semibold text-ion",children:e}),(0,t.jsx)("div",{className:"mt-1 text-xs leading-4 text-white/45",children:i})]},e))}),!h||m||o?null:(0,t.jsxs)("button",{type:"button",onClick:()=>void y(h),disabled:x,className:`mt-7 inline-flex items-center gap-2 rounded-full border border-ion/25 bg-ion/[0.06] px-4 py-2 text-xs font-medium text-ion transition-colors hover:bg-ion/[0.12] disabled:opacity-60 ${d}`,children:[x?(0,t.jsx)(q.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(s.ArrowRight,{className:"size-3.5"}),"Reopen your last vision"]})]}),(0,t.jsxs)("div",{className:"glass-cine rounded-[2rem] p-3",children:[(0,t.jsxs)("label",{onDragOver:e=>e.preventDefault(),onDrop:e=>{e.preventDefault(),w(e.dataTransfer.files?.[0])},className:`group relative flex min-h-[26rem] cursor-pointer flex-col justify-between overflow-hidden rounded-[1.55rem] border border-dashed p-5 transition ${o?"border-white/10 glow-ion":"border-white/18 hover:border-ion/40"} bg-[#08090b]`,children:[p?(0,t.jsx)("img",{src:p,alt:"Your room",className:"absolute inset-0 size-full object-cover opacity-60"}):(0,t.jsx)("video",{className:"absolute inset-0 size-full object-cover opacity-60",src:f,autoPlay:!0,muted:!0,loop:!0,playsInl
1ine:!0,preload:"metadata"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-black via-black/35 to-black/10"}),(0,t.jsx)("input",{ref:l,type:"file",accept:"image/jpeg,image/png,image/webp",className:"hidden",disabled:!!o,onChange:e=>{w(e.target.files?.[0]),e.target.value=""}}),(0,t.jsxs)("div",{className:"relative z-10 flex items-center justify-between",children:[(0,t.jsx)("span",{className:"max-w-[70%] truncate rounded-full border border-white/14 bg-black/35 px-3 py-1.5 text-[0.7rem] font-medium uppercase tracking-[0.18em] text-white/70 backdrop-blur",children:n?n.name:"Upload a photo of your space"}),(0,t.jsx)("span",{className:"grid size-10 shrink-0 place-items-center rounded-full bg-white text-black",children:(0,t.jsx)(I.Upload,{className:"size-4"})})]}),(0,t.jsx)("div",{className:"relative z-10",children:o||v&&!b?(0,t.jsx)(E,{busy:o,stage:c,reduced:b,termLines:g}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"max-w-md font-serif text-4xl font-light leading-none text-white",children:"Your space, three ways."}),(0,t.jsx)("p",{className:"mt-3 max-w-md text-sm leading-6 text-white/55",children:"Drag a photo here or choose a file. Kitchen, bath, living room, exterior, backyard â the first pass is a zero-spend measured package."}),(0,t.jsx)("div",{className:"mt-5 flex flex-wrap gap-3",children:(0,t.jsxs)("button",{type:"button",onClick:e=>{e.preventDefault(),N()},className:`inline-flex items-center gap-2 rounded-full bg-white px-5 py-2.5 text-[0.72rem] font-semibold uppercase tracking-[0.16em] text-black transition hover:scale-[1.04] ${d}`,children:[(0,t.jsx)(a.ImageUp,{className:"size-3.5"})," Choose photo"]})})]})})]}),u&&!m?(0,t.jsxs)("p",{className:"mt-3 inline-flex items-center gap-1.5 px-2 pb-1 text-xs text-amber-400",children:[(0,t.jsx)(r.AlertTriangle,{className:"size-3.5"})," ",u]}):null]})]})]})}var W=e.i(69630);let H=[{src:"/reels/short/morph-kitchen.mp4",t:"Kitchen"},{src:"/reels/short/morph-bath.mp4",t:"Bath"},{src:"/reels/short/morph-living.mp4",t:"Living"},{src:"/reels/short/morph-pool.mp4",t:"Backyard â pool"}];function J(){return(0,t.jsxs)("section",{className:"relative z-10 mx-auto w-full max-w-7xl px-5 pb-24 pt-14 sm:px-8",children:[(0,t.jsx)("p",{className:"mb-6 text-center text-[0.66rem] font-medium uppercase tracking-[0.32em] text-white/35",children:"Real rooms · before â after, in seconds"}),(0,t.jsx)("div",{className:"grid grid-cols-2 gap-3 md:grid-cols-4",children:H.map((e,i)=>(0,t.jsxs)(F.motion.figure,{initial:{opacity:0,y:28},whileInView:{opacity:1,y:0},viewport:{once:!0,margin:"-90px"},transition:{duration:.9,ease:[.22,1,.36,1],delay:.06*i},className:"group relative aspect-[3/4] overflow-hidden rounded-xl border border-white/[0.07] bg-white/[0.02]",children:[(0,t.jsx)(W.ReelVideo,{src:e.src,className:"absolute inset-0 h-full w-full object-cover transition-transform duration-700 group-hover:scale-[1.03]"}),(0,t.jsx)("figcaption",{className:"absolute inset-x-0 bottom-0 bg-gradient-to-t from-black/70 to-transparent p-2.5 text-[0.66rem] font-medium text-white/85",children:e.t})]},e.src))})]})}var G=e.i(25957),K=e.i(82026);let Y=(0,K.default)("clapperboard",[["path",{d:"m12.296 3.464 3.02 3.956",key:"qash78"}],["path",{d:"M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3z",key:"1h7j8b"}],["path",{d:"M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"4lm6w1"}],["path",{d:"m6.18 5.276 3.1 3.899",key:"zjj9t3"}]]);var X=e.i(25591);let Z=(0,K.default)("pencil-ruler",[["path",{d:"M13 7 8.7 2.7a2.41 2.41 0 0 0-3.4 0L2.7 5.3a2.41 2.41 0 0 0 0 3.4L7 13",key:"orapub"}],["path",{d:"m8 6 2-2",key:"115y1s"}],["path",{d:"m18 16 2-2",key:"ee94s4"}],["path",{d:"m17 11 4.3 4.3c.94.94.94 2.46 0 3.4l-2.6 2.6c-.94.94-2.46.94-3.4 0L11 17",key:"cfq27r"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);var Q=e.i(37833),ee=e.i(53880),et=e.i(61390),ei=e.i(97104),er=e.i(89232);let es=(0,K.default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);function ea({packageId:e}){let[i,r]=T.useState(""),[s,a]=T.useState(!1),[l,n]=T.useState(null),[o,c]=T.useState(null);if(!e)return null;let m=async()=>
1{if(i.trim()&&!s){a(!0),c(null),n(null);try{let t=await fetch("/api/identify",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({package_id:e,question:i.trim()})}),r=await t.json();r.ok?n(r):c(r.error??"Couldn't resolve that â try again.")}catch{c("Identify service unreachable.")}finally{a(!1)}}};return(0,t.jsxs)("div",{className:"mt-6 border-t border-white/[0.07] pt-4","data-testid":"what-is-that",children:[(0,t.jsxs)("p",{className:"flex items-center gap-1.5 text-[0.62rem] uppercase tracking-[0.24em] text-white/30",children:[(0,t.jsx)(er.HelpCircle,{className:"size-3"})," What is that?"]}),(0,t.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,t.jsx)("input",{value:i,onChange:e=>r(e.target.value),onKeyDown:e=>{"Enter"===e.key&&m()},placeholder:"e.g. that backsplash tile",className:"min-w-0 flex-1 rounded-lg border border-white/15 bg-white/[0.04] px-3 py-2 text-xs text-white placeholder:text-white/30 focus:border-ion/50 focus:outline-none"}),(0,t.jsxs)("button",{type:"button",disabled:s||!i.trim(),onClick:()=>void m(),className:`inline-flex items-center gap-1.5 rounded-full border border-ion/25 bg-ion/[0.07] px-3.5 py-2 text-xs font-medium text-ion transition-colors hover:bg-ion/[0.14] disabled:opacity-45 ${d}`,children:[s?(0,t.jsx)(q.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(es,{className:"size-3.5"}),"Ask"]})]}),o?(0,t.jsx)("p",{className:"mt-2 text-[0.68rem] text-rose-200/80",children:o}):null,l?(0,t.jsxs)("div",{className:"mt-3","data-testid":"what-is-that-result",children:[l.matched_element?(0,t.jsxs)("p",{className:"text-[0.7rem] text-white/60",children:["In your photo: ",(0,t.jsx)("span",{className:"text-white/85",children:l.matched_element.type}),l.matched_element.material?(0,t.jsxs)("span",{className:"text-white/60",children:[" · ",l.matched_element.material]}):null]}):null,(l.picks??[]).length>0?(0,t.jsx)("div",{className:"mt-2 grid gap-1.5",children:(l.picks??[]).map((e,i)=>(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 rounded-xl border border-white/10 bg-black/25 px-3 py-2",children:[(0,t.jsx)("span",{className:"text-[0.72rem] text-white/85",children:e.label}),(0,t.jsx)("span",{className:"rounded-full border border-white/12 bg-white/[0.03] px-2 py-0.5 text-[0.56rem] uppercase tracking-[0.14em] text-white/45",children:e.basis}),(0,t.jsx)("span",{className:"figure-mono ml-auto text-[0.68rem] text-white/70",children:e.band})]},`${e.label}-${i}`))}):null,l.note?(0,t.jsx)("p",{className:"mt-2 text-[0.62rem] leading-relaxed text-white/35",children:l.note}):null]}):null]})}function el({vision:e}){var i,r,s;let a,{data:l,room:n,reconciliation:c,isSite:u,reduced:p,busy:h,settling:x,termLines:g,calibrating:f,calInput:v,setCalInput:N,calibrate:_,switching:$,reclassify:C,copied:z,copyLink:T,renderNow:R,setData:L}=e;if(!l)return null;let M=n?null==(i=n.confidence)?{label:"â",cls:"text-white/40 border-white/15"}:i>=.8?{label:"High",cls:"text-emerald-300 border-emerald-400/40"}:i>=.55?{label:"Moderate",cls:"text-amber-300 border-amber-400/40"}:{label:"Field-verify",cls:"text-rose-300 border-rose-400/40"}:null,B=n?.measurement_review?.status,P=l.recognition,I=k(P?.current_style),D=k(P?.summary),O=Array.isArray(r=P?.elements)?r.filter(e=>!!e&&"object"==typeof e).map(e=>({type:"string"==typeof e.type?e.type:void 0,material:"string"==typeof e.material?e.material:void 0})):[],E=Array.isArray(s=P?.dated)?s.filter(e=>"string"==typeof e&&e.trim().length>0):[];return(0,t.jsxs)(F.motion.aside,{...m,className:"glass-cine rounded-[1.6rem] p-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[0.66rem] font-medium uppercase tracking-[0.32em] text-ion/75",children:[(0,t.jsx)(Q.Ruler,{className:"size-4"})," What it sees"]}),(0,t.jsx)("div",{className:"mt-4 font-serif text-4xl font-light text-white",children:l.vertical_label??"Your space"}),P?.recognized&&(I||D)?(0,t.jsxs)("div",{className:"mt-5 rounded-2xl border border-ion/15 bg-ion/[0.045] p-4",children:[I?(0,t.jsx)("div",{className:"font-serif text-2xl font-light text-white",children:I}):null,D?(0,t.jsx)("p",{className:"mt-2 text-xs leading-5 text-white/55",children:D}):null,O.length?(0,t.jsx)("div",{className:"mt-3 flex flex-wrap gap-1.5",children:O.slice(0,4).map((e,i)=>(0,t.jsxs)("span",{className:"rounded-full border border-white/10 bg-black/25 px-2.5 py-1 text-[0.64rem] uppercase tracking-[0.12em] text-white/55",children:[e.type,e.material?` \xb7 ${e.material}`:""]},`${e.type}-${i}`))}):null,E.length?(0,t.jsxs)("p",{className:"mt-2.5 text-[0.68rem] text-white/40",children:["Dated: ",E.slice(0,3).join(" · ")]}):null]}):null,(0,t.jsxs)("div",{className:"mt-6 grid gap-3 text-sm",children:[n?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(S,{label:"Measured",value:(0,t.jsx)("span",{className:"figure-mono",children:(a=`${w(n.width_ft)} \xd7 ${w(n.depth_ft)}${n.area_ft2?` \xb7 ${n.area_ft2} ft\xb2`:""}`,p?a:(0,t.jsx)(ei.EncryptedText,{text:a,revealDelayMs:38,flipDelayMs:42,charset
1:"0123456789'\"Ã-·",encryptedClassName:"text-white/30",revealedClassName:"text-white/90"},`${l.package_id??"pkg"}:${a}`))}),chip:(0,t.jsx)(o.BasisChip,{basis:"measured"})}),(0,t.jsx)(S,{label:"Axis confidence",value:(0,t.jsxs)("span",{className:"figure-mono",children:["W ",y(n.confidence_axes?.width)," · D ",y(n.confidence_axes?.depth)]}),chip:M?(0,t.jsxs)("span",{className:`inline-flex items-center gap-1 rounded-full border bg-white/[0.02] px-2 py-0.5 text-[0.62rem] font-medium ${M.cls}`,children:[(0,t.jsx)(ee.ShieldCheck,{className:"size-3"})," ",M.label]}):null}),"anchor_warning"===B?(0,t.jsx)(S,{label:"Review",value:(0,t.jsx)("span",{className:"text-amber-200/85",children:"anchor warning · depth estimated"})}):null,n.human_calibrated?(0,t.jsx)(S,{label:"Calibration",value:(0,t.jsx)("span",{className:"text-emerald-200/90",children:"Calibrated to a measured wall"}),chip:(0,t.jsx)(o.BasisChip,{basis:"verified"})}):null]}):(0,t.jsx)(S,{label:"Measurement",value:(0,t.jsx)("span",{className:"text-white/50",children:u?"Scoped from a site survey â not a room measure":"No confident room measurement"})}),l.budget&&l.budget.total_high>0?(0,t.jsx)(S,{label:"Materials band",value:(0,t.jsx)("span",{className:"figure-mono text-white",children:j(l.budget.total_low,l.budget.total_high)}),chip:"live-db"===l.budget.source?(0,t.jsx)(o.BasisChip,{basis:"measured",children:"Live DB"}):(0,t.jsx)(o.BasisChip,{basis:"typical",children:l.budget.source})}):null,l.budget&&l.budget.priced_on_request>0?(0,t.jsx)(S,{label:"On request",value:(0,t.jsxs)("span",{className:"text-white/55",children:[l.budget.priced_on_request," line",1===l.budget.priced_on_request?"":"s"]}),chip:(0,t.jsx)(o.BasisChip,{basis:"request"})}):null]}),n?.calibration?.notes?.length?(0,t.jsx)("p",{className:"mt-4 text-[0.68rem] leading-relaxed text-white/40",children:n.calibration.notes.join(" ")}):null,n&&c&&!n.human_calibrated?(()=>{let e=c.confirm_axis,i="width"===e?c.width:"depth"===e?c.depth:null;if(c.needs_confirm&&e&&i){let r=c.ruler?c.ruler.wall_length_in/12:null,s=i.engine_in/12;return(0,t.jsxs)("div",{className:"mt-5 rounded-2xl border border-amber-400/25 bg-amber-500/[0.05] p-4",children:[(0,t.jsxs)("p",{className:"flex items-center gap-2 text-[0.62rem] font-medium uppercase tracking-[0.24em] text-amber-300/80",children:[(0,t.jsx)(Z,{className:"size-3.5"})," Make this exact"]}),(0,t.jsx)("p",{className:"mt-1.5 text-[0.8rem] leading-relaxed text-white/70",children:c.summary}),(0,t.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[c.ruler&&r&&c.ruler_offer?(0,t.jsxs)("button",{type:"button",disabled:f,onClick:()=>void _(e,{ruler:!0}),className:`inline-flex items-center gap-1.5 rounded-full border border-ion/30 bg-ion/[0.08] px-3.5 py-2 text-xs font-medium text-ion transition-colors hover:bg-ion/[0.16] disabled:opacity-60 ${d}`,children:[f?(0,t.jsx)(q.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(G.Check,{className:"size-3.5"}),"Use the ",c.ruler.object," (",(0,t.jsx)("span",{className:"figure-mono",children:w(r)}),")"]}):null,(0,t.jsx)("span",{className:"text-[0.66rem] text-white/40",children:"or measure it:"}),(0,t.jsx)("input",{value:v,onChange:e=>N(e.target.value),placeholder:`e.g. ${w(s)} or 150in`,className:"w-32 rounded-lg border border-white/15 bg-white/[0.04] px-3 py-2 text-xs text-white placeholder:text-white/30 focus:border-ion/50 focus:outline-none"}),(0,t.jsxs)("button",{type:"button",disabled:f||!v.trim(),onClick:()=>void _(e,{input:v}),className:`inline-flex items-center gap-1.5 rounded-full bg-white px-3.5 py-2 text-xs font-semibold text-black transition-transform hover:scale-[1.03] disabled:opacity-50 ${d}`,children:[f?(0,t.jsx)(q.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(Q.Ruler,{className:"size-3.5"}),"Snap to reality"]}),(0,t.jsx)("button",{type:"button",onClick:()=>L(e=>e?{...e,reconciliation:null}:e),className:`rounded text-[0.66rem] text-white/35 underline-offset-2 hover:text-white/70 hover:underline ${d}`,children:"Keep our estimate"})]})]})}return("corroborated"===c.width.status||"corroborated"===c.depth.status)&&c.ruler?(0,t.jsx)("div",{className:"mt-5 rounded-2xl border border-emerald-400/20 bg-emerald-500/[0.04] p-4",children:(0,t.jsxs)("p",{className:"inline-flex items-center gap-2 text-[0.78rem] text-emerald-200/90",children:[(0,t.jsx)(ee.ShieldCheck,{className:"size-4 shrink-0 text-emerald-300"})," Your ",c.ruler.object," in the photo confirms the measurement â higher confidence."]})}):null})():null,(0,t.jsx)(ea,{packageId:l.package_id}),l.source_image_url?(0,t.jsxs)("div",{className:"mt-6 border-t border-white/[0.07] pt-4",children:[(0,t.jsxs)("p",{className:"text-[0.62rem] uppercase tracking-[0.24em] text-white/30",children:["Not ",l.vertical_label??"your space","?"]}),(0,t.jsx)("div",{className:"mt-2 flex flex-wrap gap-1.5",children:b.map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>void C(e.id),disabled:null!==$||e.id===l.vertical,className:`rounded-full border px-2.5 py-1 text-[0.66rem] transition-colors ${e.id===l.vertical?"border-ion/40 bg-ion/[0.08] text-ion":"border-white/12 bg-white/[0.03] text-white/60 hover:border-ion/40 hover:text-white disabled:opacity-50"} ${d}`,children:$===e.id?"â¦":e.label},e.id))})]}):null,(0,t.jsxs)("div",{className:"mt-6 grid gap-3",children:[l.package_id?(0,t.jsxs)("button",{type:"button",onClick:()=>void T(),className:`inline-flex items-center justify-center gap-1.5 rounded-full border border-white/15 bg-white/[0.03] px-4 py-2.5 text-xs font-medium text-white/70 backdrop-blur-md transition-colors hover:border-white/30 hover:text-white ${d}`,title:"Copy a shareable link that reopens this exact vision (read-only for recipients)",children:[z?(0,t.jsx)(G.Check,{className:"size-3.5 text-emerald-300"}):(0,t.jsx)(X.Link2,{className:"size-3.5"}),z?"Link copied":"Share this vision"]}):null,l.preview?(0,t.jsxs)(et.Button,{as:"button",type:"button",onClick:()=>void R(),disabled:!!h,borderRadius:"9999px",containerClassName:"h-auto w-full",borderClassName:"bg-[radial-gradient(#7ff0d2_40%,transparent_60%)]",className:"gap-2 border-white/10 bg-[#0a0c0e]/90 px-5 py-3 text-[0.72rem] font-semibold uppercase tracking-[0.16em] text-white",children:["render"===h?(0,t.jsx)(q.Loader2,{className:"size-4 animate-spin"}):(0,t.jsx)(Y,{className:"size-4"}),"See it rendered · ~$0.36"]}):null,l.preview?(0,t.jsx)("p",{className:"text-center text-[0.64rem] text-white/35",children:"Free so far â measured + priced. This generates the three real photoreal designs."}
1):null,"render"!==h&&(!x||l.preview)||p?null:(0,t.jsx)(F.motion.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{duration:.45,ease:[.22,1,.36,1]},children:(0,t.jsx)(A.PipelineTerminal,{lines:g,title:"vizhaus â render"})})]})]})}var en=e.i(88002);function eo({vision:e}){let{data:i,visions:r,selected:s,shownUrl:a,beforeUrl:l,evolving:n,isSite:c,setSelectedId:m,setSurfaceIdx:u}=e;return i?(0,t.jsxs)("div",{className:"grid content-start gap-4 md:grid-cols-3",children:[r.map((e,r)=>{let p=a(e),h=s?.id===e.id;return(0,t.jsx)(F.motion.div,{initial:{opacity:0,y:28},whileInView:{opacity:1,y:0},viewport:{once:!0,margin:"-90px"},transition:{duration:.9,ease:[.22,1,.36,1],delay:.08*r},children:(0,t.jsx)(en.CineGradient,{variant:"ambient",animate:h,containerClassName:"h-full rounded-[1.75rem]",className:"h-full rounded-[1.6rem]",children:(0,t.jsxs)("button",{type:"button",onClick:()=>{m(e.id),u(null)},"aria-pressed":h,className:`group cine-edge block h-full w-full overflow-hidden rounded-[1.6rem] border bg-[#0a0b0e] text-left transition ${h?"border-ion/50":"border-white/[0.08] hover:border-white/20"} ${d}`,children:[(0,t.jsxs)("div",{className:"relative aspect-[4/3] overflow-hidden bg-black",children:[p?(0,t.jsx)("img",{src:p,alt:e.label,className:"size-full object-cover transition duration-700 group-hover:scale-[1.04]"}):(0,t.jsx)(W.ReelVideo,{src:g[e.id]??f,className:"size-full object-cover opacity-80 transition duration-700 group-hover:scale-[1.04]"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-black/75 to-transparent"}),(0,t.jsx)("span",{className:"absolute bottom-3 left-3 rounded-full border border-white/15 bg-black/45 px-2.5 py-1 text-[0.6rem] font-medium uppercase tracking-[0.16em] text-white/70 backdrop-blur",children:p?"Rendered":i.preview?"Preview â tap See it rendered":e.mocked?"Render mocked (no key)":"Render unavailable"}),e.verified?.ok&&e.verified.change_applied&&!e.verified.drift?(0,t.jsx)(o.BasisChip,{basis:"verified",className:"absolute right-3 top-3 backdrop-blur",children:(0,t.jsxs)("span",{title:`Self-verified â change applied, no geometry drift (${e.verified.provider})${e.retried?" · after retry":""}`,children:[(0,t.jsx)(ee.ShieldCheck,{className:"mr-1 inline size-3"}),"Verified"]})}):e.verified?.ok&&e.verified.drift?(0,t.jsx)(o.BasisChip,{basis:"drift",className:"absolute right-3 top-3 backdrop-blur",children:(0,t.jsx)("span",{title:`Verifier flagged geometry drift (${e.verified.provider}) â shown, never hidden`,children:"Drift flagged"})}):null,l?(0,t.jsxs)("span",{className:"absolute bottom-2 right-2 overflow-hidden rounded-md border border-white/20 shadow-lg",children:[(0,t.jsx)("img",{src:l,alt:"before",className:"h-11 w-14 object-cover opacity-90"}),(0,t.jsx)("span",{className:"absolute inset-x-0 bottom-0 bg-black/60 text-center text-[0.5rem] uppercase tracking-wider text-white/80",children:"before"})]}):null,n===e.id?(0,t.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center gap-2 bg-black/55 backdrop-blur-sm",children:[(0,t.jsx)(q.Loader2,{className:"size-6 animate-spin text-ion"}),(0,t.jsx)("span",{className:"text-[0.66rem] text-white/70",children:"Evolvingâ¦"})]}):null]}),(0,t.jsxs)("div",{className:"p-5",children:[(0,t.jsx)("div",{className:"font-serif text-2xl font-light text-white",children:e.label}),(0,t.jsx)("div",{className:"mt-1 text-[0.64rem] font-medium uppercase tracking-[0.2em] text-ion/60",children:e.finish_tier}),e.personal?.transform?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"mt-2.5 text-[0.72rem] leading-snug text-ion/80",children:e.personal.transform}),(0,t.jsx)("p",{className:"mt-1 text-[0.64rem] leading-snug text-white/35",children:e.personal.keep??e.blurb})]}):(0,t.jsx)("p",{className:"mt-2.5 text-[0.72rem] leading-snug text-white/45",children:e.blurb}),e.tier_band?(0,t.jsxs)("div",{className:"mt-4 flex items-center justify-between border-t border-white/10 pt-3.5",children:[(0,t.jsx)("span",{className:"text-[0.62rem] uppercase tracking-[0.2em] text-white/40",children:"Budget"}),(0,t.jsx)("span",{className:"figure-mono text-sm text-white",children:j(e.tier_band.low_usd,e.tier_band.high_usd)})]}):c?(0,t.jsx)("div",{className:"mt-4 border-t border-white/10 pt-3.5 text-[0.64rem] leading-relaxed text-white/40",children:"Priced from your lot, below â not from a room measure."}):null]})]})})},e.id)}),r.length?null:(0,t.jsx)("div",{className:"rounded-[1.6rem] border border-white/[0.08] bg-white/[0.02] p-8 text-white/55 md:col-span-3",children:"No directions were produced â try another photo."})]}):null}var ed=e.i(53184);let ec=(0,K.default)("hammer",[["path",{d:"m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9",key:"1hayfq"}],["path",{d:"m18 15 4-4",key:"16gjal"}],["path",{d:"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5",key:"15ts47"}]]);var em=e.i(25160),eu=e.i(8310);function ep({step:e}){let i=e.verdict;return e.image_url?i&&i.ok&&i.change_applied&&!i.drift?(0,t.jsxs)(o.BasisChip,{basis:"verified",children:["Geometry held",e.retried?" · retried once":""]}):i&&i.ok&&i.drift?(0,t.jsx)(o.BasisChip,{basis:"drift",children:"Drift â disclosed"}):i&&i.ok&&!i.change_applied?(0,t.jsx)(o.BasisChip,{basis:"assumed",children:"Change unclear â disclosed"}):(0,t.jsx)(o.BasisChip,{basis:"typical",children:"Verifier unavailable"}):(0,t.jsx)(o.BasisChip,{basis:"request",children:"Not rendered"})}function eh({vision:e,designer:i,direction:r}){let{data:s,reduced:a}
1=e,{firstPass:l,fpLines:n,runFirstPass:o}=i;if(!s?.package_id)return null;let c="running"===l.status,u="idle"!==l.status&&l.direction_id===r.id,p=u&&"done"===l.status?l.resp:null,h=u&&"failed"===l.status?l.error:null;return(0,t.jsxs)(F.motion.div,{...m,className:"mx-auto mt-6 max-w-4xl rounded-[1.6rem] border border-white/[0.08] bg-white/[0.02] p-6",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[0.66rem] font-medium uppercase tracking-[0.32em] text-ion/75",children:[(0,t.jsx)(eu.Wand2,{className:"size-4"})," First pass â ",r.title]}),(0,t.jsx)("p",{className:"mt-2 max-w-xl text-xs leading-5 text-white/45",children:"Executes this direction's plan on your photo, one change per render, each pass judged against your geometry. A drifted render never lands silently â it retries once or ships with its disclosure."})]}),(0,t.jsxs)("button",{type:"button",onClick:()=>void o(r),disabled:c,className:`inline-flex items-center gap-2 rounded-full border border-ion/30 bg-ion/[0.08] px-5 py-2.5 text-[0.7rem] font-semibold uppercase tracking-[0.16em] text-ion transition-colors hover:bg-ion/[0.16] disabled:cursor-wait disabled:opacity-55 ${d}`,children:[c?(0,t.jsx)(q.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(eu.Wand2,{className:"size-3.5"}),c?"Rendering the first passâ¦":`Run the first pass \xb7 ~$${r.est_cost_usd.toFixed(2)}`]})]}),u&&(n.length>0||c)&&!a?(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)(A.PipelineTerminal,{lines:n,title:"vizhaus â first pass"})}):null,u&&a&&c?(0,t.jsx)("p",{className:"mt-4 text-xs text-white/55",role:"status","aria-live":"polite",children:"Rendering the first pass â one change per render, judge-verifiedâ¦"}):null,h?(0,t.jsx)("p",{className:"mt-3 text-xs leading-5 text-rose-200/80",children:h}):null,p?(0,t.jsxs)("div",{className:"mt-5 grid gap-4 md:grid-cols-[1.1fr_0.9fr]",children:[(0,t.jsxs)("div",{className:"grid content-start gap-2.5",children:[(p.steps??[]).map(e=>(0,t.jsxs)("div",{className:"grid gap-1 border-b border-white/[0.07] pb-2.5",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,t.jsxs)("span",{className:"text-[0.72rem] font-medium text-white/85",children:[(0,t.jsxs)("span",{className:"figure-mono mr-2 text-white/35",children:[e.order,"."]}),e.move_kind.replace(/_/g," ")]}),(0,t.jsx)(ep,{step:e})]}),(0,t.jsx)("p",{className:"truncate text-[0.64rem] leading-4 text-white/40",title:e.change,children:e.change}),e.note?(0,t.jsx)("p",{className:"text-[0.6rem] leading-4 text-amber-200/60",children:e.note}):null]},e.order)),(p.honest_notes??[]).map((e,i)=>(0,t.jsx)("p",{className:"text-[0.62rem] leading-relaxed text-white/35",children:e},i)),(0,t.jsxs)("div",{className:"flex items-baseline justify-between pt-1",children:[(0,t.jsx)("span",{className:"text-[0.62rem] uppercase tracking-[0.2em] text-white/40",children:"Executed · spend"}),(0,t.jsxs)("span",{className:"figure-mono text-[0.72rem] text-white/80",children:[p.executed_steps??0,"/",p.planned_steps??0," steps · ~$",(p.total_cost_est??0).toFixed(2)]})]})]}),(0,t.jsx)("div",{children:p.final_image_url?(0,t.jsxs)("figure",{className:"overflow-hidden rounded-2xl border border-white/10 bg-black",children:[(0,t.jsx)("img",{src:p.final_image_url,alt:`${r.title} â first pass result`,className:"aspect-[4/3] w-full object-cover"}),(0,t.jsx)("figcaption",{className:"px-3 py-2 text-[0.6rem] text-white/35",children:"First-pass result â serial single-change chain, judge-verified per step."})]}):(0,t.jsx)("p",{className:"rounded-2xl border border-white/10 bg-black/25 p-4 text-xs leading-relaxed text-white/50",children:"No final image landed â the steps above say exactly what happened (honest partial, never a silent success)."})})]}):null]})}function ex({vision:e,designer:i}){let{data:r,selected:s,setSelectedId:a,setSurfaceIdx:l}=e,{status:n,directions:o,catalogNote:d,catalogStatus:c}=i;if(!r?.ok||"unknown"===r.vertical)return null;if("degraded"===n)return(0,t.jsx)("p",{className:"mx-auto mt-12 max-w-2xl text-center text-[0.7rem] leading-relaxed text-white/35",children:"The designer service is momentarily unavailable â showing the palette preview directions below. No catalog grounding is claimed for them."});if("ready"!==n||0===o.length)return"loading"===n?(0,t.jsx)("p",{className:"mx-auto mt-12 text-center text-[0.66rem] uppercase tracking-[0.24em] text-white/30",children:"Designer brain â composing directions from the catalogâ¦"}):null;let m=o.find(e=>e.id===s?.id)??o[0];return(0,t.jsxs)("div",{className:"mt-14",children:[(0,t.jsx)(em.DimensionHeader,{eyebrow:"DESIGNER BRAIN · CATALOG-GROUNDED",title:"The designer's take",sub:"live"===c?"Three opinionated directions, decomposed into one-change-per-render steps â every material a real product family from Patten-built homes, priced as bands from real invoice lines.":d??"Directions composed; the live catalog is momentarily offline â palette names shown without catalog claims."}),(0,t.jsx)("div",{className:"mx-auto mt-8 grid max-w-7xl gap-4 lg:grid-cols-3",children:o.map((e,i)=>(0,t.jsx)(eb,{direction:e,index:i,active:m.id===e.id,onSelect:()=>{a(e.id),l(null)}},e.id))}),(0,t.jsx)(eh,{vision:e,designer:i,direction:m})]})}function eb({direction:e,index:i,active:r,onSelect:s}){return(0,t.jsx)(F.motion.div,{...m,transition:{...m.transition,delay:.08*i},children:(0,t.jsxs)("button",{type:"button",onClick:s,"aria-pressed":r,className:`group cine-edge block h-full w-full rounded-[1.6rem] border bg-white/[0.02] p-6 text-left transition ${r?"border-ion/45":"border-white/[0.08] hover:border-white/20"} ${d}`,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[0.62rem] font-medium uppercase tracking-[0.28em] text-ion/70",children:[(0,t.jsx)(ed.Compass,{className:"size-3.5"})," Direction ",i+1]}),(0,t.jsx)("div",{className:"mt-3 font-serif text-2xl font-light leading-snug text-white",children:e.title}),(0,t.jsx)("p",{className:"mt-3 text-[0.78rem] leading-6 text-white/55",children:e.narrative}),(0,t.jsx)("div",{className:"mt-4 grid gap-1.5",children:e.moves.map((e,i)=>(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2 border-b border-white/[0.06] pb-1.5",children:[(0,t.jsxs)("span",{className:"flex items-start gap-1.5 text-[0.72rem] leading-5 text-white/70",children:[e.structural?(0,t.jsx)(ec,{className:"mt-0.5 size-3 shrink-0 text-ion/70"}):(0,t.jsx)("span",{className:"mt-[0.42rem] block size-1 shrink-0 rounded-full bg-white/25"}),e.summary]}),e.structural?(0,t.jsx)(o.BasisChip,{basis:"measured"===e.basis?"measured":"assumed"}):null]},i))}),e.picks.length?(0,t.jsx)("div",{className:"mt-4 grid gap-2",children:e.picks.slice(0,3).map((e,i)=>(0,t.jsxs)("div",{className:"rounded-xl border border-white/[0.07] bg-black/25 px-3 py-2",children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,t.jsx)("span",{className:"truncate text-[0.72rem] font-medium text-white/85",children:e.label}),e.available?(0,t.jsx)("span",{className:"figure-mono shrink-0 text-[0.7rem] text-ion/90",children:function(e){if(!e.available)return"Priced on request";let t=e=>Number.isInteger(e)?`$${e}`:`$${e.toFixed(2)}`;return`${t(e.band_low_usd)}â${t(e.band_high_usd).replace("$","")}/${"linear_feet"===e.unit?"lf":e.unit}`}(e)}):(0,t.jsx)(o.BasisChip,{basis:"request"})]}),(0,t.jsx)("p",{className:"mt-1 text-[0.6rem] leading-4 text-white/35",children:e.source}),e.installed&&e.installed.homes_count>0?(0,t.jsxs)("p",{className:"mt-0.5 text-[0.6rem] leading-4 text-cine-emerald/80",children:["Installed in ",e.installed.homes_count," Patten home",1===e.installed.homes_count?"":"s",e.installed.room_kinds.length?` \xb7 ${e.installed.room_kinds.slice(0,3).join(", ")}`:""]}):null]},i))}):null,(0,t.jsxs)("div",{className:"mt-4 flex items-center justify-between border-t border-white/10 pt-3",children:[(0,t.jsx)("span",{className:"text-[0.62rem] uppercase tracking-[0.2em] text-white/40",children:"First-pass render"}),(0,t.jsxs)("span",{className:"figure-mono text-[0.72rem] text-white/80",children:["~$",e.est_cost_usd.toFixed(2)," · ",e.render_plan.length," step",1===e.render_plan.length?"":"s"]})]}),(0,t.jsx)("p",{className:"mt-2 text-[0.6rem] leading-4 text-white/30",children:e.band_impact_note})]})})}let eg=(0,K.default)("badge-dollar-sign",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8",key:"1h4pet"}],["path",{d:"M12 18V6",key:"zqpxq5"}]]),ef=(0,K.default)("list-checks",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}]]);
1var ev=e.i(3352),ew=e.i(65837),ej=e.i(96064);function ey({vertical:e,selectedDirectionId:i}){let[s,a]=T.useState(""),[l,n]=T.useState(!1),[o,c]=T.useState(null),[m,u]=T.useState(null),[p,h]=T.useState(null),x=T.useCallback(async()=>{if(s.trim()){n(!0),u(null);try{let t=await fetch("/api/vision/site-estimate",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({address:s.trim(),vertical:e})}),i=await t.json();i.ok?c(i):u(i.error||"Could not measure that address.")}catch{u("Lot-measure service unreachable.")}finally{n(!1)}}},[s,e]),b=T.useMemo(()=>o?.directions??[],[o]),g=p??(b.some(e=>e.id===i)?i:b[0]?.id)??null,f=b.find(e=>e.id===g)??null,v=o?.structure,w=v?.footprint_source==="county_record"?"record":"assumed";return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[0.66rem] font-medium uppercase tracking-[0.32em] text-ion/75",children:[(0,t.jsx)(ej.MapPin,{className:"size-4"})," Your lot, measured from above"]}),(0,t.jsxs)("p",{className:"mt-4 text-sm leading-6 text-white/55",children:["An ","exterior"===e?"exterior":"backyard","photo isn't a floorplan â so we don't pretend it is. Enter your address and we measure the real property: the county parcel (lot area + perimeter), the county building record (footprint, stories), and georeferenced aerial imagery."]}),(0,t.jsxs)("div",{className:"mt-4 grid gap-2 sm:grid-cols-[1fr_auto]",children:[(0,t.jsx)("input",{value:s,onChange:e=>a(e.target.value),onKeyDown:e=>{"Enter"===e.key&&x()},placeholder:"123 Main St, Dallas, TX",className:"min-h-10 rounded-full border border-white/12 bg-white/[0.045] px-4 text-sm text-white outline-none placeholder:text-white/28 focus:border-ion/45"}),(0,t.jsxs)("button",{type:"button",onClick:()=>void x(),disabled:l||!s.trim(),className:`inline-flex items-center justify-center gap-2 rounded-full bg-white px-5 py-2.5 text-xs font-semibold text-black transition-transform hover:scale-[1.03] disabled:cursor-not-allowed disabled:opacity-50 ${d}`,children:[l?(0,t.jsx)(q.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(Q.Ruler,{className:"size-3.5"}),"Measure my lot"]})]}),m?(0,t.jsxs)("p",{className:"mt-3 inline-flex items-center gap-1.5 text-xs text-amber-300",children:[(0,t.jsx)(r.AlertTriangle,{className:"size-3.5"})," ",m]}):null,o?(0,t.jsxs)("div",{className:"mt-5",children:[o.formatted?(0,t.jsx)("p",{className:"text-sm font-medium text-white",children:o.formatted}):null,(0,t.jsxs)("div",{className:"mt-3 grid gap-3 md:grid-cols-[0.9fr_1.1fr]",children:[o.aerial?(0,t.jsxs)("figure",{className:"overflow-hidden rounded-2xl border border-white/10 bg-black",children:[(0,t.jsx)("img",{src:o.aerial.image_url,alt:"Measured aerial of your property",className:"aspect-square w-full object-cover"}),(0,t.jsxs)("figcaption",{className:"flex items-center justify-between px-3 py-2 text-[0.58rem] text-white/35",children:[(0,t.jsx)("span",{children:o.aerial.attribution}),(0,t.jsxs)("span",{className:"figure-mono",children:[o.aerial.feet_per_px.toFixed(3)," ft/px"]})]})]}):null,(0,t.jsxs)("div",{className:"cine-grid grid content-start gap-2.5 rounded-2xl border border-white/10 p-4 text-sm",children:[o.lot?.area_sqft?(0,t.jsx)(eN,{label:"Lot area",value:`${o.lot.area_sqft.toLocaleString()} sq ft`,basis:"record"}):null,o.lot?.perimeter_ft?(0,t.jsx)(eN,{label:"Lot perimeter",value:`${o.lot.perimeter_ft.toLocaleString()} lf`,basis:"measured"}):null,v?.footprint_sqft?(0,t.jsx)(eN,{label:"county_record"===v.footprint_source?"Home footprint":"Home footprint (living-area ÷ stories)",value:`${v.footprint_sqft.toLocaleString()} sq ft`,basis:w}):null,v?.roof_area_sqft?(0,t.jsx)(eN,{label:"Roof area (à pitch factor, disclosed per line)",value:`â${v.roof_area_sqft.toLocaleString()} sq ft`,basis:w}):null,v?.wall_area_sqft?(0,t.jsx)(eN,{label:"Wall area (derived, disclosed per line)",value:`â${v.wall_area_sqft.toLocaleString()} sq ft`,basis:w}):null,v?.stories?(0,t.jsx)(eN,{label:"Stories",value:String(v.stories),basis:"record"}):null,v?.open_lot_sqft?(0,t.jsx)(eN,{label:"Open lot (lot â footprint)",value:`${v.open_lot_sqft.toLocaleStr
1ing()} sq ft`,basis:w}):null]})]}),o.measurable&&b.length?(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:b.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>h(e.id),className:`rounded-full border px-3 py-1.5 text-[0.68rem] font-medium transition-colors ${g===e.id?"border-ion/45 bg-ion/[0.1] text-ion":"border-white/12 bg-white/[0.03] text-white/55 hover:text-white"} ${d}`,children:[e.label," · ",(0,t.jsx)("span",{className:"figure-mono",children:j(e.total_low,e.total_high)})]},e.id))}),f?(0,t.jsxs)("div",{className:"mt-3 rounded-2xl border border-white/10 bg-black/25 p-4",children:[(0,t.jsxs)("div",{className:"grid gap-3",children:[f.scopes.map((e,i)=>(0,t.jsxs)("div",{className:"grid gap-1.5 border-b border-white/[0.07] pb-3 sm:grid-cols-[1fr_auto] sm:items-baseline",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm font-medium text-white",children:[e.item," ",(0,t.jsx)(z,{basis:e.basis})]}),(0,t.jsx)("p",{className:"mt-1 text-[0.66rem] leading-relaxed text-white/40",children:e.detail})]}),(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("span",{className:"figure-mono text-sm text-white",children:j(e.low_usd,e.high_usd)}),e.qty>0?(0,t.jsxs)("div",{className:"figure-mono text-[0.62rem] text-white/35",children:[e.qty.toLocaleString()," ",e.unit]}):null]})]},i)),(0,t.jsxs)("div",{className:"flex items-baseline justify-between pt-1",children:[(0,t.jsx)("span",{className:"text-xs text-white/55",children:"Direction band"}),(0,t.jsx)("span",{className:"figure-mono text-base text-white",children:j(f.total_low,f.total_high)})]})]}),(0,t.jsx)("p",{className:"mt-3 text-[0.64rem] leading-relaxed text-white/35",children:f.note})]}):null,o.disclaimer?(0,t.jsx)("p",{className:"mt-3 text-[0.62rem] leading-relaxed text-white/30",children:o.disclaimer}):null]}):(0,t.jsx)("p",{className:"mt-4 rounded-2xl border border-white/10 bg-black/25 p-4 text-xs leading-relaxed text-white/50",children:o.note??"We found your property from above, but the county record can't support a priced band here â never a fabricated one. Lay out your lot in Studio for a measured estimate."})]}):null]})}function eN({label:e,value:i,basis:r}){return(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3 border-b border-white/[0.06] pb-2",children:[(0,t.jsx)("span",{className:"text-[0.62rem] uppercase tracking-[0.16em] text-white/35",children:e}),(0,t.jsxs)("span",{className:"flex flex-wrap items-center justify-end gap-1.5",children:[(0,t.jsx)("span",{className:"figure-mono text-sm text-white/85",children:i}),(0,t.jsx)(z,{basis:r})]})]})}function ek({vision:e}){let i,{data:r,selected:s,selectedUrl:a,surfaceIdx:l,setSurfaceIdx:n,evolvedActive:c,isSite:u,isUnknown:p}=e;return r&&s?(0,t.jsx)(F.motion.section,{...m,className:"rounded-[1.6rem] border border-white/[0.08] bg-white/[0.02] p-6",children:u&&r.vertical?(0,t.jsx)(ey,{vertical:r.vertical,selectedDirectionId:s.id},r.vertical):s.bill&&s.bill.lines.length?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[0.66rem] font-medium uppercase tracking-[0.32em] text-ion/75",children:[(0,t.jsx)(eg,{className:"size-4"})," Priced bill â ",s.label]}),(0,t.jsxs)("div",{className:"mt-5 grid gap-3",children:[s.bill.lines.map((e,i)=>(0,t.jsxs)("div",{className:"grid gap-2 border-b border-white/[0.07] pb-3 sm:grid-cols-[1fr_auto] sm:items-baseline",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"text-sm font-medium text-white",children:[(0,t.jsxs)("span",{className:"mr-2 text-white/35",children:[i+1,"."]}),e.material]}),(0,t.jsxs)("div",{className:"mt-1 text-xs text-white/45",children:[e.item," · ",(0,t.jsxs)("span",{className:"figure-mono",children:[e.qty," ",e.unit]})," ",(0,t.jsx)("span",{className:"ml-1.5 inline-flex align-middle",children:(0,t.jsx)(C,{basis:e.basis})})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 sm:justify-end",children:[e.available?(0,t.jsx)("span",{className:"figure-mono text-sm text-white",children:j(e.low_usd,e.high_usd)}):(0,t.jsx)(o.BasisChip,{basis:"request"}),(0,t.jsxs)("a",{href:N(e.material),target:"_blank",rel:"noreferrer",className:`inline-flex shrink-0 items-center gap-1 rounded-full border border-ion/25 bg-ion/[0.06] px-2.5 py-1 text-[0.64rem] font-medium text-ion transition-colors hover:bg-ion/[0.14] ${d}`,children:[(0,t.jsx)(ev.ShoppingBag,{className:"size-3"})," Shop"]})]})]},i)),(0,t.jsxs)("div",{className:"flex items-baseline justify-between pt-1",children:[(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-white/55",children:[(0,t.jsx)(ef,{className:"size-3.5 text-ion"})," Direction total"]}),(0,t.jsx)("span",{className:"figure-mono text-base text-white",children:j(s.bill.total_low,s.bill.total_high)})]})]}),c?(0,t.jsx)("p",{className:"mt-3 rounded-xl border border-amber-200/15 bg-amber-200/[0.05] p-3 text-[0.66rem] leading-relaxed text-amber-100/75",children:"Evolved look · estimate keeps this design's tier â field-verify."}):null,(0,t.jsx)("p",{className:"mt-3 text-[0.64rem] leading-relaxed text-white/35",children:s.bill.note}),a&&!r.preview?(0,t.jsxs)("div",{className:"mt-5 rounded-[1.3rem] border border-ion/12 bg-black/25 p-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-[0.64rem] font-medium uppercase tracking-[0.24em] text-ion/70",children:"Click-to-shop surfaces"}),(0,t.jsx)("div",{className:"mt-1 text-[0.66rem] leading-5 text-white/40",children:"Each dot ties to a real measured bill line. Dot placement is approximate â not a pixel segmentation."})]}),(0,t.jsx)(ev.ShoppingBag,{className:"size-4 shrink-0 text-ion/70"})]}),(0,t.jsxs)("div",{className:"relative mt-3 aspect-[4/3] overflow-hidden rounded-2xl border border-white/10 bg-black",children:[(0,t.jsx)("img",{src:a,alt:`${s.label} surfaces`,className:"size-full object-cover opacity-90"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-black/35 via-trans
1parent to-black/10"}),s.bill.lines.slice(0,v.length).map((e,i)=>(0,t.jsx)("button",{type:"button",style:{top:v[i].top,left:v[i].left},onClick:()=>n(l===i?null:i),className:`absolute grid size-7 -translate-x-1/2 -translate-y-1/2 place-items-center rounded-full border text-[0.64rem] font-semibold shadow-lg transition ${l===i?"scale-110 border-ion bg-ion text-black":"border-white/60 bg-black/55 text-white hover:bg-black/80"} ${d}`,"aria-label":`Shop surface ${i+1}`,children:i+1},i))]}),null!==l&&s.bill.lines[l]?(i=s.bill.lines[l],(0,t.jsxs)("div",{className:"mt-3 flex items-center justify-between gap-3 rounded-xl border border-ion/15 bg-ion/[0.04] px-3 py-2.5",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("p",{className:"truncate text-[0.74rem] font-medium text-white/90",children:[l+1,". ",i.material]}),(0,t.jsxs)("p",{className:"text-[0.62rem] text-white/50",children:[(0,t.jsxs)("span",{className:"figure-mono",children:[i.qty," ",i.unit]})," · ",i.available?(0,t.jsx)("span",{className:"figure-mono",children:j(i.low_usd,i.high_usd)}):"priced on request"]})]}),(0,t.jsxs)("a",{href:N(i.material),target:"_blank",rel:"noreferrer",className:`inline-flex shrink-0 items-center gap-1 rounded-full border border-ion/30 bg-ion/[0.08] px-3 py-1.5 text-[0.66rem] font-medium text-ion transition-colors hover:bg-ion/[0.15] ${d}`,children:[(0,t.jsx)(ev.ShoppingBag,{className:"size-3"})," Shop"]})]})):null]}):null]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[0.66rem] font-medium uppercase tracking-[0.32em] text-ion/75",children:[(0,t.jsx)(ew.Sparkles,{className:"size-4"})," ",s.label]}),(0,t.jsx)("p",{className:"mt-4 text-sm leading-6 text-white/55",children:p?"We couldn't confidently identify this space, so there's no measurement or bill â never a guessed one. Pick the right space above, or refine it in Studio.":"This direction is render-only right now â no fabricated numbers. Pricing appears once the space is measured."})]})}):null}var e_=e.i(96806),e$=e.i(51326),eS=e.i(5714),eC=e.i(3673);let ez="focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40";function eT(e){let[i,r]=T.useState(null),s=T.useCallback(t=>{i||(r(t),B({event_type:"up"===t?"feedback_up":"feedback_down",source_app:"render-studio",...e.packageId?{package_id:e.packageId}:{},...e.spaceType&&"unknown"!==e.spaceType?{space_type:e.spaceType}:{},meta:{direction_id:e.directionId,...e.url?{render_url:e.url}:{}}}))},[i,e.packageId,e.directionId,e.spaceType,e.url]);return(0,t.jsxs)("div",{className:"flex items-center gap-2","data-testid":"render-feedback",children:[(0,t.jsx)("span",{className:"text-[0.6rem] uppercase tracking-[0.2em] text-white/30",children:"This render"}),(0,t.jsx)("button",{type:"button","aria-label":"Good render","aria-pressed":"up"===i,disabled:null!==i,onClick:()=>s("up"),className:`inline-flex items-center gap-1 rounded-full border px-2.5 py-1 text-[0.64rem] transition-colors disabled:cursor-default ${"up"===i?"border-emerald-400/40 bg-emerald-500/[0.08] text-emerald-200":"border-white/12 bg-white/[0.03] text-white/50 hover:border-white/30 hover:text-white/80 disabled:opacity-40"} ${ez}`,children:(0,t.jsx)(eC.ThumbsUp,{className:"size-3"})}),(0,t.jsx)("button",{type:"button","aria-label":"Not this render","aria-pressed":"down"===i,disabled:null!==i,onClick:()=>s("down"),className:`inline-flex items-center gap-1 rounded-full border px-2.5 py-1 text-[0.64rem] transition-colors disabled:cursor-default ${"down"===i?"border-rose-400/40 bg-rose-500/[0.08] text-rose-200":"border-white/12 bg-white/[0.03] text-white/50 hover:border-white/30 hover:text-white/80 disabled:opacity-40"} ${ez}`,children:(0,t.jsx)(eS.ThumbsDown,{className:"size-3"})}),i?(0,t.jsx)("span",{className:"text-[0.62rem] text-white/40",children:"Noted â the designer learns from this."}):null]})}function eR({vision:e}){let{data:r,selected:a,selectedUrl:l,selectedVersions:n,activeVer:o,setActiveVer:u,evolvedActive:p,evolve:h,evolving:b,evolvingReaction:g,evolveNote:f,realize:v,seeding:w,makeProposal:y,isSite:N}=e;return r&&a?(0,t.jsxs)(F.motion.section,{...m,className:"rounded-[1.6rem] border border-white/[0.08] bg-white/[0.02] p-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[0.66rem] font-medium uppercase tracking-[0.32em] text-ion/75",children:[(0,t.jsx)(ew.Sparkles,{className:"size-4"})," What happens next"]}),(0,t.jsxs)("div",{className:"mt-5 space-y-4 text-sm leading-6 text-white/55",children:[(0,t.jsxs)("div",{className:"rounded-2xl border border-white/10 bg-black/25 p-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-white",children:[(0,t.jsx)(ew.Sparkles,{className:"size-4 text-ion"})," Tap to evolve this render."]}),(0,t.jsx)("p",{className:"mt-2 text-xs leading-5 text-white/45",children:l&&!r.preview?"One reaction makes it warmer, darker, lighter, or more modern â no typing.":"Run the render first â evolution needs a real rendered image, not a preview."}),(0,t.jsx)("div",{className:"mt-4 flex flex-wrap gap-2",children:x.map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>l&&void h(a.id,l,e.id),disabled:!l||!!r.preview||null!==b,className:`rounded-full border border-ion/20 bg-ion/[0.06] px-3 py-2 text-[0.66rem] font-medium uppercase tracking-[0.12em] text-ion transition-colors hover:bg-ion/[0.13] disabled:cursor-not-allowed disabled:opacity-35 ${d}`,children:b===a.id&&g===e.id?"Evolvingâ¦":e.label},e.id))}),f?(0,t.jsx)("div",{className:"mt-3 text-xs leading-5 text-ion/90",children:f}):null,l&&!r.preview?(0,t.jsx)("div",{className:"mt-4 border-t border-white/[0.07] pt-3",children:(0,t.jsx)(eT,{packageId:r.package_id,directionId:a.id,spaceType:r.vertical,url:l})}):null,n.length?(0,t.jsxs)("div",{className:"mt-4 rounded-2xl border border-white/10 bg-black/20 p-3",children:[(0,t.jsx)("div",{className:"text-[0.62rem] font-medium uppercase tracking-[0.2em] text-white/40",children:"Version history"}),(0,t.jsx)("div",{className:"mt-3 flex flex-wrap gap-2",children:n.map((e,i)=>{let r=Math.min(o[a.id]??n.length-1,n.length-1);return(0,t.jsxs)("button",{type:"button",onClick:()=>u(e=>({...e,[a.id]:i})),className:`rounded-full border px-3 py-1.5 text-[0.66rem] font-medium uppercase tracking-[0.1em] transition-colors ${i===r?"border-ion/50 bg-ion/[0.12] text-ion":"border-white/12 bg-white/[0.04] text-white/45 hover:text-white/75"} ${d}`,children:[i+1,". ",e.label]},`${e.url}-${i}`)})}),p?(0,t.jsx)("p",{className:"mt-2.5 text-[0.6rem] leading-relaxed text-white/30",children:"Evolved look · estimate keeps this design's tier â field-verify."}):null]}):null]}),r.document&&r.package_id?(0,t.jsx)(en.CineGradient,{variant:"ceremony",animate:"ready"===v.status,containerClassName:"rounded-[1.15rem]",className:"rounded-2xl",children:(0,t.jsxs)("div",{className:`rounded-2xl border bg-[#0b0a08] p-4 ${"ready"===v.status?"border-cine-gold/30 glow-cine-gold":"border-white/10"}`,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-white",children:[(0,t.jsx)(e$.FileSignature,{className:"size-4 text-cine-gold"})," Make it real."]}),(0,t.jsx)("p",{className:"mt-2 text-xs leading-5 text-white/45",children:"The measured plan behind this vision seeds a signable, plan-bound proposal â the same geometry, cryptographically bound into the contract."}),"ready"!==v.status?(0,t.jsxs)("button",{type:"button",onClick:()=>void y(a.id),disabled:w,className:`mt-4 inline-flex w-full items-center justify-center gap-2 rounded-full border border-cine-gold/30 bg-cine-gold/[0.08] px-4 py-2.5 text-[0.7rem] font-semibold uppercase tracking-[0.16em] text-cine-gold transition-colors hover:bg-cine-gold/[0.16] disabled:cursor-wait disabled:opacity-55 ${c}`,children:[w?(0,t.jsx)(q.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(e$.FileSignature,{className:"size-3.5"}),w?"Building your contractâ¦":"Make it a signable proposal"]}):(0,t.jsxs)("div",{className:"mt-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium text-cine-gold",children:[(0,t.jsx)(e_.CheckCircle2,{className:"size-4"})," Proposal package created"]}),(0,t.jsxs)("div",{className:"mt-1.5 text-xs leading-5 text-white/55",children:[(0,t.jsx)("span",{className:"figure-mono",children:v.line_count})," line bill","number"==typeof v.total_low&&"number"==typeof v.total_high?(0,t.jsxs)(t.Fragment,{children:[" ","· ",(0,t.jsx)("span",{className:"figure-mono",children:j(v.total_low,v.total_high)})]}):null]}),(0,t.jsxs)("div",{className:"mt-3.5 flex flex-wrap gap-2",children:[(0,t.jsx)(i.default,{href:v.proposal_url,className:`rounded-full bg-white px-4 py-2 text-[0.68rem] font-semibold uppercase tracking-[0.14em] text-black transition hover:scale-[1.03] ${c}`,children:"Contract"}),(0,t.jsx)(i.default,{href:`${v.proposal_url}/pdf`,className:`rounded-full border border-white/16 px-4 py-2 text-[0.68rem] font-semibold uppercase tracking-[0.14em] text-white/75 transition-colors hover:border-white/35 hover:text-white ${c}`,children:"PDF"})]})]}),"failed"===v.status?(0,t.jsx)("div",{className:"mt-3 text-xs leading-5 text-rose-200/80",children:v.error}):null]})}):null,r.package_id?(0,t.jsxs)(i.default,{href:`/studio?v=${encodeURIComponent(r.package_id)}`,className:`inline-flex w-full items-center justify-center gap-2 rounded-full border border-white/15 bg-white/[0.03] px-4 py-2.5 text-[0.7rem] font-semibold uppercase tracking-[0.16em] text-white/75 backdrop-blur-md transition-colors hover:border-white/30 hover:text-white ${d}`,children:["Open in Studio ",(0,t.jsx)(s.ArrowRight,{className:"size-3.5"})]}):null,N?(0,t.jsxs)("div",{className:"rounded-2xl border border-white/10 bg-black/25 p-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-white",children:[(0,t.jsx)(ej.MapPin,{className:"size-4 text-ion"})," Measured from above."]}),(0,t.jsx)("p",{className:"mt-2 text-xs leading-5 text-white/45",children:"Exterior & landscape projects are scoped from your real lot â the county parcel + building record and georeferenced imagery â never from a room measurement. Enter your address in the panel to the left."})]}):null]})]}):null}function eL({vision:e}){let{data:i,progress:r}=e;if(!i||!r)return null;let s=r.measured?r.priced?r.rendered?r.signed?null:"Next · make it a signable proposal â the gold card below":"Next · see it rendered (~$0.36) â the one paid step":"Next · pricing needs a measured, classified space":e.isSite?"Next · measure your lot from above (address panel below)":"Next · this space carries no confident measure â try another photo or refine in Studio";return(0,t.jsxs)("div",{className:"mx-auto mt-8 max-w-3xl px-6",children:[(0,t.jsx)(n.ProgressSpine,{current:r.current,complete:r.complete}),s?(0,t.jsx)("p",{className:"figure-mono mt-3 text-center text-[0.6rem] uppercase tracking-[0.24em] text-white/35","aria-label":`Progress: ${n.SPINE_STAGES.join(" â ")}`,children:s}):null]})}e.s(["InstantVisionExperience",0,function(){let e=function(){let e=T.useRef(null),t=T.useRef(null),[i,r]=T.useState(null),[s,a]=T.useState(null),[l,n]=T.useState(0),[o,d]=T.useState(null),[c,m]=T.useState(null),[x,b]=T.useState(null),[g,f]=T.useState(null),[v,N]=T.useState(!1),[k,S]=T.useState(null),C=(0,P.usePrefers
1ReducedMotion)(),z=function(e){let{reduced:t,busy:i,stage:r}=e,[s,a]=T.useState([]),[l,n]=T.useState(!1),o=T.useRef(0),d=T.useRef(null),c=T.useCallback((e,t)=>{o.current+=1,a(i=>[...i,{id:`t${o.current}`,kind:e,text:t}])},[]),m=T.useCallback(e=>{a(e.map(([e,t])=>(o.current+=1,{id:`t${o.current}`,kind:e,text:t})))},[]);T.useEffect(()=>()=>{null!==d.current&&window.clearTimeout(d.current)},[]);let u=T.useRef(-1);T.useEffect(()=>{if(!i||t){u.current=-1;return}let e="preview"===i?p:h;r<e.length&&r>u.current&&(u.current=r,c("out",e[r]))},[i,r,t,c]);let x=T.useCallback(e=>{e.vertical&&"unknown"!==e.vertical?c("ok",`â space recognized \xb7 ${(e.vertical_label??e.vertical).toLowerCase()}`):c("warn","â space not confidently classified · render-only, no fabricated bill");let t=e.room;if(t&&t.measured){c("ok",`â measured ${w(t.width_ft)} \xd7 ${w(t.depth_ft)}${t.area_ft2?` \xb7 ${t.area_ft2} ft\xb2`:""}`);let e=t.confidence_axes;e&&("number"==typeof e.width||"number"==typeof e.depth)&&c("dim",` per-axis confidence W ${y(e.width)} \xb7 D ${y(e.depth)}`)}else e.site?c("out","â exterior scope: measured from your lot record, not a room guess"):c("out","â no confident room measurement · nothing invented");e.budget&&e.budget.total_high>0&&c("ok",`â priced ${j(e.budget.total_low,e.budget.total_high)} \xb7 ${"live-db"===e.budget.source?"live Patten DB":e.budget.source}`),e.budget&&e.budget.priced_on_request>0&&c("dim",` ${e.budget.priced_on_request} line${1===e.budget.priced_on_request?"":"s"} priced on request â never $0`),e.visions?.length&&c("ok",`â ${e.visions.length} directions composed${e.preview?" · free preview":""}`),"number"==typeof e.latency_ms&&c("dim",`${(e.latency_ms/1e3).toFixed(1)}s${"number"==typeof e.cost_cents?` \xb7 $${(e.cost_cents/100).toFixed(2)}`:""}`)},[c]),b=T.useCallback(e=>{let t=e.visions??[],i=t.filter(e=>e.render_url).length;i&&c("ok",`â ${i} direction${1===i?"":"s"} rendered`);let r=t.filter(e=>e.verified?.ok&&e.verified.change_applied&&!e.verified.drift).length;r&&c("ok",`â ${r} self-verified \xb7 geometry held`);let s=t.filter(e=>e.verified?.ok&&e.verified.drift).length;s&&c("warn",`â ${s} flagged drift â shown, never hidden`);let a=t.filter(e=>e.mocked).length;a&&c("warn",`â ${a} mocked (no render key) â disclosed`),"number"==typeof e.latency_ms&&c("dim",`${(e.latency_ms/1e3).toFixed(1)}s${"number"==typeof e.cost_cents?` \xb7 $${(e.cost_cents/100).toFixed(2)}`:""}`)},[c]);return{termLines:s,settling:l,pushTerm:c,seedTerm:m,pushPreviewSummary:x,pushRenderSummary:b,beginSettle:T.useCallback(()=>{n(!0),null!==d.current&&window.clearTimeout(d.current),d.current=window.setTimeout(()=>n(!1),2100)},[]),stopSettle:T.useCallback(()=>n(!1),[])}}({reduced:C,busy:s,stage:l}),R=function(e){let{data:t,setData:i,setErr:r}=e,[s,a]=T.useState(null),[l,n]=T.useState(null),[o,d]=T.useState(!1),[c,m]=T.useState(!1),[u,p]=T.useState(""),[h,x]=T.useState(!1),[b,g]=T.useState({status:"idle"}),[f,v]=T.useState(null),[w,j]=T.useState(null),[y,N]=T.useState(null),[k,$]=T.useState({}),[S,C]=T.useState({}),z=`${t?.package_id??""}|${t?.vertical??""}`,[R,L]=T.useState(z);if(R!==z){L(z);let e={},i={};for(let r of t?.visions??[]){let t=[];r.render_url&&t.push({label:"Original render",url:r.render_url,source:"initial-render"}),r.evolved_url&&t.push({label:"Evolved",url:r.evolved_url,source:"tap-to-evolve"}),t.length&&(e[r.id]=t,i[r.id]=t.length-1)}$(e),C(i),n(null),a(null)}let M=T.useCallback(async(e,s)=>{if(t?.document){m(!0),r(null);try{let a={document:t.document,package_id:t.package_id,writer_token:_(t.package_id),vertical:t.vertical};if(s.ruler&&t.reconciliation?.ruler)a["width"===e?"width_in":"depth_in"]=t.reconciliation.ruler.wall_length_in,a.source="auto_ruler",a.ruler={...t.reconciliation.ruler,reliable:!0};else{if(!s.input)return void m(!1);a["width"===e?"width_input":"depth_input"]=s.input,a.source="human"}let l=await fetch("/api/vision/calibrate",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(a)}),n=await l.json();if(!n.ok||!n.document)return void r(n.error||"Couldn't calibrate â check the measurement.");i(e=>{if(!e)return e;let t=new Map((n.directions??[]).map(e=>[e.id,e])),i=(e.visions??[]).map(e=>{let i=t.get(e.id);return i?{...e,tier_band:i.tier_band,bill:i.bill}:e});return{...e,document:n.document,room:n.room??e.room,budget:n.budget??e.budget,reconciliation:null,visions:i}}),p("")}catch{r("Calibration service unreachable.")}finally{m(!1)}}},[t,i,r]),P=T.useCallback(async()=>{try{await navigator.clipboard.writeText(window.location.href),d(!0),window.setTimeout(()=>d(!1),1800),B({event_type:"shared",source_app:"render-studio",package_id:t?.package_id,...t?.vertical&&"unknown"!==t.vertical?{space_type:t.vertical}:{}})}catch{}},[t]),q=T.useCallback(async e=>{if(t?.document&&t?.package_id){x(!0),g({status:"working"}),r(null);try{let i=await fetch("/api/vision/proposal",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({package_id:t.package_id,direction_id:e,writer_token:_(t.package_id)})}),r=await i.json();r.ok&&r.proposal_url?g({status:"ready",proposal_url:r.proposal_url,line_count:r.line_count??0,total_low:r.total_low??null,total_high:r.total_high??null}):g({status:"failed",error:r.error||"Could not create the proposal."})}catch{g({status:"failed",error:"Proposal service unreachable."})}finally{x(!1)}}},[t,r]),I=T.useCallback(async(e,i,s)=>{v(e),j(s),r(null),N(null);try{let a=await fetch("/api/vision/evolve",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({source_image_url:i,reaction:s,package_id:t?.package_id,direction_id:e,writer_token:_(t?.package_id)})}),l=await a.json();if(l.ok&&l.evolved_url){let i=l.evolved_url,r=l.reaction_label??s;$(s=>{let a=[...s[e]??(t?.visions?.find(t=>
1t.id===e)?.render_url?[{label:"Original render",url:t.visions.find(t=>t.id===e).render_url,source:"initial-render"}]:[]),{label:r,url:i,source:"tap-to-evolve"}];return C(t=>({...t,[e]:a.length-1})),{...s,[e]:a}}),N(`Updated with ${r}${"number"==typeof l.cost_cents?` \xb7 $${(l.cost_cents/100).toFixed(2)}`:""}`)}else r(l.error||"Couldn't evolve â try again.")}catch{r("Evolve service unreachable.")}finally{v(null),j(null)}},[t,r]),D=T.useMemo(()=>t?.visions??[],[t]),O=T.useMemo(()=>D.length?D.find(e=>e.id===s)??D.find(e=>e.render_url)??D[0]:null,[D,s]),F=T.useCallback(e=>{let t=k[e.id];return t?.length?t[Math.min(S[e.id]??t.length-1,t.length-1)].url:e.render_url},[k,S]),A=O?F(O):null,E=O?k[O.id]??[]:[],U=E.length>0&&E[Math.min(S[O?.id??""]??E.length-1,E.length-1)]?.source==="tap-to-evolve";return{selectedId:s,setSelectedId:a,surfaceIdx:l,setSurfaceIdx:n,copied:o,calibrating:c,calInput:u,setCalInput:p,seeding:h,realize:b,evolving:f,evolvingReaction:w,evolveNote:y,history:k,activeVer:S,setActiveVer:C,calibrate:M,copyLink:P,makeProposal:q,evolve:I,visions:D,selected:O,shownUrl:F,selectedUrl:A,selectedVersions:E,evolvedActive:U,resetRealize:T.useCallback(()=>{g({status:"idle"}),N(null)},[])}}({data:o,setData:d,setErr:m}),{seedTerm:L,pushTerm:M,pushPreviewSummary:q,pushRenderSummary:I,beginSettle:D,stopSettle:O}=z,{resetRealize:F}=R;T.useEffect(()=>{if(!s)return;let e=setInterval(()=>n(e=>Math.min(e+1,u.length-1)),5500);return()=>clearInterval(e)},[s]);let A=T.useCallback((e,i=120)=>{if(d(e),F(),e.package_id){try{window.history.replaceState(null,"",`/vision?v=${e.package_id}`),window.localStorage.setItem("cortivex:last-vision",e.package_id),e.writer_token&&window.localStorage.setItem(`cortivex:vwrite:${e.package_id}`,e.writer_token),f(e.package_id)}catch{}(e.visions??[]).some(e=>e.render_url)&&B({event_type:"kept",source_app:"render-studio",package_id:e.package_id,...e.vertical&&"unknown"!==e.vertical?{space_type:e.vertical}:{},meta:{rendered:e.rendered??0}})}window.setTimeout(()=>t.current?.scrollIntoView({behavior:"smooth",block:"start"}),i)},[F]),E=T.useCallback(e=>{C?A(e):(D(),A(e,1300))},[C,A,D]),U=T.useCallback(async e=>{N(!0),m(null);try{let i=await fetch(`/api/vision/package/${encodeURIComponent(e)}`),r=await i.json();r.ok&&r.package&&(d({...r.package,ok:!0}),F(),r.package.source_image_url&&b(r.package.source_image_url),f(e),window.setTimeout(()=>t.current?.scrollIntoView({behavior:"auto",block:"start"}),120))}catch{}finally{N(!1)}},[F]);T.useEffect(()=>{let e=window.setTimeout(()=>{try{let e=new URLSearchParams(window.location.search).get("v");if(e)return void U(e);let t=window.localStorage.getItem("cortivex:last-vision");t&&f(t)}catch{}},0);return()=>window.clearTimeout(e)},[U]),T.useEffect(()=>()=>{x&&x.startsWith("blob:")&&URL.revokeObjectURL(x)},[x]);let V=T.useCallback(async e=>{if(n(0),a("preview"),m(null),d(null),O(),F(),r(e),b(URL.createObjectURL(e)),!C){let t=e.name.length>42?`${e.name.slice(0,39)}â¦`:e.name;L([["cmd",`vizhaus vision --instant "${t}"`],["out",`â uploading photo (${(e.size/1048576).toFixed(1)} MB)â¦`]])}try{let t=new FormData;t.append("photo",e,e.name);let i=await fetch("/api/vision/instant",{method:"POST",body:t}),r=await i.json();if(r.ok)C||q(r),E(r);else{let e=r.error||"Could not design your space â try another photo.";C||M("err",`â ${e}`),m(e)}}catch{C||M("err","â vision service unreachable"),m("Vision service unreachable. Is the app running?")}finally{a(null)}},[C,L,M,q,E,O,F]),W=T.useCallback(async()=>{try{let e=await $();await V(e)}catch{m("Could not load the sample photo.")}},[V]),H=T.useCallback(async()=>{let e=o?.source_image_url;if(e){n(0),a("render"),m(null),O(),C||L([["cmd",`vizhaus render --package ${o?.package_id??"current"} --directions 3`],["out","â explicit spend approved (~$0.36) · generating photoreal rendersâ¦"]]);try{let t=await fetch("/api/vision/instant",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({source_image_url:e,render:!0,vertical:o?.vertical,package_id:o?.package_id,writer_token:_(o?.package_id)})}),i=await t.json();if(i.ok)C||I(i),E(i);else{let e=i.error||"Render failed â try again.";C||M("err",`â ${e}`),m(e)}}catch{C||M("err","â render service unreachable"),m("Render service unreachable.")}finally{a(null)}}},[o,C,L,M,I,E,O]),J=T.useCallback(async e=>
1{let t=o?.source_image_url;if(t&&e!==o?.vertical){S(e),m(null);try{let i=await fetch("/api/vision/instant",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({source_image_url:t,vertical:e,package_id:o?.package_id,writer_token:_(o?.package_id)})}),r=await i.json();r.ok?A(r):m(r.error||"Couldn't switch â try again.")}catch{m("Vision service unreachable.")}finally{S(null)}}},[o,A]),G=T.useCallback(e=>{e&&!s&&V(e)},[V,s]),K=T.useCallback(()=>{d(null),m(null),b(null),r(null),F();try{window.history.replaceState(null,"","/vision")}catch{}e.current?.click()},[F]),Y=T.useCallback(()=>e.current?.click(),[]),X=o?.room&&o.room.measured?o.room:null,Z=o?.site===!0,Q=o?.vertical==="unknown",ee=o?.reconciliation??null,et=T.useMemo(()=>{if(!o?.ok)return null;let e=!!(o.room&&o.room.measured),t=!!(o.budget&&o.budget.total_high>0)||(o.visions??[]).some(e=>null!==e.tier_band||e.bill&&e.bill.lines.length>0),i=(o.visions??[]).some(e=>!!e.render_url),r=!!o.cert_ref;return{current:e?t?i?"signed":"rendered":"priced":"measured",complete:r,measured:e,priced:t,rendered:i,signed:r}},[o]);return{inputRef:e,resultRef:t,file:i,busy:s,stage:l,data:o,err:c,beforeUrl:x,lastId:g,restoring:v,switching:k,reduced:C,termLines:z.termLines,settling:z.settling,...R,run:V,runSample:W,renderNow:H,reclassify:J,onPick:G,reset:K,restore:U,openPicker:Y,setData:d,room:X,isSite:Z,isUnknown:Q,reconciliation:ee,progress:et}}(),n=function(e){let{packageId:t,vertical:i,ok:r}=e,[s,a]=T.useState("idle"),[l,n]=T.useState([]),[o,d]=T.useState(null),[c,m]=T.useState(null),u=T.useRef(null);T.useEffect(()=>{if(!r||!t||!i||"unknown"===i||u.current===t)return;u.current=t;let e=new AbortController,s=window.setTimeout(async()=>{a("loading");try{let i=await fetch("/api/design/directions",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({package_id:t}),signal:e.signal}),r=await i.json();r.ok&&Array.isArray(r.directions)&&r.directions.length>0?(n(r.directions),d(r.catalog?.note??null),m(r.catalog?.status??null),a("ready")):a("degraded")}catch{e.signal.aborted||a("degraded")}},0);return()=>{window.clearTimeout(s),e.abort()}},[r,t,i]);let[p,h]=T.useState({status:"idle"}),[x,b]=T.useState([]),g=T.useRef(0),f=T.useCallback((e,t)=>{g.current+=1,b(i=>[...i,{id:`fp${g.current}`,kind:e,text:t}])},[]);return{status:s,directions:l,catalogNote:o,catalogStatus:c,firstPass:p,fpLines:x,runFirstPass:T.useCallback(async e=>{if(t){h({status:"running",direction_id:e.id}),g.current+=1,b([{id:`fp${g.current+=1}`,kind:"cmd",text:`vizhaus first-pass --direction ${e.id} --steps ${e.render_plan.length}`},{id:`fp${g.current+=1}`,kind:"out",text:`â explicit spend approved (~$${e.est_cost_usd.toFixed(2)}) \xb7 one change per render, judge-verifiedâ¦`}]);try{let i=await fetch("/api/design/first-pass",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({package_id:t,direction_id:e.id,writer_token:_(t)})}),r=await i.json();if(!r.ok){let t=r.error||"First pass failed â nothing rendered.";f("err",`â ${t}`),h({status:"failed",direction_id:e.id,error:t});return}for(let e of r.steps??[]){if(!e.image_url){f("warn",`â step ${e.order} ${e.move_kind} â ${e.note??"did not render"}`);continue}let t=e.verdict;t&&t.ok&&t.change_applied&&!t.drift?f("ok",`â step ${e.order} ${e.move_kind} â geometry held${e.retried?" · after one judge-driven retry":""} (conf ${Math.round(100*t.confidence)}%)`):t&&t.ok?f("warn",`â step ${e.order} ${e.move_kind} â accepted with disclosure: ${t.note}`):f("out",`â step ${e.order} ${e.move_kind} â rendered${t?` \xb7 verifier unavailable (${t.note})`:""}`)}for(let e of r.honest_notes??[])f("dim",` ${e}`);f("ok",`â first pass complete \xb7 ${r.executed_steps??0}/${r.planned_steps??0} steps \xb7 ~$${(r.total_cost_est??0).toFixed(2)}`),h({status:"done",direction_id:e.id,resp:r})}catch{f("err","â first-pass service unreachable"),h({status:"failed",direction_id:e.id,error:"First-pass service unreachable."})}}},[t,f]),resetFirstPass:T.useCallback(()=>{h({status:"idle"}),b([])},[])}}({packageId:e.data?.package_id,vertical:e.data?.vertical,ok:!!e.data?.ok}
1),{data:o,busy:c,err:m,resultRef:x,selected:b,reset:g}=e;return(0,t.jsxs)("main",{className:"relative isolate min-h-dvh overflow-clip cine-bg text-cine-ivory",children:[(0,t.jsx)("div",{className:"cine-grain"}),(0,t.jsx)(V,{vision:e}),o||c?null:(0,t.jsx)(J,{}),o?(0,t.jsxs)("section",{ref:x,className:"relative z-10 border-t border-white/[0.07] px-5 pb-16 sm:px-8",children:[(0,t.jsx)(l.Lamp,{size:"md",title:"It sees your space.",sub:"Measured, priced, provable â every number below carries its basis."}),(0,t.jsx)(eL,{vision:e}),(0,t.jsxs)("div",{className:"mx-auto mt-6 max-w-7xl",children:[m?(0,t.jsxs)("div",{className:"mb-6 rounded-2xl border border-amber-300/20 bg-amber-500/10 p-4 text-sm text-amber-100",children:[(0,t.jsx)(r.AlertTriangle,{className:"mr-1.5 inline size-4"})," ",m]}):null,(0,t.jsxs)("div",{className:"grid gap-5 lg:grid-cols-[0.8fr_1.2fr]",children:[(0,t.jsx)(el,{vision:e}),(0,t.jsx)(eo,{vision:e})]}),(0,t.jsx)(ex,{vision:e,designer:n}),b?(0,t.jsxs)("div",{className:"mt-5 grid gap-5 lg:grid-cols-[1.15fr_0.85fr]",children:[(0,t.jsx)(ek,{vision:e}),(0,t.jsx)(eR,{vision:e})]}):null,(0,t.jsxs)("p",{className:"mt-8 text-center text-[0.7rem] leading-relaxed text-white/30",children:[o.note??"Concept renderings + an AI measurement. Dimensions and pricing are approximate â field-verify before contracting.","number"==typeof o.cost_cents&&o.latency_ms?` \xb7 ${Math.round(o.latency_ms/1e3)}s`:""]}),(0,t.jsxs)("div",{className:"mt-8 flex items-center justify-center gap-3",children:[(0,t.jsxs)("button",{type:"button",onClick:g,className:`inline-flex items-center gap-2 rounded-full border border-white/15 bg-white/[0.03] px-5 py-2.5 text-xs font-medium text-white/80 backdrop-blur-md transition-colors hover:border-white/30 hover:text-white ${d}`,children:[(0,t.jsx)(a.ImageUp,{className:"size-3.5"})," Try another space"]}),(0,t.jsxs)(i.default,{href:o.package_id?`/studio?v=${encodeURIComponent(o.package_id)}`:"/studio",className:`inline-flex items-center gap-2 rounded-full bg-white px-5 py-2.5 text-xs font-semibold text-black transition-transform hover:scale-[1.04] ${d}`,children:["Open in Studio ",(0,t.jsx)(s.ArrowRight,{className:"size-3.5"})]})]})]})]}):null,(0,t.jsx)("section",{className:"relative z-10 border-t border-white/[0.07] px-5 py-14 text-center sm:px-8",children:(0,t.jsxs)("p",{className:"mx-auto max-w-2xl text-[0.78rem] leading-6 text-white/40",children:[(0,t.jsx)("span",{className:"figure-mono mr-2 text-[0.62rem] uppercase tracking-[0.32em] text-ion/60",children:"Halo"}),"Hands-free capture is premiering on the landing film â glasses are private beta; the capture â measured plan â cast loop is real today."," ",(0,t.jsx)(i.default,{href:"/#halo",className:`text-white/70 underline decoration-white/25 underline-offset-4 transition-colors hover:text-white ${d}`,children:"See the premiere"})]})})]})}],81867)}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.