1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,78992,e=>{"use strict";var t=e.i(79968),i=e.i(12086),n=e.i(65143),a=e.i(94179);e.s(["default",0,function(){let e=(0,n.useReducedMotion)();return(0,t.jsx)("section",{className:"mx-auto max-w-[1200px] px-6 pt-16 pb-16 md:pt-24 md:pb-20",children:(0,t.jsxs)(i.motion.div,{initial:!e&&{opacity:0,y:24},animate:e?void 0:{opacity:1,y:0},transition:{duration:.7,ease:[.21,1,.21,1]},className:"max-w-3xl",children:[(0,t.jsx)(a.Badge,{variant:"secondary",className:"text-mono-label",children:"Methodology"}),(0,t.jsx)("h1",{className:"mt-6 text-[40px] font-semibold leading-[1.05] tracking-[-0.04em] text-foreground md:text-[56px] md:tracking-[-0.05em]",children:"AI on a leash, by design."}),(0,t.jsx)("p",{className:"mt-6 text-lg leading-[1.6] text-muted-foreground md:text-xl",children:"Looper treats AI as a junior assistant, not an oracle. Every assessment runs inside a deterministic workflow â engineered gates, mandatory checkpoints, source-tagged data, full audit trail."})]})})}])},18391,e=>{"use strict";var t=e.i(33721);let i=(0,t.default)("gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);var n=e.i(89550),n=n;let a=(0,t.default)("ruler",[["path",{d:"M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z",key:"icamh8"}],["path",{d:"m14.5 12.5 2-2",key:"inckbg"}],["path",{d:"m11.5 9.5 2-2",key:"fmmyf7"}],["path",{d:"m8.5 6.5 2-2",key:"vc6u1g"}],["path",{d:"m17.5 15.5 2-2",key:"wo5hmg"}]]);var r=e.i(37108);let o=(0,t.default)("coins",[["path",{d:"M13.744 17.736a6 6 0 1 1-7.48-7.48",key:"bq4yh3"}],["path",{d:"M15 6h1v4",key:"11y1tn"}],["path",{d:"m6.134 14.768.866-.5 2 3.464",key:"17snzx"}],["circle",{cx:"16",cy:"8",r:"6",key:"14bfc9"}]]),s=(0,t.default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]),l=(0,t.default)("circle-stop",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["rect",{x:"9",y:"9",width:"6",height:"6",rx:"1",key:"1ssd4o"}]]),d=(0,t.default)("history",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]),c=(0,t.default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);var u=e.i(9293),m=e.i(2739),p=e.i(69136),h=e.i(30858);let g=[{id:"phase-gates",title:"Phase gates",description:"Mandatory STOP points where the user reviews and confirms before the assistant proceeds. The agent cannot skip ahead.",icon:l},{id:"quality-thresholds",title:"Quality thresholds",description:"Numeric guardrails (e.g. â¥80% confirmed material mapping before impacts are calculated) are written into the calculation engine, not just the prompt.",icon:i},{id:"anti-double-counting",title:"Anti-double-counting",description:"Cumulative LCIA vectors and dataset tracking prevent the most common LCA error â adding upstream impacts twice.",icon:n.default},{id:"unit-safety",title:"Unit safety",description:"Eight dimensional groups prevent nonsense conversions. You cannot accidentally convert kilograms into kilowatt-hours.",icon:a},{id:"audit-trail",title:"Audit trail by default",description:"Every mapping, assumption, and parameter change is recorded with a source label (user, ai_generated, assumption, web search) so a reviewer can always tell who decided what.",icon:r.ScrollText},{id:"scope-enforcement",title:"Defence-in-depth scope",description:"Supplier-scoped sessions are guarded at three independent layers â JWT, database row-level security, and the agent's tool-input validator. No single failure unlocks data.",icon:s}],f=[{id:"cost-caps",title:"Cost & turn caps",description:"Every session has a hard compute budget and a maximum number of turns. The agent cannot quietly run away or rack up unbounded cost.",icon:o},{id:"audit-hooks",title:"Audit hooks",description:"Every tool call is validated before execution and logged after. Conversation history is append-only â turns can't be rewritten retroactively.",icon:r.ScrollText},{id:"multi-tenant-isolation",title:"Multi-tenant isolation",description:"Customer data is row-locked at the database level. Session storage is scoped per user and per session, with time-limited access URLs.",icon:s},{id:"reproducibility",title:"Reproducibility",description:"Every assessment carries a stable identifier of the configuration that produced it. Re-running the same configuration produces identical numbers â meeting ISO 14040 reproducibility.",icon:d}],x=[{id:"lca",title:"LCA Report",pages:"40â80 pages",description:"ISO 14040/14044 + EN 15804 full study. Goal/scope/inventory/impact/interpretation. 11-column LCIA tables in scientific notation.",icon:c},{id:"epd",title:"EPD",pages:"8â15 pages",description:"ISO 14025 + EN 15804+A2 Type III declaration. Sage-green Eco Platform format. 19-column module declaration matrix. Content information with biogenic carbon. Mandatory disclaimers.",icon:r.ScrollText},{id:"pcf",title:"PCF",pages:"20â40 pages",description:"ISO 14067 + GHG Protocol + PAS 2050. MCF Ratings traffic-light. CarbonStamp visual. GHG Protocol Table 8.2 data quality grid. Hotspot analysis.",icon:m.Footprints},{id:"circularity",title:"Circularity Report",pages:"varies",description:"ISO 59020. Mass-flow diagram, LMCI score, DCI confidence breakdown, EoL routing detail, per-stage M_loss decomposition.",icon:u.Recycle},{id:"comparison",title:"Comparison Report",pages:"varies",description:"Side-by-side analysis of 2â3 product options on a common functional unit. Delta tables. Ranking per impact category.",icon:p.GitCompare},{id:"sensitivity",title:"Sensitivity Analysis",pages:"varies",description:"Tornado diagram. Parameter ranking by elasticity. Recommendations for primary data collection priorities.",icon:h.TrendingUp}];e.s(["guardrails",0,g,"methodPackages",0,[{id:"A",name:"Package A",standard:"EN 15804+A2 EPD (construction, furniture)",boundary:"Cradle-to-grave + D",allocation:"Cut-off + Module D",biogenic:"â1/+1",indicators:"EN 15804+A2 full set"},{id:"B",name:"Package B",standard:"ISO 14025 Type III EPD (other industries)",boundary:"Cradle-to-gate",allocation:"Cut-off",biogenic:"0/0",indicators:"EF v3.1"},{id:"C",name:"Package C",standard:"EU PEF",boundary:"Cradle-to-grave",allocation:"CFF (Circular Footprint Formula)",biogenic:"0/0",indicators:"EF v3.1 (no LT variants)"},{id:"D",name:"Package D",standard:"GHG Protocol PCF",boundary:"Configurable",allocation:"Cut-off",biogenic:"0/0",indicators:"IPCC 2021 GWP100"},{id:"E",name:"Package E",standard:"ISO 14067 Carbon Footprint",boundary:"Cradle-to-grave",allocation:"Cut-off",biogenic:"0/0",indicators:"IPCC 2021 GWP100"},{id:"F",name:"Package F",standard:"MedTech PCF (clinical-waste-aware)",boundary:"Cradle-to-gate",allocation:"Cut-off",biogenic:"0/0",indicators:"IPCC 2021 GWP100"}],"reportFormats",0,x,"responsiblePillars",0,f,"standards",0,[{id:"iso-14040",short:"ISO 14040",full:"Principles and framework for Life Cycle Assessment"},{id:"iso-14044",short:"ISO 14044",full:"Requirements and guidelines for LCA"},{id:"iso-14025",short:"ISO 14025",full:"Type III environmental declarations"},{id:"iso-14067",short:"ISO 14067",full:"Carbon footprint of products"},{id:"iso-59020",short:"ISO 59020",full:"Measuring and assessing circularity performance"},{id:"en-15804",short:"EN 15804+A2",full:"Sustainability of construction works â EPDs for c
1onstruction products"},{id:"en-15978",short:"EN 15978",full:"Assessment of environmental performance of buildings"},{id:"ghg-protocol",short:"GHG Protocol",full:"Product Life Cycle Accounting and Reporting Standard"},{id:"pas-2050",short:"PAS 2050",full:"Specification for the assessment of GHG emissions from goods and services"},{id:"pef",short:"PEF",full:"Product Environmental Footprint (European Commission)"},{id:"csrd",short:"CSRD",full:"Corporate Sustainability Reporting Directive (EU)"},{id:"cbam",short:"CBAM",full:"Carbon Border Adjustment Mechanism (EU)"},{id:"espr",short:"ESPR",full:"Ecodesign for Sustainable Products Regulation (EU)"},{id:"ppwr",short:"PPWR",full:"Packaging and Packaging Waste Regulation (EU)"}]],18391)},53182,e=>{"use strict";var t=e.i(79968),i=e.i(12086),n=e.i(65143),a=e.i(70065),r=e.i(18391);let o={hidden:{},show:{transition:{staggerChildren:.06}}},s={hidden:{opacity:0,y:20},show:{opacity:1,y:0,transition:{duration:.5,ease:[.21,1,.21,1]}}};e.s(["default",0,function(){let e=(0,n.useReducedMotion)();return(0,t.jsx)("section",{className:"bg-[#fafafa]",children:(0,t.jsxs)("div",{className:"mx-auto max-w-[1200px] px-6 py-24 md:py-32",children:[(0,t.jsxs)("div",{className:"mb-12 max-w-2xl",children:[(0,t.jsx)("p",{className:"text-mono-label text-muted-foreground",children:"Six guardrails"}),(0,t.jsx)("h2",{className:"mt-4 text-[32px] font-semibold leading-[1.15] tracking-[-0.04em] text-foreground md:text-[40px] md:tracking-[-0.05em]",children:"Engineered guardrails the model can't talk its way out of."})]}),(0,t.jsx)(i.motion.ul,{variants:e?void 0:o,initial:!e&&"hidden",whileInView:e?void 0:"show",viewport:{once:!0,margin:"-10% 0px"},className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:r.guardrails.map(n=>(0,t.jsx)(i.motion.li,{variants:e?void 0:s,children:(0,t.jsxs)(a.Card,{className:"shadow-card-subtle h-full border-0 bg-card",children:[(0,t.jsxs)(a.CardHeader,{className:"space-y-3",children:[(0,t.jsx)("span",{className:"inline-flex size-9 items-center justify-center rounded-md bg-muted shadow-ring",children:(0,t.jsx)(n.icon,{className:"size-4 text-foreground","aria-hidden":!0})}),(0,t.jsx)("h3",{className:"text-[20px] font-semibold leading-[1.25] tracking-[-0.02em] text-foreground",children:n.title})]}),(0,t.jsx)(a.CardContent,{children:(0,t.jsx)("p",{className:"text-sm leading-[1.55] text-muted-foreground",children:n.description})})]})},n.id))})]})})}])},78544,e=>{"use strict";var t=e.i(79968),i=e.i(27341),n=e.i(70065),a=e.i(18391);function r({label:e,value:i}){return(0,t.jsxs)("div",{children:[(0,t.jsx)("dt",{className:"text-mono-label text-muted-foreground",children:e}),(0,t.jsx)("dd",{className:"mt-2 font-mono text-sm leading-[1.4] text-foreground",children:i})]})}e.s(["default",0,function(){return(0,t.jsx)("section",{className:"bg-[#fafafa]",children:(0,t.jsxs)("div",{className:"mx-auto max-w-[1200px] px-6 py-24 md:py-32",children:[(0,t.jsxs)("div",{className:"mb-12 max-w-2xl",children:[(0,t.jsx)("p",{className:"text-mono-label text-muted-foreground",children:"Six method packages"}),(0,t.jsx)("h2",{className:"mt-4 text-[32px] font-semibold leading-[1.15] tracking-[-0.04em] text-foreground md:text-[40px] md:tracking-[-0.05em]",children:"The right standard, picked for you."}),(0,t.jsx)("p",{className:"mt-4 text-lg leading-[1.6] text-muted-foreground",children:"Each package bundles system boundary, allocation, biogenic carbon mode, and indicator set. The agent picks the package from your industry and goal â not from your manual config."})]}),(0,t.jsxs)(i.Tabs,{defaultValue:"A",children:[(0,t.jsx)(i.TabsList,{className:"mb-8 flex flex-wrap",children:a.methodPackages.map(e=>(0,t.jsxs)(i.TabsTrigger,{value:e.id,children:["Package ",e.id]},e.id))}),a.methodPackages.map(e=>(0,t.jsx)(i.TabsContent,{value:e.id,children:(0,t.jsx)(n.Card,{className:"shadow-card-subtle border-0 bg-card",children:(0,t.jsxs)(n.CardContent,{className:"p-6 md:p-10",children:[(0,t.jsx)("p",{className:"text-mono-label text-muted-foreground",children:e.name}),(0,t.jsx)("h3",{className:"mt-3 text-[24px] font-semibold leading-[1.25] tracking-[-0.03em] text-foreground md:text-[28px]",children:e.standard}),(0,t.jsxs)("dl",{className:"mt-8 grid gap-6 md:grid-cols-2 lg:grid-cols-4",children:[(0,t.jsx)(r,{label:"System boundary",value:e.boundary}),(0,t.jsx)(r,{label:"Allocation",value:e.allocation}),(0,t.jsx)(r,{label:"Biogenic COâ",value:e.biogenic}),(0,t.jsx)(r,{label:"Indicators",value:e.indicators})]})]})})},e.id))]})]})})}])},24360,e=>{"use strict";var t=e.i(79968),i=e.i(28231),n=e.i(94179),a=e.i(18391);e.s(["default",0,function(){return(0,t.jsxs)("section",{className:"mx-auto max-w-[1200px] px-6 py-24 md:py-32",children:[(0,t.jsxs)("div",{className:"mb-10 max-w-2xl",children:[(0,t.jsx)("p",{className:"text-mono-label text-muted-foreground",children:"Standards covered"}),(0,t.jsx)("h2",{className:"mt-4 text-[32px] font-semibold leading-[1.15] tracking-[-0.04em] text-foreground md:text-[40px] md:tracking-[-0.05em]",children:"The standards aren't referenced in the report â they shape it."})]}),(0,t.jsx)("ul",{className:"flex flex-wrap gap-2.5",children:a.standards.map(e=>(0,t.jsx)("li",{children:(0,t.jsxs)(i.Tooltip,{children:[(0,t.jsx)(i.TooltipTrigger,{"aria-label":`${e.short} â ${e.full}`,className:"cursor-help focus-visible:outline-none focus-visible:ring-3 focus-visible:ring-ring/50 rounded-full",children:(0,t.jsx)(n.Badge,{variant:"secondary",className:"px-3 py-1.5 font-mono text-xs",children:e.short})}),(0,t.jsx)(i.TooltipContent,{children:e.full})]})},e.id))})]})}])},99182,e=>{"use strict";
1var t=e.i(79968),i=e.i(12086),n=e.i(65143),a=e.i(70065),r=e.i(18391);let o={hidden:{},show:{transition:{staggerChildren:.08}}},s={hidden:{opacity:0,y:20},show:{opacity:1,y:0,transition:{duration:.55,ease:[.21,1,.21,1]}}};e.s(["default",0,function(){let e=(0,n.useReducedMotion)();return(0,t.jsx)("section",{className:"bg-[#fafafa]",children:(0,t.jsxs)("div",{className:"mx-auto max-w-[1200px] px-6 py-24 md:py-32",children:[(0,t.jsxs)("div",{className:"mb-12 max-w-2xl",children:[(0,t.jsx)("p",{className:"text-mono-label text-muted-foreground",children:"Responsible AI"}),(0,t.jsx)("h2",{className:"mt-4 text-[32px] font-semibold leading-[1.15] tracking-[-0.04em] text-foreground md:text-[40px] md:tracking-[-0.05em]",children:"The compute side, engineered with the same care as the methodology."})]}),(0,t.jsx)(i.motion.ul,{variants:e?void 0:o,initial:!e&&"hidden",whileInView:e?void 0:"show",viewport:{once:!0,margin:"-10% 0px"},className:"grid gap-4 sm:grid-cols-2",children:r.responsiblePillars.map(n=>(0,t.jsx)(i.motion.li,{variants:e?void 0:s,children:(0,t.jsxs)(a.Card,{className:"shadow-card-subtle h-full border-0 bg-card",children:[(0,t.jsxs)(a.CardHeader,{className:"space-y-3",children:[(0,t.jsx)("span",{className:"inline-flex size-9 items-center justify-center rounded-md bg-muted shadow-ring",children:(0,t.jsx)(n.icon,{className:"size-4 text-foreground","aria-hidden":!0})}),(0,t.jsx)("h3",{className:"text-[20px] font-semibold leading-[1.25] tracking-[-0.02em] text-foreground",children:n.title})]}),(0,t.jsx)(a.CardContent,{children:(0,t.jsx)("p",{className:"text-sm leading-[1.6] text-muted-foreground",children:n.description})})]})},n.id))})]})})}])},81835,e=>{"use strict";var t,i,n,a,r,o=e.i(79968);e.s([],92689),e.i(92689),e.i(8890);var s=e.i(64556),l=e.i(35270),d=e.i(29905),c=e.i(14093),u=e.i(5313),m=e.i(67805);let p=s.createContext(void 0);function h(){let e=s.useContext(p);if(void 0===e)throw Error((0,m.default)(10));return e}var g=e.i(59834),f=e.i(73420),x=e.i(85672);let b={value:()=>null},y=s.forwardRef(function(e,t){let{render:i,className:n,disabled:a=!1,hiddenUntilFound:r,keepMounted:m,loopFocus:h=!0,onValueChange:y,multiple:v=!1,orientation:C="vertical",value:j,defaultValue:w,style:k,...N}=e,S=(0,u.useDirection)(),E=s.useMemo(()=>{if(void 0===j)return w??[]},[j,w]),P=(0,d.useStableCallback)(y),R=s.useRef([]),[A,I]=(0,l.useControlled)({controlled:j,default:E,name:"Accordion",state:"value"}),M=(0,d.useStableCallback)((e,t)=>{let i=(0,f.createChangeEventDetails)(x.REASONS.none);if(v)if(t){let t=A.slice();if(t.push(e),P(t,i),i.isCanceled)return;I(t)}else{let t=A.filter(t=>t!==e);if(P(t,i),i.isCanceled)return;I(t)}else{let t=A[0]===e?[]:[e];if(P(t,i),i.isCanceled)return;I(t)}}),T=s.useMemo(()=>({value:A,disabled:a,orientation:C}),[A,a,C]),F=s.useMemo(()=>({accordionItemRefs:R,direction:S,disabled:a,handleValueChange:M,hiddenUntilFound:r??!1,keepMounted:m??!1,loopFocus:h,orientation:C,state:T,value:A}),[S,a,M,r,m,h,C,T,A]),O=(0,g.useRenderElement)("div",e,{state:T,ref:t,props:[{dir:S,role:"region"},N],stateAttributesMapping:b});return(0,o.jsx)(p.Provider,{value:F,children:(0,o.jsx)(c.CompositeList,{elementsRef:R,children:O})})});var v=e.i(4133),C=e.i(82911),j=e.i(77642),w=e.i(88723),k=e.i(87401);let N=s.createContext(void 0);function S(){let e=s.useContext(N);if(void 0===e)throw Error((0,m.default)(15));return e}var E=e.i(17427);let P=s.createContext(void 0);function R(){let e=s.useContext(P);if(void 0===e)throw Error((0,m.default)(9));return e}var A=e.i(4951);let I=((t={}).open="data-open",t.closed="data-closed",t[t.startingStyle=A.TransitionStatusDataAttributes.startingStyle]="startingStyle",t[t.endingStyle=A.TransitionStatusDataAttributes.endingStyle]="endingStyle",t),M=((i={}).panelOpen="data-panel-open",i),T={[I.open]:""},F={[I.closed]:""},O={open:e=>e?{[M.panelOpen]:""}:null},D=((n={}).index="data-index",n.disabled="data-disabled",n.open="data-open",n),L={open:e=>e?T:F,index:e=>Number.isInteger(e)?{[D.index]:String(e)}:null,...A.transitionStatusMapping,value:()=>null},H=s.forwardRef(function(e,t){let{className:i,disabled:n=!1,onOpenChange:a,render:r,value:c,style:u,...m}=e,{ref:p,index:b}=(0,E.useCompositeListItem)(),y=(0,v.useMergedRefs)(t,p),{disabled:S,handleValueChange:R,state:A,value:I}=h(),M=(0,C.useBaseUiId)(),T=c??M,F=n||S,O=s.useMemo(()=>
1{if(!I)return!1;for(let e=0;e<I.length;e+=1)if(I[e]===T)return!0;return!1},[I,T]),D=(0,d.useStableCallback)((e,t)=>{a?.(e,t),t.isCanceled||R(T,e)}),H=function(e){let{open:t,defaultOpen:i,onOpenChange:n,disabled:a}=e,r=void 0!==t,[o,c]=(0,l.useControlled)({controlled:t,default:i,name:"Collapsible",state:"open"}),{mounted:u,setMounted:m,transitionStatus:p}=(0,k.useTransitionStatus)(o,!0,!0),[h,g]=s.useState(o),[{height:b,width:y},v]=s.useState({height:void 0,width:void 0}),N=(0,C.useBaseUiId)(),[S,E]=s.useState(),P=S??N,[R,A]=s.useState(!1),[I,M]=s.useState(!1),T=s.useRef(null),F=s.useRef(null),O=s.useRef(null),D=s.useRef(null),L=(0,w.useAnimationsFinished)(D,!1),H=(0,d.useStableCallback)(e=>{let t=!o,i=(0,f.createChangeEventDetails)(x.REASONS.triggerPress,e.nativeEvent);if(n(t,i),i.isCanceled)return;let a=D.current;"css-animation"===F.current&&null!=a&&a.style.removeProperty("animation-name"),R||I||(null!=F.current&&"css-animation"!==F.current&&!u&&t&&m(!0),"css-animation"===F.current&&(!h&&t&&g(!0),!u&&t&&m(!0))),c(t),"none"===F.current&&u&&!t&&m(!1)});return(0,j.useIsoLayoutEffect)(()=>{r&&"none"===F.current&&!o&&m(!1)},[r,o,t,m]),s.useMemo(()=>({abortControllerRef:T,animationTypeRef:F,disabled:a,handleTrigger:H,height:b,mounted:u,open:o,panelId:P,panelRef:D,runOnceAnimationsFinish:L,setDimensions:v,setHiddenUntilFound:A,setKeepMounted:M,setMounted:m,setOpen:c,setPanelIdState:E,setVisible:g,transitionDimensionRef:O,transitionStatus:p,visible:h,width:y}),[T,F,a,H,b,u,o,P,D,L,v,A,M,m,c,g,O,p,h,y])}({open:O,onOpenChange:D,disabled:F}),W=s.useMemo(()=>({open:H.open,disabled:H.disabled,hidden:!H.mounted,transitionStatus:H.transitionStatus}),[H.open,H.disabled,H.mounted,H.transitionStatus]),U=s.useMemo(()=>({...H,onOpenChange:D,state:W}),[H,W,D]),G=s.useMemo(()=>({...A,index:b,disabled:F,open:O}),[F,b,O,A]),[z,B]=s.useState((0,C.useBaseUiId)()),_=s.useMemo(()=>({open:O,state:G,setTriggerId:B,triggerId:z}),[O,G,B,z]),q=(0,g.useRenderElement)("div",e,{state:G,ref:y,props:m,stateAttributesMapping:L});return(0,o.jsx)(N.Provider,{value:U,children:(0,o.jsx)(P.Provider,{value:_,children:q})})}),W=s.forwardRef(function(e,t){let{render:i,className:n,style:a,...r}=e,{state:o}=R();return(0,g.useRenderElement)("h3",e,{state:o,ref:t,props:r,stateAttributesMapping:L})});var U=e.i(68769),G=e.i(74850),z=e.i(2717),B=e.i(9782);let _=new Set([z.ARROW_DOWN,z.ARROW_UP,z.ARROW_RIGHT,z.ARROW_LEFT,z.HOME,z.END]),q=s.forwardRef(function(e,t){let{disabled:i,className:n,id:a,render:r,nativeButton:o=!0,style:l,...d}=e,{panelId:c,open:u,handleTrigger:m,disabled:p}=S(),{getButtonProps:f,buttonRef:x}=(0,G.useButton)({disabled:i??p,focusableWhenDisabled:!0,native:o,composite:!0}),{accordionItemRefs:b,direction:y,loopFocus:v,orientation:C}=h(),w="rtl"===y,k="horizontal"===C,{state:N,setTriggerId:E,triggerId:P}=R();(0,j.useIsoLayoutEffect)(()=>(a&&E(a),()=>{E(void 0)}),[a,E]);let A=s.useMemo(()=>({"aria-controls":u?c:void 0,"aria-expanded":u,id:P,tabIndex:0,onClick:m,onKeyDown(e){if(!_.has(e.key))return;(0,B.stopEvent)(e);let t=function(e){let{current:t}=e,i=[];for(let e=0;e<t.length;e+=1){let n=t[e];if(!(0,U.isElementDisabled)(n)){let e=n?.querySelector('[type="button"], [role="button"]');e&&!(0,U.isElementDisabled)(e)&&i.push(e)}}return i}(b),i=t.length-1,n=-1,a=t.indexOf(e.currentTarget);function r(){n=v?a+1>i?0:a+1:Math.min(a+1,i)}function o(){n=v&&0===a?i:a-1}switch(e.key){case z.ARROW_DOWN:k||r();break;case z.ARROW_UP:k||o();break;case z.ARROW_RIGHT:k&&(w?o():r());break;case z.ARROW_LEFT:k&&(w?r():o());break;case"Home":n=0;break;case"End":n=i}n>-1&&t[n].focus()}}),[b,m,P,k,w,v,u,c]);return(0,g.useRenderElement)("button",e,{state:N,ref:[t,x],props:[A,d,f],stateAttributesMapping:O})});var V=e.i(22561),$=e.i(73960),K=e.i(59092);let J=((a={}).disabled="data-disabled",a.orientation="data-orientation",a),Q=((r={}).accordionPanelHeight="--accordion-panel-height",r.accordionPanelWidth="--accordion-panel-width",r);var Y=e.i(11446);let Z=s.forwardRef(function(e,t){let{className:i,hiddenUntilFound:n,keepMounted:a,id:r,render:o,style:l,...c}=e,{hiddenUntilFound:u,keepMounted:m}=h(),{abortControllerRef:p,animationTypeRef:b,height:y,mounted:C,onOpenChange:w,open:k,panelId:N,panelRef:E,runOnceAnimationsFinish:P,setDimensions:A,setHiddenUntilFound:M,setKeepMounted:T,setMounted:F,setOpen:O,setVisible:D,transitionDimensionRef:H,visible:W,width:U,setPanelIdState:G,transitionStatus:z}=S(),B=n??u,_=a??m;(0,j.useIsoLayoutEffect)(()=>
1{if(r)return G(r),()=>{G(void 0)}},[r,G]),(0,j.useIsoLayoutEffect)(()=>{M(B)},[M,B]),(0,j.useIsoLayoutEffect)(()=>{T(_)},[T,_]),(0,Y.useOpenChangeComplete)({open:k&&"idle"===z,ref:E,onComplete(){k&&A({width:void 0,height:void 0})}});let{props:q}=function(e){let{abortControllerRef:t,animationTypeRef:i,externalRef:n,height:a,hiddenUntilFound:r,keepMounted:o,id:l,mounted:c,onOpenChange:u,open:m,panelRef:p,runOnceAnimationsFinish:h,setDimensions:g,setMounted:b,setOpen:y,setVisible:C,transitionDimensionRef:w,visible:k,width:N}=e,S=s.useRef(!1),E=s.useRef(null),P=s.useRef(m),R=s.useRef(m),A=(0,K.useAnimationFrame)(),M=s.useMemo(()=>"css-animation"===i.current?!k:!m&&!c,[m,c,k,i]),T=(0,d.useStableCallback)(e=>{if(!e)return;if(null==i.current||null==w.current){let t=getComputedStyle(e),n="none"!==t.animationName&&""!==t.animationName,a="0s"!==t.transitionDuration&&""!==t.transitionDuration;n&&a||("none"===t.animationName&&"0s"!==t.transitionDuration?i.current="css-transition":"none"!==t.animationName&&"0s"===t.transitionDuration?i.current="css-animation":i.current="none"),"horizontal"===e.getAttribute(J.orientation)||t.transitionProperty.indexOf("width")>-1?w.current="width":w.current="height"}if("css-transition"!==i.current)return;(void 0===a||void 0===N)&&(g({height:e.scrollHeight,width:e.scrollWidth}),R.current&&e.style.setProperty("transition-duration","0s"));let t=-1,n=-1;return t=K.AnimationFrame.request(()=>{R.current=!1,n=K.AnimationFrame.request(()=>{setTimeout(()=>{e.style.removeProperty("transition-duration")})})}),()=>{K.AnimationFrame.cancel(t),K.AnimationFrame.cancel(n)}}),F=(0,v.useMergedRefs)(n,p,T);return(0,j.useIsoLayoutEffect)(()=>{if("css-transition"!==i.current)return;let e=p.current;if(!e)return;let n=-1;if(null!=t.current&&(t.current.abort(),t.current=null),m){let t={"justify-content":e.style.justifyContent,"align-items":e.style.alignItems,"align-content":e.style.alignContent,"justify-items":e.style.justifyItems};Object.keys(t).forEach(t=>{e.style.setProperty(t,"initial","important")}),R.current||o||e.setAttribute(I.startingStyle,""),g({height:e.scrollHeight,width:e.scrollWidth}),n=K.AnimationFrame.request(()=>{Object.entries(t).forEach(([t,i])=>{""===i?e.style.removeProperty(t):e.style.setProperty(t,i)})})}else{if(0===e.scrollHeight&&0===e.scrollWidth)return;g({height:e.scrollHeight,width:e.scrollWidth});let i=new AbortController;t.current=i;let n=i.signal,a=null,r=I.endingStyle;return(a=new MutationObserver(o=>{o.some(e=>"attributes"===e.type&&e.attributeName===r)&&(a?.disconnect(),a=null,h(()=>{g({height:0,width:0}),e.style.removeProperty("content-visibility"),b(!1),t.current===i&&(t.current=null)},n))})).observe(e,{attributes:!0,attributeFilter:[r]}),()=>{a?.disconnect(),A.cancel(),t.current===i&&(i.abort(),t.current=null)}}return()=>{K.AnimationFrame.cancel(n)}},[t,i,A,r,o,c,m,p,h,g,b]),(0,j.useIsoLayoutEffect)(()=>{if("css-animation"!==i.current)return;let e=p.current;
1e&&(E.current=e.style.animationName||E.current,e.style.setProperty("animation-name","none"),g({height:e.scrollHeight,width:e.scrollWidth}),P.current||S.current||e.style.removeProperty("animation-name"),m?(null!=t.current&&(t.current.abort(),t.current=null),b(!0),C(!0)):(t.current=new AbortController,h(()=>{b(!1),C(!1),t.current=null},t.current.signal)))},[t,i,m,p,h,g,b,C,k]),(0,$.useOnMount)(()=>{let e=K.AnimationFrame.request(()=>{P.current=!1});return()=>K.AnimationFrame.cancel(e)}),(0,j.useIsoLayoutEffect)(()=>{if(!r)return;let e=p.current;if(!e)return;let t=-1,i=-1;return m&&S.current&&(e.style.transitionDuration="0s",g({height:e.scrollHeight,width:e.scrollWidth}),t=K.AnimationFrame.request(()=>{S.current=!1,i=K.AnimationFrame.request(()=>{setTimeout(()=>{e.style.removeProperty("transition-duration")})})})),()=>{K.AnimationFrame.cancel(t),K.AnimationFrame.cancel(i)}},[r,m,p,g]),(0,j.useIsoLayoutEffect)(()=>{let e=p.current;e&&r&&M&&(e.setAttribute("hidden","until-found"),"css-transition"===i.current&&e.setAttribute(I.startingStyle,""))},[r,M,i,p]),s.useEffect(function(){let e=p.current;if(e)return(0,V.addEventListener)(e,"beforematch",function(e){S.current=!0,y(!0),u(!0,(0,f.createChangeEventDetails)(x.REASONS.none,e))})},[u,p,y]),s.useMemo(()=>({props:{hidden:M,id:l,ref:F}}),[M,l,F])}({abortControllerRef:p,animationTypeRef:b,externalRef:t,height:y,hiddenUntilFound:B,id:r??N,keepMounted:_,mounted:C,onOpenChange:w,open:k,panelRef:E,runOnceAnimationsFinish:P,setDimensions:A,setMounted:F,setOpen:O,setVisible:D,transitionDimensionRef:H,visible:W,width:U}),{state:Z,triggerId:X}=R(),ee=s.useMemo(()=>({...Z,transitionStatus:z}),[Z,z]),et=(0,g.useRenderElement)("div",e,{state:ee,ref:[t,E],props:[q,{"aria-labelledby":X,role:"region",style:{[Q.accordionPanelHeight]:void 0===y?"auto":`${y}px`,[Q.accordionPanelWidth]:void 0===U?"auto":`${U}px`}},c],stateAttributesMapping:L});return _||B||C?et:null});e.s(["Header",0,W,"Item",0,H,"Panel",0,Z,"Root",0,y,"Trigger",0,q],14691);var X=e.i(14691),X=X,ee=e.i(47163),et=e.i(50438),ei=e.i(75158);function en({className:e,...t}){return(0,o.jsx)(X.Root,{"data-slot":"accordion",className:(0,ee.cn)("flex w-full flex-col",e),...t})}function ea({className:e,...t}){return(0,o.jsx)(X.Item,{"data-slot":"accordion-item",className:(0,ee.cn)("not-last:border-b",e),...t})}function er({className:e,children:t,...i}){return(0,o.jsx)(X.Header,{className:"flex",children:(0,o.jsxs)(X.Trigger,{"data-slot":"accordion-trigger",className:(0,ee.cn)("group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground",e),...i,children:[t,(0,o.jsx)(et.ChevronDownIcon,{"data-slot":"accordion-trigger-icon",className:"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden"}),(0,o.jsx)(ei.ChevronUpIcon,{"data-slot":"accordion-trigger-icon",className:"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline"})]})})}function eo({className:e,children:t,...i}){return(0,o.jsx)(X.Panel,{"data-slot":"accordion-content",className:"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up",...i,children:(0,o.jsx)("div",{className:(0,ee.cn)("h-(--accordion-panel-height) pt-0 pb-2.5 data-ending-style:h-0 data-starting-style:h-0 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4",e),children:t})})}var es=e.i(94179),el=e.i(18391);e.s(["default",0,function(){return(0,o.jsxs)("section",{className:"mx-auto max-w-[1200px] px-6 py-24 md:py-32",children:[(0,o.jsxs)("div",{className:"mb-12 max-w-2xl",children:[(0,o.jsx)("p",{className:"text-mono-label text-muted-foreground",children:"Six report formats"}),(0,o.jsx)("h2",{className:"mt-4 text-[32px] font-semibold leading-[1.15] tracking-[-0.04em] text-foreground md:text-[40px] md:tracking-[-0.05em]",children:"Every assessment ends in a downloadable PDF."}),(0,o.jsx)("p",{className:"mt-4 text-lg leading-[1.6] text-muted-foreground",children:"Server-rendered from structured calculation results, persisted
1with metadata for retrieval, exportable as native PDFs (and CSV/Excel extracts of the underlying tables)."})]}),(0,o.jsx)(en,{defaultValue:["lca"],className:"w-full",children:el.reportFormats.map(e=>(0,o.jsxs)(ea,{value:e.id,children:[(0,o.jsx)(er,{className:"text-left",children:(0,o.jsxs)("div",{className:"flex items-center gap-4",children:[(0,o.jsx)(e.icon,{className:"size-5 shrink-0 text-foreground","aria-hidden":!0}),(0,o.jsx)("span",{className:"text-base font-medium tracking-[-0.01em] text-foreground",children:e.title}),(0,o.jsx)(es.Badge,{variant:"secondary",className:"text-mono-label ml-2",children:e.pages})]})}),(0,o.jsx)(eo,{className:"pl-9 pr-4 text-base leading-[1.6] text-muted-foreground",children:e.description})]},e.id))})]})}],81835)}]);
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.