1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/SysView-CkHZauRG.js","assets/vendor-react-JDpYHKXk.js","assets/vendor-icons-BqhQzER6.js","assets/vendor-motion-DrhS-28h.js","assets/Pricing-BYYAL3rK.js","assets/Team-DqA9-uUs.js"])))=>i.map(i=>d[i]); 2import{r as e,a as t,R as a,L as o,u as r,B as i,b as s,c as n}from"./vendor-react-JDpYHKXk.js";import{u as l,a as d,m as c,b as u,c as m,d as p,e as h,f as b,A as f}from"./vendor-motion-DrhS-28h.js";import{A as g,M as x,a as y,X as v,C as w,b as k,c as N}from"./vendor-icons-BqhQzER6.js";!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))t(e);new MutationObserver(e=>{for(const a of e)if("childList"===a.type)for(const e of a.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&t(e)}).observe(document,{childList:!0,subtree:!0})}function t(e){if(e.ep)return;e.ep=!0;const t=function(e){const t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?t.credentials="include":"anonymous"===e.crossOrigin?t.credentials="omit":t.credentials="same-origin",t}(e);fetch(e.href,t)}}();var j={exports:{}},S={},A=e,T=Symbol.for("react.element"),C=Symbol.for("react.fragment"),E=Object.prototype.hasOwnProperty,I=A.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,L={key:!0,ref:!0,__self:!0,__source:!0};function P(e,t,a){var o,r={},i=null,s=null;for(o in void 0!==a&&(i=""+a),void 0!==t.key&&(i=""+t.key),void 0!==t.ref&&(s=t.ref),t)E.call(t,o)&&!L.hasOwnProperty(o)&&(r[o]=t[o]);if(e&&e.defaultProps)for(o in t=e.defaultProps)void 0===r[o]&&(r[o]=t[o]);return{$$typeof:T,type:e,key:i,ref:s,props:r,_owner:I.current}}S.Fragment=C,S.jsx=P,S.jsxs=P,j.exports=S;var M=j.exports,z={},R=t;z.createRoot=R.createRoot,z.hydrateRoot=R.hydrateRoot;const O=/google|bing|duckduckgo|yahoo|ecosia|qwant|baidu|yandex/,_=/linkedin|instagram|facebook|twitter|x\.com|youtube|tiktok|reddit/;function q(){const e="undefined"==typeof document?"":document.referrer;if(!e)return"direct";let t="";try{t=new URL(e).hostname.toLowerCase()}catch(a){return"referral"}return t===window.location.hostname?"internal":O.test(t)?"search":_.test(t)?"social":"referral"}function D(){const e="undefined"==typeof navigator?"":navigator.userAgent;return{from:q(),device:/Mobi|Android/i.test(e)?"mobile":"desktop"}}const{entries:F,setPrototypeOf:B,isFrozen:W,getPrototypeOf:H,getOwnPropertyDescriptor:U}=Object;let{freeze:G,seal:$,create:V}=Object,{apply:Y,construct:Q}="undefined"!=typeof Reflect&&Reflect;G||(G=function(e){return e}),$||($=function(e){return e}),Y||(Y=function(e,t){for(var a=arguments.length,o=new Array(a>2?a-2:0),r=2;r<a;r++)o[r-2]=arguments[r];return e.apply(t,o)}),Q||(Q=function(e){for(var t=arguments.length,a=new Array(t>1?t-1:0),o=1;o<t;o++)a[o-1]=arguments[o];return new e(...a)});const K=ue(Array.prototype.forEach),X=ue(Array.prototype.lastIndexOf),J=ue(Array.prototype.pop),Z=ue(Array.prototype.push),ee=ue(Array.prototype.splice),te=ue(String.prototype.toLowerCase),ae=ue(String.prototype.toString),oe=ue(String.prototype.match),re=ue(String.prototype.replace),ie=ue(String.prototype.indexOf),se=ue(String.prototype.trim),ne=ue(Object.prototype.hasOwnProperty),le=ue(RegExp.prototype.test),de=(ce=TypeError,function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return Q(ce,t)});var ce;function ue(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var a=arguments.length,o=new Array(a>1?a-1:0),r=1;r<a;r++)o[r-1]=arguments[r];return Y(e,t,o)}}function me(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:te;B&&B(e,null);let o=t.length;for(;o--;){let r=t[o];if("string"==typeof r){const e=a(r);e!==r&&(W(t)||(t[o]=e),r=e)}e[r]=!0}return e}function pe(e){for(let t=0;t<e.length;t++)ne(e,t)||(e[t]=null);return e}function he(e){const t=V(null);for(const[a,o]of F(e))ne(e,a)&&(Array.isArray(o)?t[a]=pe(o):o&&"object"==typeof o&&o.constructor===Object?t[a]=he(o):t[a]=o);return t}function be(e,t){for(;null!==e;){const a=U(e,t);if(a){if(a.get)return ue(a.get);if("function"==typeof a.value)return ue(a.value)}e=H(e)}return function(){return null}}const fe=G(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),ge=G(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),xe=G(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),ye=G(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),ve=G(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),we=G(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),ke=G(["#text"]),Ne=G(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","
2spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),je=G(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),Se=G(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Ae=G(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Te=$(/\{\{[\w\W]*|[\w\W]*\}\}/gm),Ce=$(/<%[\w\W]*|[\w\W]*%>/gm),Ee=$(/\$\{[\w\W]*/gm),Ie=$(/^data-[\-\w.\u00B7-\uFFFF]+$/),Le=$(/^aria-[\-\w]+$/),Pe=$(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Me=$(/^(?:\w+script|data):/i),ze=$(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Re=$(/^html$/i),Oe=$(/^[a-z][.\w]*(-[.\w]+)+$/i);var _e=Object.freeze({__proto__:null,ARIA_ATTR:Le,ATTR_WHITESPACE:ze,CUSTOM_ELEMENT:Oe,DATA_ATTR:Ie,DOCTYPE_NAME:Re,ERB_EXPR:Ce,IS_ALLOWED_URI:Pe,IS_SCRIPT_OR_DATA:Me,MUSTACHE_EXPR:Te,TMPLIT_EXPR:Ee});var qe=function e(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"undefined"==typeof window?null:window;const a=t=>e(t);if(a.version="3.3.3",a.removed=[],!t||!t.document||9!==t.document.nodeType||!t.Element)return a.isSupported=!1,a;let{document:o}=t;const r=o,i=r.currentScript,{DocumentFragment:s,HTMLTemplateElement:n,Node:l,Element:d,NodeFilter:c,NamedNodeMap:u=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:m,DOMParser:p,trustedTypes:h}=t,b=d.prototype,f=be(b,"cloneNode"),g=be(b,"remove"),x=be(b,"nextSibling"),y=be(b,"childNodes"),v=be(b,"parentNode");if("function"==typeof n){const e=o.createElement("template");e.content&&e.content.ownerDocument&&(o=e.content.ownerDocument)}let w,k="";const{implementation:N,createNodeIterator:j,createDocumentFragment:S,getElementsByTagName:A}=o,{importNode:T}=r;let C={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]};a.isSupported="function"==typeof F&&"function"==typeof v&&N&&void 0!==N.createHTMLDocument;const{MUSTACHE_EXPR:E,ERB_EXPR:I,TMPLIT_EXPR:L,DATA_ATTR:P,ARIA_ATTR:M,IS_SCRIPT_OR_DATA:z,ATTR_WHITESPACE:R,CUSTOM_ELEMENT:O}=_e;let{IS_ALLOWED_URI:_}=_e,q=null;const D=me({},[...fe,...ge,...xe,...ve,...ke]);let B=null;const W=me({},[...Ne,...je,...Se,...Ae]);
vendor: 4,509 bytes, line 2
2let H=Object.seal(V(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),U=null,$=null;const Y=Object.seal(V(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let Q=!0,ce=!0,ue=!1,pe=!0,Te=!1,Ce=!0,Ee=!1,Ie=!1,Le=!1,Me=!1,ze=!1,Oe=!1,qe=!0,De=!1,Fe=!0,Be=!1,We={},He=null;const Ue=me({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Ge=null;const $e=me({},["audio","video","img","source","image","track"]);let Ve=null;const Ye=me({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Qe="http://www.w3.org/1998/Math/MathML",Ke="http://www.w3.org/2000/svg",Xe="http://www.w3.org/1999/xhtml";let Je=Xe,Ze=!1,et=null;const tt=me({},[Qe,Ke,Xe],ae);let at=me({},["mi","mo","mn","ms","mtext"]),ot=me({},["annotation-xml"]);const rt=me({},["title","style","font","a","script"]);let it=null;const st=["application/xhtml+xml","text/html"];let nt=null,lt=null;const dt=o.createElement("form"),ct=function(e){return e instanceof RegExp||e instanceof Function},ut=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!lt||lt!==e){if(e&&"object"==typeof e||(e={}),e=he(e),it=-1===st.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,nt="application/xhtml+xml"===it?ae:te,q=ne(e,"ALLOWED_TAGS")?me({},e.ALLOWED_TAGS,nt):D,B=ne(e,"ALLOWED_ATTR")?me({},e.ALLOWED_ATTR,nt):W,et=ne(e,"ALLOWED_NAMESPACES")?me({},e.ALLOWED_NAMESPACES,ae):tt,Ve=ne(e,"ADD_URI_SAFE_ATTR")?me(he(Ye),e.ADD_URI_SAFE_ATTR,nt):Ye,Ge=ne(e,"ADD_DATA_URI_TAGS")?me(he($e),e.ADD_DATA_URI_TAGS,nt):$e,He=ne(e,"FORBID_CONTENTS")?me({},e.FORBID_CONTENTS,nt):Ue,U=ne(e,"FORBID_TAGS")?me({},e.FORBID_TAGS,nt):he({}),$=ne(e,"FORBID_ATTR")?me({},e.FORBID_ATTR,nt):he({}),We=!!ne(e,"USE_PROFILES")&&e.USE_PROFILES,Q=!1!==e.ALLOW_ARIA_ATTR,ce=!1!==e.ALLOW_DATA_ATTR,ue=e.ALLOW_UNKNOWN_PROTOCOLS||!1,pe=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Te=e.SAFE_FOR_TEMPLATES||!1,Ce=!1!==e.SAFE_FOR_XML,Ee=e.WHOLE_DOCUMENT||!1,Me=e.RETURN_DOM||!1,ze=e.RETURN_DOM_FRAGMENT||!1,Oe=e.RETURN_TRUSTED_TYPE||!1,Le=e.FORCE_BODY||!1,qe=!1!==e.SANITIZE_DOM,De=e.SANITIZE_NAMED_PROPS||!1,Fe=!1!==e.KEEP_CONTENT,Be=e.IN_PLACE||!1,_=e.ALLOWED_URI_REGEXP||Pe,Je=e.NAMESPACE||Xe,at=e.MATHML_TEXT_INTEGRATION_POINTS||at,ot=e.HTML_INTEGRATION_POINTS||ot,H=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&ct(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(H.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&ct(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(H.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(H.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Te&&(ce=!1),ze&&(Me=!0),We&&(q=me({},ke),B=V(null),!0===We.html&&(me(q,fe),me(B,Ne)),!0===We.svg&&(me(q,ge),me(B,je),me(B,Ae)),!0===We.svgFilters&&(me(q,xe),me(B,je),me(B,Ae)),!0===We.mathMl&&(me(q,ve),me(B,Se),me(B,Ae))),ne(e,"ADD_TAGS")||(Y.tagCheck=null),ne(e,"ADD_ATTR")||(Y.attributeCheck=null),e.ADD_TAGS&&("function"==typeof e.ADD_TAGS?Y.tagCheck=e.ADD_TAGS:(q===D&&(q=he(q)),me(q,e.ADD_TAGS,nt))),e.ADD_ATTR&&("function"==typeof e.ADD_ATTR?Y.attributeCheck=e.ADD_ATTR:(B===W&&(B=he(B)),me(B,e.ADD_ATTR,nt))),e.ADD_URI_SAFE_ATTR&&me(Ve,e.ADD_URI_SAFE_ATTR,nt),e.FORBID_CONTENTS&&(He===Ue&&(He=he(He)),me(He,e.FORBID_CONTENTS,nt)),e.ADD_FORBID_CONTENTS&&(He===Ue&&(He=he(He)),me(He,e.ADD_FORBID_CONTENTS,nt)),Fe&&(q["#text"]=!0),Ee&&me(q,["html","head","body"]),q.table&&(me(q,["tbody"]),delete U.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw de('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw de('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');w=e.TRUSTED_TYPES_POLICY,k=w.createHTML("")}else void 0===w&&(w=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let a=null;
vendor: 4,201 bytes, line 2
2const o="data-tt-policy-suffix";t&&t.hasAttribute(o)&&(a=t.getAttribute(o));const r="dompurify"+(a?"#"+a:"");try{return e.createPolicy(r,{createHTML:e=>e,createScriptURL:e=>e})}catch(i){return null}}(h,i)),null!==w&&"string"==typeof k&&(k=w.createHTML(""));G&&G(e),lt=e}},mt=me({},[...ge,...xe,...ye]),pt=me({},[...ve,...we]),ht=function(e){Z(a.removed,{element:e});try{v(e).removeChild(e)}catch(t){g(e)}},bt=function(e,t){try{Z(a.removed,{attribute:t.getAttributeNode(e),from:t})}catch(o){Z(a.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e)if(Me||ze)try{ht(t)}catch(o){}else try{t.setAttribute(e,"")}catch(o){}},ft=function(e){let t=null,a=null;if(Le)e="<remove></remove>"+e;else{const t=oe(e,/^[\r\n\t ]+/);a=t&&t[0]}"application/xhtml+xml"===it&&Je===Xe&&(e='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+e+"</body></html>");const r=w?w.createHTML(e):e;if(Je===Xe)try{t=(new p).parseFromString(r,it)}catch(s){}if(!t||!t.documentElement){t=N.createDocument(Je,"template",null);try{t.documentElement.innerHTML=Ze?k:r}catch(s){}}const i=t.body||t.documentElement;return e&&a&&i.insertBefore(o.createTextNode(a),i.childNodes[0]||null),Je===Xe?A.call(t,Ee?"html":"body")[0]:Ee?t.documentElement:i},gt=function(e){return j.call(e.ownerDocument||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},xt=function(e){return e instanceof m&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof u)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},yt=function(e){return"function"==typeof l&&e instanceof l};function vt(e,t,o){K(e,e=>{e.call(a,t,o,lt)})}const wt=function(e){let t=null;if(vt(C.beforeSanitizeElements,e,null),xt(e))return ht(e),!0;const o=nt(e.nodeName);if(vt(C.uponSanitizeElement,e,{tagName:o,allowedTags:q}),Ce&&e.hasChildNodes()&&!yt(e.firstElementChild)&&le(/<[/\w!]/g,e.innerHTML)&&le(/<[/\w!]/g,e.textContent))return ht(e),!0;if(7===e.nodeType)return ht(e),!0;if(Ce&&8===e.nodeType&&le(/<[/\w]/g,e.data))return ht(e),!0;if(!(Y.tagCheck instanceof Function&&Y.tagCheck(o))&&(!q[o]||U[o])){if(!U[o]&&Nt(o)){if(H.tagNameCheck instanceof RegExp&&le(H.tagNameCheck,o))return!1;if(H.tagNameCheck instanceof Function&&H.tagNameCheck(o))return!1}if(Fe&&!He[o]){const t=v(e)||e.parentNode,a=y(e)||e.childNodes;if(a&&t)for(let o=a.length-1;o>=0;--o){const r=f(a[o],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,x(e))}}return ht(e),!0}return e instanceof d&&!function(e){let t=v(e);t&&t.tagName||(t={namespaceURI:Je,tagName:"template"});const a=te(e.tagName),o=te(t.tagName);return!!et[e.namespaceURI]&&(e.namespaceURI===Ke?t.namespaceURI===Xe?"svg"===a:t.namespaceURI===Qe?"svg"===a&&("annotation-xml"===o||at[o]):Boolean(mt[a]):e.namespaceURI===Qe?t.namespaceURI===Xe?"math"===a:t.namespaceURI===Ke?"math"===a&&ot[o]:Boolean(pt[a]):e.namespaceURI===Xe?!(t.namespaceURI===Ke&&!ot[o])&&!(t.namespaceURI===Qe&&!at[o])&&!pt[a]&&(rt[a]||!mt[a]):!("application/xhtml+xml"!==it||!et[e.namespaceURI]))}(e)?(ht(e),!0):"noscript"!==o&&"noembed"!==o&&"noframes"!==o||!le(/<\/no(script|embed|frames)/i,e.innerHTML)?(Te&&3===e.nodeType&&(t=e.textContent,K([E,I,L],e=>{t=re(t,e," ")}),e.textContent!==t&&(Z(a.removed,{element:e.cloneNode()}),e.textContent=t)),vt(C.afterSanitizeElements,e,null),!1):(ht(e),!0)},kt=function(e,t,a){if($[t])return!1;if(qe&&("id"===t||"name"===t)&&(a in o||a in dt))return!1;if(ce&&!$[t]&&le(P,t));else if(Q&&le(M,t));else if(Y.attributeCheck instanceof Function&&Y.attributeCheck(t,e));else if(!B[t]||$[t]){if(!(Nt(e)&&(H.tagNameCheck instanceof RegExp&&le(H.tagNameCheck,e)||H.tagNameCheck instanceof Function&&H.tagNameCheck(e))&&(H.attributeNameCheck instanceof RegExp&&le(H.attributeNameCheck,t)||H.attributeNameCheck instanceof Function&&H.attributeNameCheck(t,e))||"is"===t&&H.allowCustomizedBuiltInElements&&(H.tagNameCheck instanceof RegExp&&le(H.tagNameCheck,a)||H.tagNameCheck instanceof Function&&H.tagNameCheck(a))))return!1}else if(Ve[t]);else if(le(_,re(a,R,"")));
2else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==ie(a,"data:")||!Ge[e])if(ue&&!le(z,re(a,R,"")));else if(a)return!1;return!0},Nt=function(e){return"annotation-xml"!==e&&oe(e,O)},jt=function(e){vt(C.beforeSanitizeAttributes,e,null);const{attributes:t}=e;if(!t||xt(e))return;const o={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:B,forceKeepAttr:void 0};let r=t.length;for(;r--;){const s=t[r],{name:n,namespaceURI:l,value:d}=s,c=nt(n),u=d;let m="value"===n?u:se(u);if(o.attrName=c,o.attrValue=m,o.keepAttr=!0,o.forceKeepAttr=void 0,vt(C.uponSanitizeAttribute,e,o),m=o.attrValue,!De||"id"!==c&&"name"!==c||(bt(n,e),m="user-content-"+m),Ce&&le(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,m)){bt(n,e);continue}if("attributename"===c&&oe(m,"href")){bt(n,e);continue}if(o.forceKeepAttr)continue;if(!o.keepAttr){bt(n,e);continue}if(!pe&&le(/\/>/i,m)){bt(n,e);continue}Te&&K([E,I,L],e=>{m=re(m,e," ")});const p=nt(e.nodeName);if(kt(p,c,m)){if(w&&"object"==typeof h&&"function"==typeof h.getAttributeType)if(l);else switch(h.getAttributeType(p,c)){case"TrustedHTML":m=w.createHTML(m);break;case"TrustedScriptURL":m=w.createScriptURL(m)}if(m!==u)try{l?e.setAttributeNS(l,n,m):e.setAttribute(n,m),xt(e)?ht(e):J(a.removed)}catch(i){bt(n,e)}}else bt(n,e)}vt(C.afterSanitizeAttributes,e,null)},St=function e(t){let a=null;const o=gt(t);for(vt(C.beforeSanitizeShadowDOM,t,null);a=o.nextNode();)vt(C.uponSanitizeShadowNode,a,null),wt(a),jt(a),a.content instanceof s&&e(a.content);vt(C.afterSanitizeShadowDOM,t,null)};return a.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=null,i=null,n=null,d=null;if(Ze=!e,Ze&&(e="\x3c!--\x3e"),"string"!=typeof e&&!yt(e)){if("function"!=typeof e.toString)throw de("toString is not a function");if("string"!=typeof(e=e.toString()))throw de("dirty is not a string, aborting")}if(!a.isSupported)return e;if(Ie||ut(t),a.removed=[],"string"==typeof e&&(Be=!1),Be){if(e.nodeName){const t=nt(e.nodeName);if(!q[t]||U[t])throw de("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof l)o=ft("\x3c!----\x3e"),i=o.ownerDocument.importNode(e,!0),1===i.nodeType&&"BODY"===i.nodeName||"HTML"===i.nodeName?o=i:o.appendChild(i);else{if(!Me&&!Te&&!Ee&&-1===e.indexOf("<"))return w&&Oe?w.createHTML(e):e;if(o=ft(e),!o)return Me?null:Oe?k:""}o&&Le&&ht(o.firstChild);const c=gt(Be?e:o);for(;n=c.nextNode();)wt(n),jt(n),n.content instanceof s&&St(n.content);if(Be)return e;if(Me){if(ze)for(d=S.call(o.ownerDocument);o.firstChild;)d.appendChild(o.firstChild);else d=o;return(B.shadowroot||B.shadowrootmode)&&(d=T.call(r,d,!0)),d}let u=Ee?o.outerHTML:o.innerHTML;return Ee&&q["!doctype"]&&o.ownerDocument&&o.ownerDocument.doctype&&o.ownerDocument.doctype.name&&le(Re,o.ownerDocument.doctype.name)&&(u="<!DOCTYPE "+o.ownerDocument.doctype.name+">\n"+u),Te&&K([E,I,L],e=>{u=re(u,e," ")}),w&&Oe?w.createHTML(u):u},a.setConfig=function(){ut(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Ie=!0},a.clearConfig=function(){lt=null,Ie=!1},a.isValidAttribute=function(e,t,a){lt||ut({});const o=nt(e),r=nt(t);return kt(o,r,a)},a.addHook=function(e,t){"function"==typeof t&&Z(C[e],t)},a.removeHook=function(e,t){if(void 0!==t){const a=X(C[e],t);return-1===a?void 0:ee(C[e],a,1)[0]}return J(C[e])},a.removeHooks=function(e){C[e]=[]},a.removeAllHooks=function(){C={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},a}();const De={},Fe=function(e,t,a){let o=Promise.resolve();if(t&&t.length>0){document.getElementsByTagName("link");const e=document.querySelector("meta[property=csp-nonce]"),a=(null==e?void 0:e.nonce)||(null==e?void 0:e.getAttribute("nonce"));o=Promise.allSettled(t.map(e=>{if((e=function(e){return"/"+e}(e))in De)return;De[e]=!0;const t=e.endsWith(".css"),o=t?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${e}"]${o}`))return;const r=document.createElement("link");return r.rel=t?"stylesheet":"modulepreload",t||(r.as="script"),r.crossOrigin="",r.href=e,a&&r.setAttribute("nonce",a),document.head.appendChild(r),t?new Promise((t,a)=>{r.addEventListener("load",t),r.addEventListener("error",()=>
2a(new Error(`Unable to preload CSS for ${e}`)))}):void 0}))}function r(e){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return o.then(t=>{for(const e of t||[])"rejected"===e.status&&r(e.reason);return e().catch(r)})},Be={en:{header:{brandName:"CLIMATE FOR",brandHighlight:"ALL",nav:["Technology","Pricing","Team","Contact"],navMobile:["Technology","Pricing","Team","Contact"],cta:"Start Your Simulation",toast:"Translation in progress â English is the reference version.",toggleMenuLabel:"Menu",logoAlt:"Climate For All",newsLabel:"News"},hero:{titleLine1:"Make your very first sketch",titlePreposition:"",titleHighlight:"climate-aware",subtitle:'From an address: extreme climate data, municipal records and site analysis, then <span class="font-semibold text-brand-text">three retrofit strategies</span> tested on energy, overheating, comfort, daylight and moisture.',emailPlaceholder:"Your email",ctaBookCall:"Book a call",choiceHint:"Free conversation · no obligation · reply within two days",thanks:"Thanks · By CFA Team",tellUsMore:"Tell us more",contacted:"We'll be in touch soon.",ctaPrimary:"Reserve Pilot Access",ctaSecondary:"Share Your Input",browserUrl:"cfa/dashboard",dashboardTitle:"Climate For All Dashboard",stepLabel:"Step",steps:[{id:1,label:"Select Building Data"},{id:2,label:"Run Physics Simulation"},{id:3,label:"View Baseline Diagnosis"},{id:4,label:"Apply Retrofit Strategy"},{id:5,label:"Verify Performance"},{id:6,label:"Export Technical Report"}],titleHtml:'Make your first sketch <em class="hero-hl">climate-risk aware</em>'},dashboard:{iosWarningTitle:"iOS Optimization",iosWarningText:"Dashboard optimization for iOS is currently in progress. You may encounter visual issues.",iosWarningBtn:"Got it"},pilotBanner:{label:"Pilot Project",launchPrefix:"Starts",launchDate:"September 2026",ctaApply:"Apply for beta"},technology:{title:"Physics-Powered",titleHighlight:"Strategy",subtitle:"From minimal inputs to retrofit strategies ready for 2050 climate.",separator:"Beyond Traditional Methods",step1:{title:"1. Set Up in Minutes",description:'Minimal manual setup. <span class="text-amber-600 font-bold border-b-2 border-amber-200">Smart presets</span> for Materials and Systems let you start in minutes, not hours.',wwrLabel:"WWR South",orientationLabel:"Orientation",orientationValue:"SE (135°)",toggleLabels:["Solar Prot.","Therm. Mass"]},step2:{title:"2. Diagnose the Building",description:'Quantify the criticalities. Instant feedback on <span class="text-rose-500 font-bold border-b-2 border-rose-200">Risk, Comfort, and Opportunity</span> related to climate and existing building.',charts:{temperature:{label:"Operative Temperature",postIt:'<b>Winter:</b> Thermal Discomfort! âï¸<br /><b>Summer:</b> Critical Overheating! ð¥<br /><span class="text-[9px] text-emerald-700"><b>Action:</b> Insulate Envelope</span>'},daylight:{label:"Daylight Autonomy",postIt:'<b>Winter:</b> Insufficient DA! ð¡<br /><b>Summer:</b> Glare Risk! âï¸<br /><span class="text-[9px] text-amber-700"><b>Action:</b> Manage T-vis</span>'},humidity:{label:"Relative Humidity",postIt:'<b>Mold Risk!</b> ð<br />Surface humidity critical!<br /><span class="text-[9px] text-rose-700"><b>Action:</b> Mechanical Vent.</span>'}}},step3:{title:"3. Strategy Analysis",description:'Find the best strategy for <span class="text-indigo-600 font-bold border-b-2 border-indigo-200">Future Climate Scenarios</span> and realistic occupant behavior.',actionsLabel:"Targeted Interventions",optimizingLabel:"Analyzing Strategies...",strategies:[{name:"Apply ETICS Insulation",type:"Passive",score:98},{name:"Enable Night Ventilation",type:"Cooling",score:95},{name:"Install External Shading",type:"Protection",score:88}],effectLabel:"Impact"},step4:{title:"4. Performance Verification",description:'Reduction in risks and <span class="text-violet-600 font-bold border-b-2 border-violet-200">active systems</span> used, increasing <span class="text-violet-600 font-bold border-b-2 border-violet-200">comfort</span> and <span class="text-violet-600 font-bold border-b-2 border-violet-200">passive strategies</span>.',kpisLabel:"Post-Retrofit KPIs",compositeLabel:"Composite Score",classLabel:"Class A",kpis:[{label:"Heating",val:"145",retro:"24.5",unit:"kWh/m²",delta:"-83%"},{label:"Cooling",val:"85",retro:"16.5",unit:"kWh/m²",delta:"-81%"},{label:"Overheating",val:"18.5",retro:"2.4",unit:"%",delta:"-87%"},{label:"Daylight",val:"42",retro:"78",unit:"%",delta:"+86%"}]},step5:{title:"5. Automated Reporting",description:'Generate client-ready documentation in one click. From basic checks to full <span class="text-emerald-600 font-bold border-b-2 border-emerald-200">Renovation Roadmaps</span>.',reportTitle:"Energy Performance Report",reportSubtitle:"Detailed retrofit roadmap, from a first check to a full renovation plan.",generateButton:"Generate Report",reportReady:"Report Ready",clickToReset:"Click to reset",standardsNote:"*Based on EN/ISO methodology",cards:{recommended:{label:"Intervention",value:"Triple Glass"},energyClass:{label:"Energy Class",value:"A+",subValue:"Top 5%"},savings:{label:"Demand Reduction",value:"-83%"}}},impact:{items:[{value:"1 address",label:"To Start a Study",description:"Data collection begins from the project address alone."},{value:"5 domains",label:"In One Tool",description:"Energy, overheating, comfort, daylight, air quality & humidity."},{value:"30 yrs",label:"Liability Window",description:"Decisions ready for the UK Building Safety Act 30-year window."},{value:"2050",label:"Climate Readiness",description:"Performance verified against CMIP6 future climate scenarios."}]}},survey:{title:"Calibrate the",titleHighlight:"Model",subtitle:'Help us understand professional needs and adapt our work.<br /><span class="text-rose-600 font-bold border-b-2 border-rose-200">5 min</span> ⢠<span class="text-rose-600 font-bold border-b-2 border-rose-200">Anonymous</span>.',liveBadge:"Live Survey",landingText:"Your technical input directly shapes our simulation parameters. All responses are anonymous.",startButton:"Start Survey",questionPrefix:"Question",questionSuffix:"of 8",backButton:"Back",nextButton:"Next Step",submitButton:"Submit Feedback",otherPlaceholder:"Please specify...",validationSelectOne:"Please select at least one option.",validationSpecifyOther:"Please specify your answer for 'Other'.",successTitle:"Feedback Received.",successText:"Thank y
2ou for helping us calibrate the future of retrofit analysis.",successCta:"Get Early Access",startOverButton:"Start Over",questions:[{id:1,question:"What is your primary role in the building design or retrofit process?",options:["Energy Consultant","Architect","MEP / Civil Engineer","Academic / Researcher","Project Owner / Developer","Other"]},{id:2,question:"Which simulation tool(s) do you currently use for Building Energy Simulation?",options:["EnergyPlus / OpenStudio","IES-VE / TRNSYS","Ladybug / ClimateStudio","Spreadsheet-based / Simplified methods","None (manual calculations only)","Other"]},{id:3,question:"What is the biggest barrier you face when integrating simulation results into design decisions?",options:["Data reliability / input quality","Interoperability between BIM and BEM models","High software/licensing costs","Lack of time for detailed setup","Uncertainty about future climate scenarios","Other"]},{id:4,question:"At which design stage do you typically run energy simulations?",options:["Early concept design","Detailed design development","Post-retrofit performance verification","Continuous operation monitoring","Never (no simulation performed)","Other"]},{id:5,question:"Which thermal comfort standard(s) do you reference for compliance or certification?",options:["Adaptive (EN 16798 / ASHRAE 55)","Fanger PMV/PPD (ISO 7730)","CIBSE TM52 / TM59","None / Not applicable","Other"]},{id:6,question:"Do you require certification for your projects? If so, which scheme(s) do you target?",options:["LEED / BREEAM / WELL","Passivhaus Standard","National / Regional compliance (e.g., RE2020, EPBD)","No certification required","Other"]},{id:7,question:"What level of simulation precision is required for early-stage design decisions?",options:["Dynamic hourly (ISO 52016 / EnergyPlus)","Monthly quasi-steady (ISO 13790)","Static peak-load only","Not sure / Varies by project","Other"]},{id:8,question:"How confident are you that AI-assisted simulation tools can improve your design outcomes?",options:["Very confident â they will be essential","Somewhat confident â useful but need verification","Neutral â unsure of impact","Skeptical â prefer traditional methods","Prefer not to answer"]}]},data:{title:"The Evolution of",titleHighlight:"Simulation",subtitle:"From static assumptions to dynamic reality. See how we bridge the gap.",past:{title:"The Past: Static Tools",description:'Legacy software. Requires <span class="text-slate-600 font-bold border-b-2 border-slate-200">months of training</span> and â¬5,000+ licenses. <span class="text-slate-600 font-bold border-b-2 border-slate-200">High error margin</span> on human factors.',cardValue:"â¬5k+",cardLabel:"License Cost",tags:["Months of Training","Desktop Only"]},bottleneck:{title:"The Criticality: Fragmented Workflow",description:'Data loss between modeling, calculation, and reporting tools. <span class="text-orange-500 font-bold border-b-2 border-orange-200">Margins shrink</span> due to manual coordination. You <span class="text-orange-500 font-bold border-b-2 border-orange-200">lose control</span> of the design loop.',cardValue:"2-4w",cardLabel:"Delivery Time",tags:["Data Loss","Manual Coordination"]},patch:{title:"The Patch: Manual Calculation",description:'Fast calculation, but <span class="text-yellow-600 font-bold border-b-2 border-yellow-200">static snapshots</span>. Hours of reentry that <span class="text-yellow-600 font-bold border-b-2 border-yellow-200">ignores future climate risks</span>.',cardValue:"8-12h",cardLabel:"Manual Entry",tags:["No Future Climate","Static Analysis"]},future:{title:"The Future: Climate For All",description:'We fetch the data. We run the physics. <span class="text-emerald-600 font-bold border-b-2 border-emerald-200">Risk analysis & future proofing</span>. Make conscious choices in <span class="text-emerald-600 font-bold border-b-2 border-emerald-200">minutes, not weeks</span>.',cardValue:"minutes",cardLabel:"Full Analysis",tags:["RCO Analysis","Browser Based"],cta:"Experience the difference"}},pricing:{title:"Strategic",titleHighlight:"Partnership",subtitle:"Secure your access to the Pilot Project and shape the future of the platform.",discovery:{name:"Observer",price:"â¬0",period:"/mo",features:["Visual Analysis","Smart Presets","Basic Compliance Check"],cta:"Join Pilot"},pro:{name:"Pilot Partner",badge:"Early Access",priceLabel:"PREMIUM",subtitle:"For Individual Professionals",features:["Detailed Custom Inputs","Unlimited Simulations","Complete Diagnostic Results","3 Technical Reports/mo","Data & Results Export","Climate-Risk Roadmap"],cta:"Get Early Access"},enterprise:{name:"Industry Leader",price:"Custom",features:["Team Dashboard","Project Sharing","Internal Communication","API Access","Custom Consulting with Expert Team"],cta:"Request Info"}},team:{title:"The Team",subtitle:"The two of us cover building physics, machine learning, computer vision, entrepreneurship and sales.",fromText:"Studied at",members:[{name:"Tommaso Aiello",image:"static/Team_Tommaso_CEO_white_background.webp",logos:["polimi","centralesupelec"],linkedin:"https://www.linkedin.com/in/tommaso-aiello-1330022ab/",degree:"DD MSc, Building Engineer / entrepreneurship path",lines:["New tech and ML research: MIT, PoliMi Labs, Ministry of Culture (Rome)","Architecture firm experience"]},{name:"Giacomo Aiello",image:"static/Team_Giacomo_CMO_white_background.webp",logos:["polimi","sorbonne","upc"],linkedin:"https://www.linkedin.com/in/giacomo-aiello-67bb312a4/",degree:"BSc, Mechanical Engineer",lines:["International experience in Spain and France","Co-founded a US B2C news startup as CMO"]}],photoAlt:"Tommaso Aiello and Giacomo Aiello, the two founders of Climate For All"},faq:{title:"Technical Questions",items:[{question:"How do you know the engine is right?",answer:"We val
2idate the engine against ASHRAE Standard 140, the benchmark test suite for building energy software, case by case against the bands of its normative Annex A3. Moisture transport is verified against the EN 15026 analytical solution, the HAMSTAD benchmarks, and measured material data."},{question:"Which standards does the engine implement?",answer:"The core is the hourly dynamic method of ISO 52016-1. Around it: ISO 6946, ISO 13370, ISO 13789 and ISO 10456 for the envelope, EN 410, EN 673, ISO 9050 and ISO 15099 for glazing, EN ISO 10077-1 for frames, ISO 10211 for thermal bridges, EN 12831 for design load, EN 15242 and EN 16798-3, -5 and -7 for ventilation, ISO 7730 and EN 16798-1 for comfort, CIBSE TM52 and TM59 for overheating, ISO 13788, EN 15026 and ASHRAE 160 for moisture, EN 17037 for daylight, ISO 9613-1 and EN 12354-3 for noise, EN ISO 15927-3 for weather data."},{question:"Why not simply run an existing engine?",answer:"Two reasons. The first is the occupant: a standard engine runs schedules, and a schedule never forgets a window. We open windows with a stochastic model fitted on measured dwellings, keep a window in the state it is already in, and cap how often a home is purged in the morning, because a large part of the distance between a model and a lived in building is behavioural rather than physical. The second is the shape of the question: we run the same building across future climate scenarios and solve five domains together, where a general purpose engine answers one case at a time."},{question:"What do I put in, and what comes out?",answer:"An address. From there: the building register record, the site and its context, the hourly weather file for that location and the same file morphed onto future scenarios. The engine runs the building hour by hour across five domains and returns one recommendation rather than twelve separate warnings."},{question:"Which climate data do you use?",answer:"We build the weather data rather than download a single file. Station records and ERA5 reanalysis give the observed hourly series, and from those we are assembling actual years, typical years with the ISO 15927-4 selection, and design summer and extreme years for the hot end. Each file is then morphed onto CMIP6 scenarios with the Eames 2024 bounded weighted stretch, so a building is assessed in the climate it will stand in as well as the one it stands in now."},{question:"Do you look at the site, or only at the building?",answer:"Both. What is built around the building shades it and reduces its daylight, which we compute as a vertical sky component; the urban heat island changes the air it takes in; wind exposure changes its infiltration; outdoor air quality and noise decide whether a window can be opened at all, which feeds back into the free cooling the model is allowed to assume."},{question:"How deep does the moisture analysis go?",answer:"Three levels, chosen by what the question needs. Glaser under ISO 13788 for a first screening, a moisture penetration depth model for the exchange between the room and its surfaces during the hourly run, and a full heat and moisture solver for the wall build up when the decision turns on it."},{question:"Where does machine learning come in?",answer:"The physics runs first and the learning sits on top of it. We run a designed experiment over the parameter space and train surrogate models on the results, one per domain, then a macro model across them that learns how the domains trade against each other. The recommendation comes from that macro layer and is checked back against the hourly model before it is shown."},{question:"Where do the building archetypes come from?",answer:"They are built from the public building registers of the cities we have opened, not from generic templates: the regional energy certificate register for Milan, the national building database for Paris, the published certificate statistics for England and Wales. For Paris we also hold the metered consumption reported by the energy distributors from 2018 to 2024, so the model can be compared against bills and not only against another calculation."}]},trustedBy:{title:"Accompanied by",partners:{polimi:{alt:"Politecnico di Milano",title:"Politecnico di Milano"},polihub:{alt:"PoliHub",title:"PoliHub Innovation Park"},centralesupelec:{alt:"21st CentraleSupélec",title:"21st CentraleSupélec"}}}
2,footer:{title:"Join the",titleHighlight:"Pilot",subtitle:'Be among the first to test our physics engine <br class="hidden md:block"/>on your next renovation project.',toast:"This link isn't live yet â use the form below or write to us.",form:{namePlaceholder:"Your Name (Optional)",companyPlaceholder:"Company (Optional)",emailPlaceholder:"Work Email (Required)",messagePlaceholder:"Your thoughts or questions... (Optional)",submitButton:"Request Analysis"},success:{title:"We'll be in touch soon.",subtitle:'We\'ll get back to you within <span class="font-bold">48 hours</span>.',thanks:"THANKS,<br />BY CFA TEAM"},surveyPrompt:{title:"Would you be willing to help us further?",yes:"Yes, 5 minutes",no:"No, thanks",time:"5 min",anonymous:"Anonymous"},contactName:"Tommaso Aiello (on behalf of the team)",brandName:"CLIMATE FOR",brandHighlight:"ALL",location:"Paris, France / Milan, Italy",pilotDate:"Pilot project â limited seats",faqLink:"F.A.Q.",copyright:"© 2026 Climate For All.",signoff:"Let's improve the buildings we'll live in."},newsModal:{titlePrefix:"Latest",titleHighlight:"News",backToNews:"Back to news",editorial:"Climate For All Editorial",errorText:"Unable to load news feed.",kindNews:"News",kindArticles:"Articles"},common:{sending:"Sending...",earlyBird:"Early Member"},fakeDoorModal:{title:"Early Access List",description:"Climate For All is currently in a <b>closed pilot phase</b>. We are enrolling a limited group of pilot partners.",statusLabel:"Status: Open for Application",responseTime:"Response time: ~48 hours",cta:"Continue to Contact Form"}},it:{header:{brandName:"CLIMATE FOR",brandHighlight:"ALL",nav:["Tecnologia","Prezzi","Team","Contatti"],navMobile:["Tecnologia","Prezzi","Team","Contatti"],cta:"Inizia la Simulazione",toast:"Stiamo lavorando alla traduzione. Disponibile a breve.",toggleMenuLabel:"Menu",logoAlt:"Climate For All",newsLabel:"News"},hero:{titleLine1:"Strategie di riqualificazione",titlePreposition:"testate sul",titleHighlight:"clima di domani",subtitle:'Da un indirizzo: dati climatici estremi, registri comunali e analisi del sito, poi <span class="font-semibold text-brand-text">tre strategie di riqualificazione</span> testate su energia, surriscaldamento, comfort, luce naturale e umidità .',emailPlaceholder:"La tua email",ctaBookCall:"Prenota una call",choiceHint:"Colloquio gratuito · nessun impegno · risposta entro due giorni",thanks:"Grazie · Dal Team CFA",tellUsMore:"Dicci di più",contacted:"Ci sentiamo presto.",ctaPrimary:"Riserva l'Accesso Pilota",ctaSecondary:"Condividi la tua Opinione",browserUrl:"cfa/dashboard",dashboardTitle:"Dashboard Climate For All",stepLabel:"Step",steps:[{id:1,label:"Seleziona Dati Edificio"},{id:2,label:"Esegui Simulazione Fisica"},{id:3,label:"Visualizza Diagnosi Base"},{id:4,label:"Applica Strategia Riqualificazione"},{id:5,label:"Verifica Prestazioni"},{id:6,label:"Esporta Report Tecnico"}],titleHtml:'Fin dal primo schizzo, <em class="hero-hl">anticipa il rischio climatico</em>'},dashboard:{iosWarningTitle:"Ottimizzazione iOS",iosWarningText:"L'ottimizzazione per iOS è in corso. Potresti riscontrare problemi visivi.",iosWarningBtn:"Capito"},pilotBanner:{label:"Progetto Pilota",launchPrefix:"Inizio",launchDate:"settembre 2026",ctaApply:"Candidati per la beta"},technology:{title:"Workflow basato sulla",titleHighlight:"Strategia",subtitle:"Da input minimi a strategie di riqualificazione pronte per il clima del 2050.",separator:"Oltre i Metodi Tradizionali",step1:{title:"1. Configurazione Rapida",description:'Configurazione manuale minima. <span class="text-amber-600 font-bold border-b-2 border-amber-200">Preset intelligenti</span> per Materiali e Impianti ti permettono di iniziare in minuti, non ore.',wwrLabel:"WWR Sud",orientationLabel:"Orientamento",orientationValue:"SE (135°)",toggleLabels:["Scherm. Solari","Massa Termica"]},step2:{title:"2. Diagnostica dell'Edificio",description:'Quantifica le criticità . Feedback istantaneo su <span class="text-rose-500 font-bold border-b-2 border-rose-200">Rischio, Comfort e Opportunità </span> legati al clima e all\'edificio esistente.',charts:{temperature:{label:"Temperatura Operativa",postIt:'<b>Inverno:</b> Discomfort Termico! âï¸<br /><b>Estate:</b> Surriscaldamento Critico! ð¥<br /><span class="text-[9px] text-emerald-700"><b>Azione:</b> Isolare Involucro</span>'},daylight:{label:"Autonomia Luminosa",postIt:'<b>Inverno:</b> DA Insufficiente! ð¡<br /><b>Estate:</b> Rischio Abbagliamento! âï¸<br /><span class="text-[9px] text-amber-700"><b>Azione:</b> Gestisci Ï-vis</span>'},humidity:{label:"Umidità Relativa",postIt:'<b>Rischio Muffa!</b> ð<br />Umidità superficiale critica!<br /><span class="text-[9px] text-rose-700"><b>Azione:</b> Ventilazione Mecc.</span>'}}},step3:{title:"3. Analisi Strategica",description:'Trova la strategia migliore per <span class="text-indigo-600 font-bold border-b-2 border-indigo-200">Scenari Climatici Futuri</span> e comportamento realistico degli occupanti.',actionsLabel:"Interventi Mirati",optimizingLabel:"Analisi Strategie...",strategies:[{name:"Applica Isolamento ETICS",type:"Passivo",score:98},{name:"Attiva Ventilazione Notturna",type:"Raffrescamento",score:95},{name:"Installa Schermature Esterne",type:"Protezione",score:88}],effectLabel:"Impatto"},step4:{title:"4. Verifica Prestazionale",description:'Riduzione dei rischi e dei <span class="text-violet-600 font-bold border-b-2 border-violet-200">sistemi attivi</span>, aumentando il <span class="text-violet-600 font-bold border-b-2 border-violet-200">comfort</span>
2 e le <span class="text-violet-600 font-bold border-b-2 border-violet-200">strategie passive</span>.',kpisLabel:"KPI Post-Riqualificazione",compositeLabel:"Punteggio Composito",classLabel:"Classe A",kpis:[{label:"Riscaldamento",val:"145",retro:"24.5",unit:"kWh/m²",delta:"-83%"},{label:"Raffrescamento",val:"85",retro:"16.5",unit:"kWh/m²",delta:"-81%"},{label:"Surriscaldamento",val:"18.5",retro:"2.4",unit:"%",delta:"-87%"},{label:"Luce Naturale",val:"42",retro:"78",unit:"%",delta:"+86%"}]},step5:{title:"5. Reportistica Automatizzata",description:'Genera documentazione pronta per il cliente in un click. Dai controlli di base alle <span class="text-emerald-600 font-bold border-b-2 border-emerald-200">Roadmap di Riqualificazione</span> complete.',reportTitle:"Rapporto di Prestazione Energetica",reportSubtitle:"Percorso di riqualificazione dettagliato, dal primo controllo al piano completo.",generateButton:"Genera Report",reportReady:"Report Pronto",clickToReset:"Clicca per resettare",standardsNote:"*Basata sulla metodologia EN/ISO",cards:{recommended:{label:"Intervento",value:"Triplo Vetro"},energyClass:{label:"Classe Energetica",value:"A+",subValue:"Top 5%"},savings:{label:"Riduzione Domanda",value:"-83%"}}},impact:{items:[{value:"15 min",label:"Strategia Pronta",description:"Dai dati dell'edificio a una strategia di riqualificazione concreta."},{value:"â¬3.000",label:"Consulenza Risparmiata",description:"Costo della consulenza energetica esterna sostituito per progetto."},{value:"30 anni",label:"Finestra di Responsabilità ",description:"Decisioni pronte per la finestra di 30 anni del UK Building Safety Act."},{value:"2050",label:"Climate Readiness",description:"Prestazioni verificate rispetto agli scenari climatici futuri dell'IPCC."}]}},survey:{title:"Calibra il",titleHighlight:"Modello",subtitle:'Aiutaci a comprendere le esigenze professionali e ad adattare il nostro lavoro.<br /><span class="text-rose-600 font-bold border-b-2 border-rose-200">5 min</span> ⢠<span class="text-rose-600 font-bold border-b-2 border-rose-200">Anonimo</span>.',liveBadge:"Sondaggio Live",landingText:"Il tuo input tecnico modella direttamente i nostri parametri di simulazione. Tutte le risposte sono anonime.",startButton:"Inizia Sondaggio",questionPrefix:"Domanda",questionSuffix:"di 8",backButton:"Indietro",nextButton:"Successivo",submitButton:"Invia Feedback",otherPlaceholder:"Si prega di specificare...",validationSelectOne:"Seleziona almeno un'opzione.",validationSpecifyOther:"Si prega di specificare la risposta per 'Altro'.",successTitle:"Feedback Ricevuto.",successText:"Grazie per aiutarci a calibrare il futuro dell'analisi di riqualificazione.",successCta:"Richiedi Accesso Anticipato",startOverButton:"Ricomincia",questions:[{id:1,question:"Qual è il tuo ruolo principale nel processo di progettazione o riqualificazione?",options:["Consulente Energetico","Architetto","Ingegnere MEP / Civile","Accademico / Ricercatore","Proprietario / Sviluppatore Imm.","Altro"]},{id:2,question:"Quali strumenti di simulazione utilizzi attualmente per la Simulazione Energetica?",options:["EnergyPlus / OpenStudio","IES-VE / TRNSYS","Ladybug / ClimateStudio","Fogli di calcolo / Metodi semplificati","Nessuno (solo calcoli manuali)","Altro"]},{id:3,question:"Qual è il più grande ostacolo all'integrazione dei risultati di simulazione nelle decisioni?",options:["Affidabilità dati / qualità input","Interoperabilità tra modelli BIM e BEM","Costi elevati software/licenze","Mancanza di tempo per setup dettagliato","Incertezza su scenari climatici futuri","Altro"]},{id:4,question:"In quale fase di progettazione esegui tipicamente le simulazioni energetiche?",options:["Concept design preliminare","Sviluppo progetto dettagliato","Verifica prestazioni post-intervento","Monitoraggio operativo continuo","Mai (nessuna simulazione eseguita)","Altro"]},{id:5,question:"Quali standard di comfort termico prendi a riferimento per conformità o certificazione?",options:["Adattivo (EN 16798 / ASHRAE 55)","Fanger PMV/PPD (ISO 7730)","CIBSE TM52 / TM59","Nessuno / Non applicabile","Altro"]},{id:6,question:"Richiedi certificazioni per i tuoi progetti? Se sì, quali schemi?",options:["LEED / BREEAM / WELL","Standard Passivhaus","Conformità Nazionale / Regionale (es. 110%, EPBD)","Nessuna certificazione richiesta","Altro"]},{id:7,question:"Quale livello di precisione è richiesto per le decisioni in fase preliminare?",options:["Dinamico orario (ISO 52016 / EnergyPlus)","Mensile quasi-stazionario (ISO 13790)","Statico (solo carichi di picco)","N
2on sicuro / Variabile per progetto","Altro"]},{id:8,question:"Quanto sei fiducioso che gli strumenti IA possano migliorare i tuoi risultati?",options:["Molto fiducioso â saranno essenziali","Abbastanza fiducioso â utili ma da verificare","Neutro â incerto sull'impatto","Scettico â preferisco metodi tradizionali","Preferisco non rispondere"]}]},data:{title:"L'Evoluzione della",titleHighlight:"Simulazione",subtitle:"Da ipotesi statiche a realtà dinamica. Guarda come colmiamo il divario.",past:{title:"Il Passato: Strumenti Statici",description:'Software obsoleti. Richiedono <span class="text-slate-600 font-bold border-b-2 border-slate-200">mesi di formazione</span> e licenze costose. <span class="text-slate-600 font-bold border-b-2 border-slate-200">Alto margine di errore</span> sui fattori umani.',cardValue:"â¬5k+",cardLabel:"Costo Licenza",tags:["Mesi di Formazione","Solo Desktop"]},bottleneck:{title:"La Criticità : Workflow Frammentato",description:'Perdita dati tra strumenti di modellazione, calcolo e reportistica. <span class="text-orange-500 font-bold border-b-2 border-orange-200">Margini ridotti</span> per coordinamento manuale. <span class="text-orange-500 font-bold border-b-2 border-orange-200">Perdi il controllo</span> del loop di design.',cardValue:"2-4sett",cardLabel:"Tempo Consegna",tags:["Perdita Dati","Coord. Manuale"]},patch:{title:"Il Palliativo: Calcolo Manuale",description:'Calcolo rapido, ma <span class="text-yellow-600 font-bold border-b-2 border-yellow-200">istantanee statiche</span>. Ore di reinserimento che <span class="text-yellow-600 font-bold border-b-2 border-yellow-200">ignorano i rischi climatici futuri</span>.',cardValue:"8-12h",cardLabel:"Inserimento Manuale",tags:["No Clima Futuro","Analisi Statica"]},future:{title:"Il Futuro: Climate For All",description:'Recuperiamo i dati. Eseguiamo la fisica. <span class="text-emerald-600 font-bold border-b-2 border-emerald-200">Analisi RCO & Future Proofing</span>. Fai scelte consapevoli in <span class="text-emerald-600 font-bold border-b-2 border-emerald-200">meno di 15 minuti</span>.',cardValue:"<15min",cardLabel:"Analisi Completa",tags:["Analisi RCO","Browser Based"],cta:"Scopri la differenza"}},pricing:{title:"Partnership",titleHighlight:"Strategica",subtitle:"Assicurati l'accesso al Progetto Pilota e plasma il futuro della piattaforma.",discovery:{name:"Osservatore",price:"â¬0",period:"/mese",features:["Analisi Visiva","Preset Intelligenti","Controllo Conformità Base"],cta:"Unisciti al Pilota"},pro:{name:"Partner Pilota",badge:"Accesso Prioritario",priceLabel:"PREMIUM",subtitle:"Per Professionisti Indipendenti",features:["Input Personalizzati Dettagliati","Simulazioni Illimitate","Risultati Diagnostici Completi","3 Report Tecnici/mese","Export Dati e Risultati","Roadmap Rischio Climatico"],cta:"Richiedi Accesso"},enterprise:{name:"Leader del Settore",price:"Su Misura",features:["Dashboard Team","Condivisione Progetti","Comunicazione Interna","Accesso API","Consulenza Personalizzata con Team Esperti"],cta:"Richiedi Info"}},team:{title:"Il Team",subtitle:"In due copriamo fisica dell edificio, machine learning, computer vision, imprenditorialita e vendita.",fromText:"Formazione",members:[{name:"Tommaso Aiello",image:"static/Team_Tommaso_CEO_white_background.webp",logos:["polimi","centralesupelec"],linkedin:"https://www.linkedin.com/in/tommaso-aiello-1330022ab/",degree:"DD MSc, ingegnere edile / percorso imprenditoriale",lines:["Ricerca su nuove tecnologie e ML: MIT, PoliMi Labs, Ministero della Cultura (Roma)","Esperienza in studio di architettura"]},{name:"Giacomo Aiello",image:"static/Team_Giacomo_CMO_white_background.webp",logos:["polimi","sorbonne","upc"],linkedin:"https://www.linkedin.com/in/giacomo-aiello-67bb312a4/",degree:"BSc, ingegnere meccanico",lines:["Esperienza internazionale in Spagna e Francia","Cofondatore e CMO di una startup B2C americana nel settore news"]}],photoAlt:"Tommaso Aiello e Giacomo Aiello, i due fondatori di Climate For All"},faq:{title:"Domande Tecniche",items:[{question:"Come sapete che il motore è corretto?",answer:"Validiamo il motore con la norma ASHRAE Standard 140, la suite di casi di prova di riferimento per i software di simulazione energetica, caso per caso contro le bande del suo allegato normativo A3. Il trasporto di umidità è verificato contro la soluzione analitica della EN 15026, i casi HAMSTAD e dati di materiali misurati."},{question:"Quali norme implementa il motore?",answer:"Il nucleo è il metodo dinamico orario della ISO 52016-1. Attorno: ISO 6946, ISO 13370, ISO 13789 e ISO 10456 per l'involucro, EN 410, EN 673, ISO 9050 e ISO 15099 per i vetri, EN ISO 10077-1 per i telai, ISO 10211 per i ponti termici, EN 12831 per il carico di progetto, EN 15242 e EN 16798-3, -5 e -7 per la ventilazione, ISO 7730 e EN 16798-1 per il comfort, CIBSE TM52 e TM59 per il surriscaldamento, ISO 13788, EN 15026 e ASHRAE 160 per l'umidità , EN 17037 per la luce naturale, ISO 9613-1 e EN 12354-3 per il rumore, EN ISO 15927-3 per i dati climatici."},{question:"Perché non usare un motore già esistente?",answer:"Due ragioni. La prima è l'occupante: un motore standard applica profili orari, e un profilo non dimentica mai una finestra aperta. Noi apriamo le finestre con un modello stocastico calibrato su alloggi misurati, manteniamo una finestra nello stato in cui già si trova, e limitiamo quante volte una casa viene arieggiata al mattino, perché gran parte della distanza fra un modello e un edificio abitato è comportamentale prima che fisica. La seconda è la forma della domanda: facciamo girare lo stesso edificio su scenari climatici futuri e risolviamo cinque domini insieme, dove un motore generalista risponde a un caso per volta."},{question:"Cosa fornisco e cosa esce?",answer:"Un indirizzo. Da lì: la scheda del registro edilizio, il sito e il suo contesto, il file climatico orario di quel luogo e lo stesso file deformato sugli scenari futuri. Il motore simula l'edificio ora per ora su cinque domini e restituisce una raccomandazione, non dodici avvisi separati."},{question:"Quali dati climatici usate?",answer:"Costruiamo i dati meteo invece di scaricare un file unico. I registri di stazione e la rianalisi ERA5 danno la serie oraria osservata, e da quella stiamo assemblando anni reali, anni tipo con la selezione ISO 15927-4, e anni estivi di progetto ed estremi per la coda calda. Ogni file viene poi deformato sugli scenari CMIP6 con lo stiramento pesato limitato di Eames 2024, così un edificio è valutato nel clima in cui si troverà oltre che in quello di oggi."},{question:"Guardate il sito o solo l'edificio?",answer:"Entrambi. Ciò che è costruito attorno ombreggia l'edificio e ne riduce la luce naturale, che calcoliamo come componente verticale di cielo; l'isola di calore urbana cambia l'aria che prende; l'esposizione al vento cambia la sua infiltrazione; qualità dell'aria esterna e rumore decidono se una finestra può essere aperta, il che limita il raffrescamento gratuito che il modello può assumere."},{question:"Quanto va a fondo l'analisi dell'umidità ?",answer:"Tre livelli, scelti in base a cosa chiede la domanda. Glaser secondo la ISO 13788 per un primo vaglio, un modello di profondità di penetrazione per lo scambio fra ambiente e superfici durante la simulazione oraria, e un solutore completo di calore e umidità per la stratigrafia quando la decisione dipende da quello."},{question:"Dove entra l'apprendimento automatico?",answer:"La fisica viene prima e l'apprendimento si appoggia sopra. Eseguiamo un piano di esperimenti sullo spazio dei parametri e addestriamo modelli surrogati sui risultati, uno per dominio, poi un macro modello che impara come i domini si scambiano fra loro. La raccomandazione nasce da quel livello macro e viene riverificata contro il modello orario prima di essere mostrata."},{question:"Da dove vengono gli archetipi di edificio?",answer:"Sono costruiti dai registri edilizi pubblici delle città aperte, non da modelli generici: il registro regionale dei certificati energetici per Milano, la banca dati nazionale degli edifici per Parigi, le statistiche pubblicate dei certificati per Inghilterra e Galles. Per Parigi disponiamo anche dei consumi misurati comunicati dai distributori di energia dal 2018 al 2024, così il modello si può confrontare con le bollette e non solo con un altro calcolo."}]},trustedBy:{title:"Accompagnati da",partners:{polimi:{alt:"Politecnico di Milano",title:"Politecnico di Milano"},polihub:{alt:"PoliHub",title:"PoliHub Innovation Park"},centralesupelec:{alt:"21st CentraleSupélec",title:"21st CentraleSupélec"}}},footer:{title:"Unisciti al",titleHighlight:"Pilota",subtitle:'Sii tra i primi a testare il nostro motore fisico <br class="hidden md:block"/>sul tuo prossimo progetto di riqualificazione.',toast:"Link disponibili a breve.",form:{namePlaceholder:"Il Tuo Nome (Opzionale)",companyPlaceholder:"Azienda (Opzionale)",emailPlaceholder:"Email Lavoro (Richiesto)",messagePlaceholder:"Le tue idee o domande... (Opzionale)",submitButton:"Richiedi Analisi"},success:{title:"Ci faremo sentire presto.",subtitle:'Il progetto pilota inizia a <span class="font-bold">Maggio 2026</span>.',thanks:"GRAZIE,<br />DAL TEAM CFA"},surveyPrompt:{title:"Saresti disposto ad aiutarci ulteriormente?",yes:"Sì, 5 minuti",no:"No, grazie",time:"5 min",anonymous:"Anonimo"},contactName:"Tommaso Aiello (a nome del team)",brandName:"CLIMATE FOR",brandHighlight:"ALL",location:"Parigi, Francia / Milano, Italia",pilotDate:"Progetto Pilota: Inizio Maggio 2026",faqLink:"FAQ",copyright:"© 2026 Climate For All.",signoff:"Miglioriamo gli edifici in cui vivremo."},newsModal:{titlePrefix:"Ultime",titleHighlight:"Novità ",backToNews:"Torna alle notizie",editorial:"Redazione Climate For All",errorText:"Impossibile caricare le notizie.",kindNews:"Notizie",kindArticles:"Articoli"},common:{sending:"Invio in corso...",earlyBird:"Early Member"}
2,fakeDoorModal:{title:"Lista Accesso Anticipato",description:"Climate For All è attualmente in una <b>fase pilota chiusa</b>. Stiamo selezionando partner istituzionali per la primavera 2026.",statusLabel:"Stato: Candidature aperte",responseTime:"Tempo di risposta: ~48 ore",cta:"Vai al modulo di contatto"}},fr:{header:{brandName:"CLIMATE FOR",brandHighlight:"ALL",nav:["Technologie","Tarifs","Ãquipe","Contact"],navMobile:["Technologie","Tarifs","Ãquipe","Contact"],cta:"Lancer la Simulation",toast:"Version française en cours de finalisation.",toggleMenuLabel:"Menu",logoAlt:"Climate For All",newsLabel:"News"},hero:{titleLine1:"Strategies de renovation",titlePreposition:"testees sur",titleHighlight:"le climat de demain",subtitle:"à partir d'une adresse : données climatiques extrêmes, registres municipaux et analyse du site, puis <span class=\"font-semibold text-brand-text\">trois stratégies de rénovation</span> testées sur l'énergie, la surchauffe, le confort, la lumière naturelle et l'humidité.",emailPlaceholder:"Votre email",ctaBookCall:"Reserver un appel",choiceHint:"Ãchange gratuit · sans engagement · réponse sous deux jours",thanks:"Merci · Par l'équipe CFA",tellUsMore:"Dites-nous en plus",contacted:"On revient vers vous.",ctaPrimary:"Réserver l'Accès Pilote",ctaSecondary:"Partager votre Avis",browserUrl:"cfa/dashboard",dashboardTitle:"Tableau de Bord CFA",stepLabel:"Ãtape",steps:[{id:1,label:"Données Site"},{id:2,label:"Lancer Calcul"},{id:3,label:"Diagnostic Initial"},{id:4,label:"Scénarios Rénov."},{id:5,label:"Vérification Perf."},{id:6,label:"Rapport Technique"}],titleHtml:'Dès la première esquisse, <em class="hero-hl">anticipez le risque climatique</em>'},dashboard:{iosWarningTitle:"Optimisation iOS",iosWarningText:"L'optimisation pour iOS est en cours. Des problèmes visuels peuvent survenir.",iosWarningBtn:"Compris"},pilotBanner:{label:"Programme Pilote",launchPrefix:"Debut",launchDate:"septembre 2026",ctaApply:"Demander un acces beta"},technology:{title:"Méthodologie",titleHighlight:"Stratégique",subtitle:"De la saisie simplifiée aux stratégies de rénovation prêtes pour le climat 2050.",separator:"Au-delà des Méthodes Traditionnelles",step1:{title:"1. Configuration Rapide",description:'Paramétrage rapide. <span class="text-amber-600 font-bold border-b-2 border-amber-200">Bibliothèques Intelligentes</span> de matériaux et systèmes : lancez votre projet en quelques minutes.',wwrLabel:"Ratio Vitrage (WWR)",orientationLabel:"Orientation",orientationValue:"SE (135°)",toggleLabels:["Protections Solaires","Inertie Therm."]},step2:{title:"2. Diagnostiquer le Bâtiment",description:'Quantifiez les criticités. Analyse instantanée des <span class="text-rose-500 font-bold border-b-2 border-rose-200">Risques, Confort et Opportunités</span> liés au climat et au bâtiment existant.',charts:{temperature:{label:"Température Opérative",postIt:'<b>Hiver :</b> Parois froides ! âï¸<br /><b>Ãté :</b> Surchauffe Critique ! ð¥<br /><span class="text-[9px] text-emerald-700"><b>Action :</b> ITE + Inertie</span>'},daylight:{label:"Autonomie (ALJ)",postIt:'<b>Hiver :</b> FLJ insuffisant ! ð¡<br /><b>Ãté :</b> Risque Ãblouissement ! âï¸<br /><span class="text-[9px] text-amber-700"><b>Action :</b> Gérer T-vis</span>'},humidity:{label:"Humidité Relative",postIt:'<b>Risque Moisissures !</b> ð<br />Point de rosée atteint.<br /><span class="text-[9px] text-rose-700"><b>Action :</b> VMC Double Flux</span>'}}},step3:{title:"3. Analyse Stratégique",description:'Testez les bouquets de travaux face aux <span class="text-indigo-600 font-bold border-b-2 border-indigo-200">Scénarios Climatiques Futurs</span> et à l\'usage réel.',actionsLabel:"Bouquets de Travaux",optimizingLabel:"Simulation en cours...",strategies:[{name:"Isolation Extérieure (ITE)",type:"Passif",score:98},{name:"Surventilation Nocturne",type:"Rafraîchissement",score:95},{name:"Protections Solaires Extérieures",type:"Protection Solaire",score:88}],effectLabel:"Gain"},step4:{title:"4. Vérification Performance",description:'Réduction des risques et des <span class="text-violet-600 font-bold border-b-2 border-violet-200">systèmes actifs</span>, au profit du <span class="text-violet-600 font-bold border-b-2 border-violet-200">confort</span> et des <span class="text-violet-600 font-bold border-b-2 border-violet-200">stratégies passives</span>.',kpisLabel:"Indicateurs Post-Rénov.",compositeLabel:"Score Global",classLabel:"DPE A",kpis:[{label:"Chauffage",val:"145",retro:"24.5",unit:"kWh/m².an",delta:"-83%"},{label:"Refroidiss.",val:"85",retro:"16.5",unit:"kWh/m².an",delta:"-81%"},{label:"Inconfort Ãté",val:"18.5",retro:"2.4",unit:"% temps",delta:"-87%"},{label:"Ãclairage Nat.",val:"42",retro:"78",unit:"% s.u.",delta:"+86%"}]},step5:{title:"5. Rapport Automatisé",description:'Génération de rapports prêts pour le client en un clic. Des vérifications de base à la <span class="text-emerald-600 font-bold border-b-2 border-emerald-200">Feuille de Route de Rénovation</span>.',reportTitle:"Rapport de Performance Ãnergétique",reportSubtitle:"Feuille de route de rénovation détaillée, du premier contrôle au plan complet.",generateButton:"Télécharger le Rapport",reportReady:"Rapport Disponible",clickToReset:"Nouvelle Ãtude",standardsNote:"*Basée sur la méthodologie EN/ISO",cards:{recommended:{label:"Préconisation",value:"Triple Vitrage"},energyClass:{label:"Ãtiquette Ãnergie",value:"A",subValue:"Top 5%"},savings:{label:"Gain Ãnergétique",value:"-83%"}}}
2,impact:{items:[{value:"15 min",label:"Stratégie Prête",description:"Des données du bâtiment à une stratégie de rénovation concrète."},{value:"3 000 â¬",label:"Conseil Ãconomisé",description:"Coût de la consultation énergétique externe remplacé par projet."},{value:"30 ans",label:"Fenêtre de Responsabilité",description:"Décisions prêtes pour la fenêtre de 30 ans du UK Building Safety Act."},{value:"2050",label:"Climate Readiness",description:"Performance vérifiée selon les scénarios climatiques futurs du GIEC."}]}},survey:{title:"Calibrer le",titleHighlight:"Modèle",subtitle:'Aidez-nous à affiner l\'outil selon vos besoins pros.<br /><span class="text-rose-600 font-bold border-b-2 border-rose-200">5 min</span> ⢠<span class="text-rose-600 font-bold border-b-2 border-rose-200">Anonyme</span>.',liveBadge:"Sondage en cours",landingText:"Vos retours techniques définissent nos hypothèses de simulation.",startButton:"Participer",questionPrefix:"Question",questionSuffix:"sur 8",backButton:"Précédent",nextButton:"Suivant",submitButton:"Envoyer les réponses",otherPlaceholder:"Veuillez préciser...",validationSelectOne:"Sélectionnez au moins une option.",validationSpecifyOther:"Merci de préciser votre réponse.",successTitle:"Réponses enregistrées.",successText:"Merci de nous aider à calibrer l'avenir de l'analyse en rénovation.",successCta:"Demander un Accès",startOverButton:"Recommencer",questions:[{id:1,question:"Quel est votre rôle principal dans le processus de conception ou de rénovation ?",options:["Consultant en Ãnergie","Architecte","Ingénieur MEP / Civil","Académique / Chercheur","Maître d'Ouvrage / Promoteur","Autre"]},{id:2,question:"Quels outils de simulation utilisez-vous actuellement pour la Simulation Ãnergétique ?",options:["EnergyPlus / OpenStudio","IES-VE / TRNSYS","Ladybug / ClimateStudio","Tableurs / Méthodes simplifiées","Aucun (calculs manuels uniquement)","Autre"]},{id:3,question:"Quel est le plus grand obstacle à l'intégration des résultats de simulation ?",options:["Fiabilité des données / qualité des entrées","Interopérabilité entre modèles BIM et BEM","Coûts élevés des logiciels / licences","Manque de temps pour le paramétrage détaillé","Incertitude sur les scénarios climatiques futurs","Autre"]},{id:4,question:"à quelle phase de conception lancez-vous généralement des simulations énergétiques ?",options:["Conception préliminaire (Esquisse)","Développement détaillé (APD/PRO)","Vérification de performance post-rénovation","Suivi d'exploitation continu","Jamais (aucune simulation effectuée)","Autre"]},{id:5,question:"Quelle(s) norme(s) de confort thermique référencez-vous pour la conformité ou la certification ?",options:["Adaptatif (EN 16798 / ASHRAE 55)","Fanger PMV/PPD (ISO 7730)","CIBSE TM52 / TM59","Aucune / Non applicable","Autre"]},{id:6,question:"Exigez-vous une certification pour vos projets ? Si oui, laquelle ?",options:["LEED / BREEAM / WELL","Standard Passivhaus","Conformité Nationale / Régionale (ex. RE2020, EPBD)","Aucune certification requise","Autre"]},{id:7,question:"Quel niveau de précision de simulation est requis pour les décisions en phase amont ?",options:["Dynamique horaire (ISO 52016 / EnergyPlus)","Mensuel quasi-stationnaire (ISO 13790)","Statique (Charges de pointe uniquement)","Incertain / Variable selon le projet","Autre"]},{id:8,question:"Dans quelle mesure êtes-vous confiant que les outils assistés par IA peuvent améliorer vos résultats ?",options:["Très confiant â ils seront essentiels","Plutôt confiant â utiles mais à vérifier","Neutre â incertain de l'impact","Sceptique â je préfère les méthodes traditionnelles","Je préfère ne pas répondre"]}]},data:{title:"L'Ãvolution de la",titleHighlight:"Simulation",subtitle:"Des hypothèses statiques à la réalité dynamique. Comblez l'écart de performance.",past:{title:"Le Passé : Outils Statiques",description:'Logiciels experts. Nécessitent <span class="text-slate-600 font-bold border-b-2 border-slate-200">des mois de formation</span>. Coût élevé. <span class="text-slate-600 font-bold border-b-2 border-slate-200">Facteur humain négligé</span> (Performance Gap).',cardValue:">5kâ¬",cardLabel:"Coût Licence",tags:["Expertise Requise","Licence Poste Fixe"]},bottleneck:{title:"La Criticité : Flux Fragmenté",description:'Ressaisie manuelle entre la 3D (Archi) et le Calcul (Thermique). <span class="text-orange-500 font-bold border-b-2 border-orange-200">Perte de temps</span>
2 et risques d\'erreurs. <span class="text-orange-500 font-bold border-b-2 border-orange-200">Itérations limitées</span>.',cardValue:"2-4sem",cardLabel:"Délai Ãtude",tags:["Perte de Données","Silos Métiers"]},patch:{title:"Le Palliatif : Calcul Manuel",description:'Tableurs Excel rapides mais <span class="text-yellow-600 font-bold border-b-2 border-yellow-200">statiques</span>. Ignorent l\'inertie et le confort d\'été. <span class="text-yellow-600 font-bold border-b-2 border-yellow-200">Pas de résilience</span> climatique.',cardValue:"8-12h",cardLabel:"Temps Ingé",tags:["Vision Statique","Risque Surchauffe"]},future:{title:"Le Futur : Climate For All",description:'Récupération géométrique auto. Moteur physique temps réel. <span class="text-emerald-600 font-bold border-b-2 border-emerald-200">Analyse Globale (Coût/Carbone/Confort)</span>. Choix éclairés en <span class="text-emerald-600 font-bold border-b-2 border-emerald-200">moins de 15 min</span>.',cardValue:"<15min",cardLabel:"Analyse Complète",tags:["Approche Globale","Application Web"],cta:"Voir la différence"}},pricing:{title:"Partenariat",titleHighlight:"Stratégique",subtitle:"Rejoignez le Programme Pilote et co-construisez la plateforme de demain.",discovery:{name:"Observateur",price:"Gratuit",period:"/mois",features:["Analyse Visuelle","Préréglages Intelligents","Vérification Conformité de Base"],cta:"Devenir Observateur"},pro:{name:"Partenaire Pilote",badge:"Accès Anticipé",priceLabel:"PREMIUM",subtitle:"Pour Indépendants & TPE",features:["Saisies Personnalisées Détaillées","Simulations Illimitées","Résultats Diagnostiques Complets","3 Rapports Techniques/mois","Export Données & Résultats","Feuille de Route Risque Climatique"],cta:"Accès Anticipé"},enterprise:{name:"Grands Comptes",price:"Sur mesure",features:["Tableau de Bord d'Ãquipe","Partage de Projets","Communication Interne","Accès API","Consulting Sur Mesure"],cta:"Contacter l'Ãquipe"}},team:{title:"L'Ãquipe",subtitle:"à nous deux : physique du bâtiment, machine learning, vision par ordinateur, entrepreneuriat et vente.",fromText:"Formation",members:[{name:"Tommaso Aiello",image:"static/Team_Tommaso_CEO_white_background.webp",logos:["polimi","centralesupelec"],linkedin:"https://www.linkedin.com/in/tommaso-aiello-1330022ab/",degree:"DD MSc, ingénieur du bâtiment / parcours entrepreneuriat",lines:["Recherche nouvelles technologies et ML : MIT, PoliMi Labs, ministere de la Culture (Rome)","Experience en agence d architecture"]},{name:"Giacomo Aiello",image:"static/Team_Giacomo_CMO_white_background.webp",logos:["polimi","sorbonne","upc"],linkedin:"https://www.linkedin.com/in/giacomo-aiello-67bb312a4/",degree:"BSc, ingenieur mecanique",lines:["Experience internationale en Espagne et en France","Cofondateur et CMO d une startup B2C americaine dans l actualite"]}],photoAlt:"Tommaso Aiello et Giacomo Aiello, les deux fondateurs de Climate For All"},faq:{title:"Questions Techniques",items:[{question:"Comment savez-vous que le moteur est juste ?",answer:"Nous validons le moteur avec la norme ASHRAE Standard 140, la suite de cas d'essai de référence pour les logiciels de simulation énergétique, cas par cas contre les bandes de son annexe normative A3. Le transport d'humidité est vérifié contre la solution analytique de l'EN 15026, les cas HAMSTAD et des données matériaux mesurées."},{question:"Quelles normes le moteur applique-t-il ?",answer:"Le cÅur est la méthode dynamique horaire de l'ISO 52016-1. Autour : ISO 6946, ISO 13370, ISO 13789 et ISO 10456 pour l'enveloppe, EN 410, EN 673, ISO 9050 et ISO 15099 pour les vitrages, EN ISO 10077-1 pour les menuiseries, ISO 10211 pour les ponts thermiques, EN 12831 pour la puissance de dimensionnement, EN 15242 et EN 16798-3, -5 et -7 pour la ventilation, ISO 7730 et EN 16798-1 pour le confort, CIBSE TM52 et TM59 pour la surchauffe, ISO 13788, EN 15026 et ASHRAE 160 pour l'humidité, EN 17037 pour la lumière naturelle, ISO 9613-1 et EN 12354-3 pour le bruit, EN ISO 15927-3 pour les données climatiques."},{question:"Pourquoi ne pas utiliser un moteur existant ?",answer:"Deux raisons. La première est l'occupant : un moteur standard applique des scénarios horaires, et un scé
2nario n'oublie jamais une fenêtre ouverte. Nous ouvrons les fenêtres avec un modèle stochastique calé sur des logements mesurés, nous gardons une fenêtre dans l'état où elle se trouve déjà , et nous limitons la fréquence des aérations du matin, parce qu'une grande part de l'écart entre un modèle et un bâtiment habité est comportementale plutôt que physique. La seconde est la forme de la question : nous faisons tourner le même bâtiment sur des scénarios climatiques futurs et nous résolvons cinq domaines ensemble, là où un moteur généraliste traite un cas à la fois."},{question:"Qu'est-ce que je fournis, et qu'est-ce qui sort ?",answer:"Une adresse. à partir de là : la fiche du registre des bâtiments, le site et son contexte, le fichier météo horaire du lieu et le même fichier déformé sur les scénarios futurs. Le moteur simule le bâtiment heure par heure sur cinq domaines et rend une recommandation, pas douze alertes séparées."},{question:"Quelles données climatiques utilisez-vous ?",answer:"Nous construisons les données météo au lieu de télécharger un fichier unique. Les relevés de stations et la réanalyse ERA5 donnent la série horaire observée, et à partir de là nous assemblons des années réelles, des années types selon la sélection ISO 15927-4, et des années d'été de conception et extrêmes pour le haut de la distribution. Chaque fichier est ensuite déformé sur les scénarios CMIP6 avec l'étirement pondéré borné d'Eames 2024, pour évaluer le bâtiment dans le climat qu'il connaîtra autant que dans celui d'aujourd'hui."},{question:"Regardez-vous le site, ou seulement le bâtiment ?",answer:"Les deux. Ce qui est bâti autour ombre le bâtiment et réduit sa lumière naturelle, que nous calculons comme composante verticale de ciel ; l'îlot de chaleur urbain modifie l'air qu'il prend ; l'exposition au vent modifie son infiltration ; la qualité de l'air extérieur et le bruit décident si une fenêtre peut être ouverte, ce qui limite le rafraîchissement gratuit que le modèle a le droit de supposer."},{question:"Jusqu'où va l'analyse de l'humidité ?",answer:"Trois niveaux, choisis selon ce que la question demande. Glaser selon l'ISO 13788 pour un premier tri, un modèle de profondeur de pénétration pour l'échange entre la pièce et ses surfaces pendant la simulation horaire, et un solveur complet chaleur et humidité pour la composition de paroi quand la décision en dépend."},{question:"Où intervient l'apprentissage automatique ?",answer:"La physique passe en premier et l'apprentissage se pose dessus. Nous menons un plan d'expériences sur l'espace des paramètres et entraînons des modèles de substitution sur les résultats, un par domaine, puis un macro modèle qui apprend comment les domaines s'arbitrent entre eux. La recommandation vient de cette couche macro et est revérifiée contre le modèle horaire avant d'être affichée."},{question:"D'où viennent les archétypes de bâtiments ?",answer:"Ils sont construits à partir des registres publics des villes ouvertes, pas de modèles génériques : le registre régional des certificats énergétiques pour Milan, la base nationale des bâtiments pour Paris, les statistiques publiées des certificats pour l'Angleterre et le Pays de Galles. Pour Paris nous disposons aussi des consommations relevées par les distributeurs d'énergie de 2018 à 2024, ce qui permet de comparer le modèle à des factures et pas seulement à un autre calcul."}]},trustedBy:{title:"Soutenus par",partners:{polimi:{alt:"Politecnico di Milano",title:"Politecnico di Milano"},polihub:{alt:"PoliHub",title:"PoliHub Innovation Park"},centralesupelec:{alt:"21st CentraleSupélec",title:"21st CentraleSupélec"}}},footer:{title:"Rejoindre le",titleHighlight:"Pilote",subtitle:'Soyez parmi les premiers à tester notre moteur physique <br class="hidden md:block"/>sur vos projets de rénovation.',toast:"Liens disponibles prochainement.",form:{namePlaceholder:"Nom Complet",companyPlaceholder:"Société / Structure",emailPlaceholder:"Email Professionnel (Requis)",messagePlaceholder:"Votre besoin ou question... (Optionnel)",submitButton:"Demander une Analyse"},success:{title:"Demande enregistrée.",subtitle:'Lancement du pilote en <span class="font-bold">Mai 2026</span>.',thanks:"à TRÃS VITE,<br />L'ÃQUIPE CFA"},surveyPrompt:{title:"Souhaitez-vous contribuer à l'étude ?",yes:"Oui, répondre au sondage",no:"Non, merci",time:"5 min",anonymous:"Anonyme"},contactName:"Tommaso Aiello (pour l'équipe)",brandName:"CLIMATE FOR",brandHighlight:"ALL",location:"Paris, France / Milan, Italie",pilotDate:"Programme Pilote : Début Mai 2026",faqLink:"FAQ",copyright:"© 2026 Climate For All.",signoff:"Améliorons les bâtiments dans lesquels nous vivrons."},newsModal:{titlePrefix:"Dernières",titleHighlight:"Actualités",backToNews:"Retour aux actualités",editorial:"Rédaction Climate For All",errorText:"Impossible de charger le fil d'actualités.",kindNews:"Actualites",kindArticles:"Articles"},common:{sending:"Envoi en cours...",earlyBird:"Early Member"}
2,fakeDoorModal:{title:"Liste d'Accès Anticipé",description:"Climate For All est actuellement en <b>phase pilote fermée</b>. Nous recrutons des partenaires institutionnels pour le printemps 2026.",statusLabel:"Statut : Candidatures ouvertes",responseTime:"Délai de réponse : ~48 heures",cta:"Accéder au formulaire de contact"}}},We=e.createContext(),He=({children:t})=>{const[a,o]=e.useState(Be.en),[r,i]=e.useState("en");return e.useEffect(()=>{let e=null;try{e=localStorage.getItem("app_lang")}catch(a){e=null}if(e&&Be[e])return o(Be[e]),void i(e);const t=(navigator.language||"en").split("-")[0].toLowerCase();Be[t]&&(o(Be[t]),i(t))},[]),e.useEffect(()=>{document.documentElement.lang=r},[r]),M.jsx(We.Provider,{value:{t:e=>{const t=e.split(".");let o=a;for(const a of t){if(!o||"object"!=typeof o||!(a in o))return e;o=o[a]}return o},locale:a,setLocale:e=>{const t=e.toLowerCase();Be[t]?(o(Be[t]),i(t),localStorage.setItem("app_lang",t),localStorage.setItem("dashboard_i18n",JSON.stringify(Be[t].dashboard||{}))):(o(Be.en),i("en"),localStorage.setItem("app_lang","en"),localStorage.setItem("dashboard_i18n",JSON.stringify(Be.en.dashboard||{})))},langCode:r},children:t})},Ue=()=>e.useContext(We);function Ge(){const e=Ue();if(!e)throw new Error("useLocale must be used within a LocaleProvider");return e}const $e=()=>{const[t,a]=e.useState(!1),[o,r]=e.useState(!1),[i,s]=e.useState(!1),{isDarkMode:n,toggleTheme:m}=function(){const[t,a]=e.useState(()=>{if("undefined"==typeof window)return!0;try{return"light"!==localStorage.getItem("theme")}catch(e){return!0}});return e.useEffect(()=>{document.documentElement.classList.toggle("dark",t)},[t]),{isDarkMode:t,toggleTheme:()=>{a(e=>{const t=!e;try{localStorage.setItem("theme",t?"dark":"light")}catch(a){}return t})}}}(),{t:p,setLocale:h,langCode:b}=Ge(),f=b?b.toUpperCase():"EN",g=["technology","pricing","team","contact"],{scrollY:x,scrollYProgress:y}=l();d(x,"change",e=>{e>50&&!t?a(!0):e<=50&&t&&a(!1)}),e.useEffect(()=>{if(o){const e=window.innerWidth-document.documentElement.clientWidth;document.body.style.overflow="hidden",document.body.style.paddingRight=`${e}px`}else document.body.style.overflow="",document.body.style.paddingRight=""},[o]),e.useRef(null);const v=e.useRef(null),w=e.useRef(null),k=e.useRef(null),N=e.useRef(null),j=e.useRef(!1);e.useEffect(()=>{if(!j.current)return j.current=!0,void(n?(k.current&&k.current.setAttribute("transform","translate(65, 35)"),v.current&&(v.current.setAttribute("opacity",0),v.current.setAttribute("transform","rotate(90)")),w.current&&(w.current.setAttribute("opacity",1),w.current.setAttribute("transform","rotate(0)"))):(k.current&&k.current.setAttribute("transform","translate(5, 35)"),v.current&&(v.current.setAttribute("opacity",1),v.current.setAttribute("transform","rotate(0)")),w.current&&(w.current.setAttribute("opacity",0),w.current.setAttribute("transform","rotate(-90)"))));const e=performance.now(),t=n?0:Math.PI,a=n?Math.PI:0;return N.current&&cancelAnimationFrame(N.current),N.current=requestAnimationFrame(function o(r){const i=r-e;let s=Math.min(i/1200,1),l=.5-.5*Math.cos(s*Math.PI);const d=a+(t-a)*l,c=35+30*Math.cos(d),u=35-30*Math.sin(d);k.current&&k.current.setAttribute("transform",`translate(${c}, ${u})`);let m=(s-.3)/.4;m<0?m=0:m>1&&(m=1),n?(v.current&&(v.current.setAttribute("opacity",1-m),v.current.setAttribute("transform",`rotate(${90*m})`)),w.current&&(w.current.setAttribute("opacity",m),w.current.setAttribute("transform",`rotate(${-90*(1-m)})`))):(w.current&&(w.current.setAttribute("opacity",1-m),w.current.setAttribute("transform",`rotate(${90*m})`)),v.current&&(v.current.setAttribute("opacity",m),v.current.setAttribute("transform",`rotate(${-90*(1-m)})`))),s<1&&(N.current=requestAnimationFrame(o))}),()=>{N.current&&cancelAnimationFrame(N.current)}},[n]);const S=e=>{h(e.toLowerCase())};return M.jsxs(M.Fragment,{children:[M.jsxs("div",{className:"fixed top-24 left-1/2 -translate-x-1/2 z-[100] bg-slate-900 text-white px-4 py-2 rounded-lg shadow-xl text-sm font-medium transition-all duration-300 text-center whitespace-nowrap "+(i?"opacity-100 translate-y-0":"opacity-0 -translate-y-4 pointer-events-none"),children:["â ï¸ ",p("header.toast")]}),M.jsxs("nav",{className:"fixed top-4 left-0 right-0 z-50 flex justify-center px-4",children:[M.jsxs(c.div,{id:"main-nav-container",className:"rounded-full px-3 sm:px-4 md:px-6 flex items-center gap-2 sm:gap-3 md:gap-6 max-w-5xl w-full justify-between transition-colors md:transition-all duration-500 "+(t?"scrolled py-1 sm:py-1.5 bg-brand-surface/95 lg:md:bg-brand-surface/90 lg:md:backdrop-blur-md border border-brand-grid/50 shadow-[0_8px_32px_0_rgba(31,38,135,0.05)]":"transparent py-2.5 sm:py-3.5 bg-transparent border border-transparent"),style:{transform:"translateZ(0)",WebkitTransform:"translateZ(0)",willChange:"transform, background-color"},children:[M.jsxs("div",{"data-testid":"header-brand-logo",className:"flex items-center gap-1 sm:gap-2 cursor-pointer hover:scale-105 transition-transform whitespace-nowrap shrink-0",onClick:()=>window.scrollTo({top:0,behavior:"smooth"}),children:[M.jsx("img",{src:"/static/Logo CLimate For All_FINAL.svg",fetchpriority:"high",alt:p("header.logoAlt"),className:"w-auto transition-all duration-300 "+(t?"h-4 sm:h-5 md:h-6":"h-5 sm:h-6 md:h-8")}),M.jsx("span",{className:"tracking-tight text-brand-text whitespace-nowrap font-brand inline transition-all duration-300 "+(t?"text-xs sm:text-sm md:text-base":"text-sm sm:text-base md:text-lg"),dangerouslySetInnerHTML:{__html:`${(p("header.brandName")||"").replace(/All/gi,'<span class="text-rose-500 font-bold">ALL</span>')} <span class="text-brand-primary">${p("header.brandHighlight")||""}</span>`}})]}),M.jsxs("div",{className:"hidden lg:flex items-center justify-center gap-4 xl:gap-6 text-xs font-medium text-brand-textMuted absolute left-1/2 -translate-x-1/2",children:[(p("header.n
2av")||[]).map((e,t)=>M.jsx("button",{onClick:()=>(e=>{if("contact"===e)return void(()=>{const e=document.getElementById("contact");if(e){window.dispatchEvent(new Event("highlight-contact"));const t=e.offsetHeight,a=window.innerHeight;let o=e.getBoundingClientRect().top+window.pageYOffset-(a-t)/2;window.scrollTo({top:o,behavior:"smooth"})}})();const t=document.getElementById(e);if(t){let a=0;"technology"===e&&(a=-.06),"pricing"===e&&(a=-.04),"team"===e&&(a=.06);const o=80+window.innerHeight*a,r=t.getBoundingClientRect().top+window.pageYOffset-o;window.scrollTo({top:r,behavior:"smooth"})}})(g[t]),className:"hover:text-brand-primary transition-all duration-300 ease-[cubic-bezier(0.25,0.46,0.45,0.94)] hover:-translate-y-0.5 hover:scale-105 inline-block text-slate-500 dark:text-slate-400",children:e},e)),M.jsx("button",{"data-testid":"header-news-link",onClick:()=>window.dispatchEvent(new Event("open-news-modal")),className:"hover:text-rose-500 transition-all duration-300 ease-[cubic-bezier(0.25,0.46,0.45,0.94)] hover:-translate-y-0.5 hover:scale-105 inline-block text-rose-500/80 font-bold border-l border-brand-grid/30 pl-4 ml-2",children:p("header.newsLabel")})]}),M.jsxs("div",{className:"flex items-center gap-1.5 sm:gap-4 text-xs font-medium",children:[M.jsx("div",{className:"sunpath-widget relative group",onClick:m,onContextMenu:e=>(e.preventDefault(),e.stopPropagation(),!1),style:{userSelect:"none",WebkitUserSelect:"none",touchAction:"manipulation"},children:M.jsxs("svg",{width:"50",height:"25",viewBox:"0 0 70 35",style:{overflow:"visible"},children:[M.jsx("path",{d:"M 5 35 A 30 30 0 0 1 65 35",fill:"none",className:"stroke-slate-300 dark:stroke-slate-600",strokeWidth:"1.5",strokeDasharray:"4 4"}),M.jsxs("g",{id:"celestial-group",ref:k,style:{cursor:"pointer",transition:"none",willChange:"transform"},transform:"translate(5, 35)",children:[M.jsx("circle",{cx:"0",cy:"0",r:"5",className:"fill-amber-400",id:"icon-sun",ref:v}),M.jsx("circle",{cx:"0",cy:"0",r:"4",className:"fill-indigo-400",id:"icon-moon",ref:w,opacity:"0"})]})]})}),M.jsxs("div",{className:"relative group z-50 hidden md:block",children:[M.jsxs("button",{className:"flex items-center gap-1 font-bold text-xs text-brand-text hover:text-brand-primary transition-colors",children:[M.jsx("span",{children:f}),M.jsx("svg",{className:"w-3 h-3 transition-transform group-hover:rotate-180",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:M.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M19 9l-7 7-7-7"})})]}),M.jsx("div",{className:"absolute top-full right-0 mt-2 w-14 bg-brand-surface border border-brand-grid rounded-lg shadow-xl opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-opacity md:transition-all duration-200 overflow-hidden transform group-hover:translate-y-0 translate-y-2",children:M.jsx("div",{className:"flex flex-col",children:["EN","FR","IT"].map(e=>M.jsx("button",{onClick:()=>S(e),className:"px-2 py-1.5 text-xs font-bold text-left transition-colors "+(f===e?"text-brand-text bg-brand-surfaceAlt":"text-brand-textMuted hover:text-brand-text hover:bg-brand-surfaceAlt"),children:e},e))})})]}),M.jsx("button",{className:"lg:hidden text-brand-text p-1.5 rounded-full hover:bg-brand-surfaceAlt transition-colors",onClick:()=>r(!0),"aria-label":p("header.toggleMenuLabel"),children:M.jsx("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:M.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M4 6h16M4 12h16m-7 6h7"})})})]})]}),M.jsx(c.div,{className:"absolute bottom-0 left-4 right-4 overflow-hidden rounded-full transition-all duration-500 ease-out "+(t?"h-[2px]":"h-[4px]"),style:{opacity:u(y,[0,.01],[0,1])},children:M.jsx(c.div,{className:"h-full bg-brand-primary rounded-full",style:{width:"100%",scaleX:y,transformOrigin:"left",backgroundSize:"200% 100%",animation:"shimmer 3s ease-in-out infinite"}})})]}),M.jsx("div",{className:"fixed inset-0 z-[60] bg-brand-surface md:bg-black/60 md:backdrop-blur-xl overflow-y-auto transition-opacity duration-300 "+(o?"opacity-100 visible":"opacity-0 invisible pointer-events-none"),children:M.jsxs("div",{className:"min-h-full flex flex-col items-center justify-center p-6 relative",children:[M.jsx("button",{className:"absolute top-6 right-6 text-brand-text p-2 rounded-full hover:bg-brand-surfaceAlt",onClick:()=>r(!1),children:M.jsx("svg",{className:"w-8 h-8",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:M.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M6 18L18 6M6 6l12 12"})})}),M.jsxs("nav",{className:"flex flex-col items-center gap-8 text-2xl font-bold font-display text-brand-text",children:[(p("header.n
2avMobile")||[]).map((e,t)=>M.jsx("a",{href:`#${g[t]}`,onClick:()=>r(!1),className:"hover:text-brand-primary transition-colors",children:e},e)),M.jsx("button",{"data-testid":"header-news-link-mobile",onClick:()=>{window.dispatchEvent(new Event("open-news-modal")),r(!1)},className:"text-rose-500 hover:text-rose-400 transition-colors",children:p("header.newsLabel")})]}),M.jsx("div",{className:"flex gap-8 mt-10",children:["EN","FR","IT"].map(e=>M.jsx("button",{onClick:()=>{S(e),r(!1)},className:"text-xl font-bold transition-colors p-4 "+(f===e?"text-brand-primary":"text-brand-textMuted hover:text-brand-text"),children:e},e))}),M.jsx("div",{className:"mt-12",children:M.jsx("img",{src:"/static/Logo CLimate For All_FINAL.svg",alt:p("header.logoAlt"),className:"h-16 w-auto opacity-50"})})]})})]})},Ve="website_url",Ye={type:"text",name:Ve,autoComplete:"off",tabIndex:-1,"aria-hidden":"true",style:{position:"absolute",left:"-9999px",width:"1px",height:"1px",opacity:0,pointerEvents:"none"}};function Qe(e){return Boolean(e)}function Ke(e){return!!e&&Date.now()-e<2500}function Xe(e){var t,a,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var r=e.length;for(t=0;t<r;t++)e[t]&&(a=Xe(e[t]))&&(o&&(o+=" "),o+=a)}else for(a in e)e[a]&&(o&&(o+=" "),o+=a);return o}const Je=(e=new Map,t=null,a)=>({nextPart:e,validators:t,classGroupId:a}),Ze="-",et=[],tt=e=>{const t=rt(e),{conflictingClassGroups:a,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:e=>{if(e.startsWith("[")&&e.endsWith("]"))return ot(e);const a=e.split(Ze),o=""===a[0]&&a.length>1?1:0;return at(a,o,t)},getConflictingClassGroupIds:(e,t)=>{if(t){const t=o[e],r=a[e];return t?r?((e,t)=>{const a=new Array(e.length+t.length);for(let o=0;o<e.length;o++)a[o]=e[o];for(let o=0;o<t.length;o++)a[e.length+o]=t[o];return a})(r,t):t:r||et}return a[e]||et}}},at=(e,t,a)=>{if(0===e.length-t)return a.classGroupId;const o=e[t],r=a.nextPart.get(o);if(r){const a=at(e,t+1,r);if(a)return a}const i=a.validators;if(null===i)return;const s=0===t?e.join(Ze):e.slice(t).join(Ze),n=i.length;for(let l=0;l<n;l++){const e=i[l];if(e.validator(s))return e.classGroupId}},ot=e=>-1===e.slice(1,-1).indexOf(":")?void 0:(()=>{const t=e.slice(1,-1),a=t.indexOf(":"),o=t.slice(0,a);return o?"arbitrary.."+o:void 0})(),rt=e=>{const{theme:t,classGroups:a}=e;return it(a,t)},it=(e,t)=>{const a=Je();for(const o in e){const r=e[o];st(r,a,o,t)}return a},st=(e,t,a,o)=>{const r=e.length;for(let i=0;i<r;i++){const r=e[i];nt(r,t,a,o)}},nt=(e,t,a,o)=>{"string"!=typeof e?"function"!=typeof e?ct(e,t,a,o):dt(e,t,a,o):lt(e,t,a)},lt=(e,t,a)=>{(""===e?t:ut(t,e)).classGroupId=a},dt=(e,t,a,o)=>{mt(e)?st(e(o),t,a,o):(null===t.validators&&(t.validators=[]),t.validators.push(((e,t)=>({classGroupId:e,validator:t}))(a,e)))},ct=(e,t,a,o)=>{const r=Object.entries(e),i=r.length;for(let s=0;s<i;s++){const[e,i]=r[s];st(i,ut(t,e),a,o)}},ut=(e,t)=>{let a=e;const o=t.split(Ze),r=o.length;for(let i=0;i<r;i++){const e=o[i];let t=a.nextPart.get(e);t||(t=Je(),a.nextPart.set(e,t)),a=t}return a},mt=e=>"isThemeGetter"in e&&!0===e.isThemeGetter,pt=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,a=Object.create(null),o=Object.create(null);const r=(r,i)=>{a[r]=i,t++,t>e&&(t=0,o=a,a=Object.create(null))};return{get(e){let t=a[e];return void 0!==t?t:void 0!==(t=o[e])?(r(e,t),t):void 0},set(e,t){e in a?a[e]=t:r(e,t)}}},ht=[],bt=(e,t,a,o,r)=>({modifiers:e,hasImportantModifier:t,baseClassName:a,maybePostfixModifierPosition:o,isExternal:r}),ft=e=>{const{prefix:t,experimentalParseClassName:a}=e;let o=e=>{const t=[];let a,o=0,r=0,i=0;const s=e.length;for(let c=0;c<s;c++){const s=e[c];if(0===o&&0===r){if(":"===s){t.push(e.slice(i,c)),i=c+1;continue}if("/"===s){a=c;continue}}"["===s?o++:"]"===s?o--:"("===s?r++:")"===s&&r--}const n=0===t.length?e:e.slice(i);let l=n,d=!1;return n.endsWith("!")?(l=n.slice(0,-1),d=!0):n.startsWith("!")&&(l=n.slice(1),d=!0),bt(t,d,l,a&&a>i?a-i:void 0)};if(t){const e=t+":",a=o;o=t=>t.startsWith(e)?a(t.slice(e.length)):bt(ht,!1,t,void 0,!0)}if(a){const e=o;o=t=>a({className:t,parseClassName:e})}return o},gt=e=>{const t=new Map;
vendor: 4,938 bytes, line 2
2return e.orderSensitiveModifiers.forEach((e,a)=>{t.set(e,1e6+a)}),e=>{const a=[];let o=[];for(let r=0;r<e.length;r++){const i=e[r],s="["===i[0],n=t.has(i);s||n?(o.length>0&&(o.sort(),a.push(...o),o=[]),a.push(i)):o.push(i)}return o.length>0&&(o.sort(),a.push(...o)),a}},xt=/\s+/,yt=e=>{if("string"==typeof e)return e;let t,a="";for(let o=0;o<e.length;o++)e[o]&&(t=yt(e[o]))&&(a&&(a+=" "),a+=t);return a},vt=[],wt=e=>{const t=t=>t[e]||vt;return t.isThemeGetter=!0,t},kt=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Nt=/^\((?:(\w[\w-]*):)?(.+)\)$/i,jt=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,St=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,At=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Tt=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Ct=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Et=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,It=e=>jt.test(e),Lt=e=>!!e&&!Number.isNaN(Number(e)),Pt=e=>!!e&&Number.isInteger(Number(e)),Mt=e=>e.endsWith("%")&&Lt(e.slice(0,-1)),zt=e=>St.test(e),Rt=()=>!0,Ot=e=>At.test(e)&&!Tt.test(e),_t=()=>!1,qt=e=>Ct.test(e),Dt=e=>Et.test(e),Ft=e=>!Wt(e)&&!Kt(e),Bt=e=>ra(e,la,_t),Wt=e=>kt.test(e),Ht=e=>ra(e,da,Ot),Ut=e=>ra(e,ca,Lt),Gt=e=>ra(e,ma,Rt),$t=e=>ra(e,ua,_t),Vt=e=>ra(e,sa,_t),Yt=e=>ra(e,na,Dt),Qt=e=>ra(e,pa,qt),Kt=e=>Nt.test(e),Xt=e=>ia(e,da),Jt=e=>ia(e,ua),Zt=e=>ia(e,sa),ea=e=>ia(e,la),ta=e=>ia(e,na),aa=e=>ia(e,pa,!0),oa=e=>ia(e,ma,!0),ra=(e,t,a)=>{const o=kt.exec(e);return!!o&&(o[1]?t(o[1]):a(o[2]))},ia=(e,t,a=!1)=>{const o=Nt.exec(e);return!!o&&(o[1]?t(o[1]):a)},sa=e=>"position"===e||"percentage"===e,na=e=>"image"===e||"url"===e,la=e=>"length"===e||"size"===e||"bg-size"===e,da=e=>"length"===e,ca=e=>"number"===e,ua=e=>"family-name"===e,ma=e=>"number"===e||"weight"===e,pa=e=>"shadow"===e,ha=((e,...t)=>{let a,o,r,i;const s=e=>{const t=o(e);if(t)return t;const i=((e,t)=>{const{parseClassName:a,getClassGroupId:o,getConflictingClassGroupIds:r,sortModifiers:i}=t,s=[],n=e.trim().split(xt);let l="";for(let d=n.length-1;d>=0;d-=1){const e=n[d],{isExternal:t,modifiers:c,hasImportantModifier:u,baseClassName:m,maybePostfixModifierPosition:p}=a(e);if(t){l=e+(l.length>0?" "+l:l);continue}let h=!!p,b=o(h?m.substring(0,p):m);if(!b){if(!h){l=e+(l.length>0?" "+l:l);continue}if(b=o(m),!b){l=e+(l.length>0?" "+l:l);continue}h=!1}const f=0===c.length?"":1===c.length?c[0]:i(c).join(":"),g=u?f+"!":f,x=g+b;if(s.indexOf(x)>-1)continue;s.push(x);const y=r(b,h);for(let a=0;a<y.length;++a){const e=y[a];s.push(g+e)}l=e+(l.length>0?" "+l:l)}return l})(e,a);return r(e,i),i};return i=n=>{const l=t.reduce((e,t)=>t(e),e());return a=(e=>({cache:pt(e.cacheSize),parseClassName:ft(e),sortModifiers:gt(e),...tt(e)}))(l),o=a.cache.get,r=a.cache.set,i=s,s(n)},(...e)=>i(((...e)=>{let t,a,o=0,r="";for(;o<e.length;)(t=e[o++])&&(a=yt(t))&&(r&&(r+=" "),r+=a);return r})(...e))})(()=>{const e=wt("color"),t=wt("font"),a=wt("text"),o=wt("font-weight"),r=wt("tracking"),i=wt("leading"),s=wt("breakpoint"),n=wt("container"),l=wt("spacing"),d=wt("radius"),c=wt("shadow"),u=wt("inset-shadow"),m=wt("text-shadow"),p=wt("drop-shadow"),h=wt("blur"),b=wt("perspective"),f=wt("aspect"),g=wt("ease"),x=wt("animate"),y=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom",Kt,Wt],v=()=>[Kt,Wt,l],w=()=>[It,"full","auto",...v()],k=()=>[Pt,"none","subgrid",Kt,Wt],N=()=>["auto",{span:["full",Pt,Kt,Wt]},Pt,Kt,Wt],j=()=>[Pt,"auto",Kt,Wt],S=()=>["auto","min","max","fr",Kt,Wt],A=()=>["auto",...v()],T=()=>[It,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...v()],C=()=>[It,"screen","full","dvw","lvw","svw","min","max","fit",...v()],E=()=>[It,"screen","full","lh","dvh","lvh","svh","min","max","fit",...v()],I=()=>[e,Kt,Wt],L=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom",Zt,Vt,{position:[Kt,Wt]}],P=()=>["auto","cover","contain",ea,Bt,{size:[Kt,Wt]}],M=()=>[Mt,Xt,Ht],z=()=>["","none","full",d,Kt,Wt],R=()=>["",Lt,Xt,Ht],O=()=>[Lt,Mt,Zt,Vt],_=()=>["","none",h,Kt,Wt],q=()=>["none",Lt,Kt,Wt],D=()=>["none",Lt,Kt,Wt],F=()=>[Lt,Kt,Wt],B=()=>[It,"full",...v()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[zt],breakpoint:[zt],color:[Rt],container:[zt],"drop-shadow":[zt],ease:["in","out","in-out"],font:[Ft],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[zt],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[zt],shadow:[zt],spacing:["px",Lt],text:[zt],"text-shadow":[zt],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",It,Wt,Kt,f]}
vendor: 5,820 bytes, line 2
2],container:["container"],columns:[{columns:[Lt,Wt,Kt,n]}],"break-after":[{"break-after":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-before":[{"break-before":["auto","avoid","all","avoid-page","page","left","right","column"]}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:y()}],overflow:[{overflow:["auto","hidden","clip","visible","scroll"]}],"overflow-x":[{"overflow-x":["auto","hidden","clip","visible","scroll"]}],"overflow-y":[{"overflow-y":["auto","hidden","clip","visible","scroll"]}],overscroll:[{overscroll:["auto","contain","none"]}],"overscroll-x":[{"overscroll-x":["auto","contain","none"]}],"overscroll-y":[{"overscroll-y":["auto","contain","none"]}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:w()}],"inset-x":[{"inset-x":w()}],"inset-y":[{"inset-y":w()}],start:[{"inset-s":w(),start:w()}],end:[{"inset-e":w(),end:w()}],"inset-bs":[{"inset-bs":w()}],"inset-be":[{"inset-be":w()}],top:[{top:w()}],right:[{right:w()}],bottom:[{bottom:w()}],left:[{left:w()}],visibility:["visible","invisible","collapse"],z:[{z:[Pt,"auto",Kt,Wt]}],basis:[{basis:[It,"full","auto",n,...v()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Lt,It,"auto","initial","none",Wt]}],grow:[{grow:["",Lt,Kt,Wt]}],shrink:[{shrink:["",Lt,Kt,Wt]}],order:[{order:[Pt,"first","last","none",Kt,Wt]}],"grid-cols":[{"grid-cols":k()}],"col-start-end":[{col:N()}],"col-start":[{"col-start":j()}],"col-end":[{"col-end":j()}],"grid-rows":[{"grid-rows":k()}],"row-start-end":[{row:N()}],"row-start":[{"row-start":j()}],"row-end":[{"row-end":j()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":S()}],"auto-rows":[{"auto-rows":S()}],gap:[{gap:v()}],"gap-x":[{"gap-x":v()}],"gap-y":[{"gap-y":v()}],"justify-content":[{justify:["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe","normal"]}],"justify-items":[{"justify-items":["start","end","center","stretch","center-safe","end-safe","normal"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch","center-safe","end-safe"]}],"align-content":[{content:["normal","start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"]}],"align-items":[{items:["start","end","center","stretch","center-safe","end-safe",{baseline:["","last"]}]}],"align-self":[{self:["auto","start","end","center","stretch","center-safe","end-safe",{baseline:["","last"]}]}],"place-content":[{"place-content":["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"]}],"place-items":[{"place-items":["start","end","center","stretch","center-safe","end-safe","baseline"]}],"place-self":[{"place-self":["auto","start","end","center","stretch","center-safe","end-safe"]}],p:[{p:v()}],px:[{px:v()}],py:[{py:v()}],ps:[{ps:v()}],pe:[{pe:v()}],pbs:[{pbs:v()}],pbe:[{pbe:v()}],pt:[{pt:v()}],pr:[{pr:v()}],pb:[{pb:v()}],pl:[{pl:v()}],m:[{m:A()}],mx:[{mx:A()}],my:[{my:A()}],ms:[{ms:A()}],me:[{me:A()}],mbs:[{mbs:A()}],mbe:[{mbe:A()}],mt:[{mt:A()}],mr:[{mr:A()}],mb:[{mb:A()}],ml:[{ml:A()}],"space-x":[{"space-x":v()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":v()}],"space-y-reverse":["space-y-reverse"],size:[{size:T()}],"inline-size":[{inline:["auto",...C()]}],"min-inline-size":[{"min-inline":["auto",...C()]}],"max-inline-size":[{"max-inline":["none",...C()]}],"block-size":[{block:["auto",...E()]}],"min-block-size":[{"min-block":["auto",...E()]}],"max-block-size":[{"max-block":["none",...E()]}],w:[{w:[n,"screen",...T()]}],"min-w":[{"min-w":[n,"screen","none",...T()]}],"max-w":[{"max-w":[n,"screen","none","prose",{screen:[s]},...T()]}],h:[{h:["screen","lh",...T()]}],"min-h":[{"min-h":["screen","lh","none",...T()]}],"max-h":[{"max-h":["screen","lh",...T()]}],"font-size":[{text:["base",a,Xt,Ht]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[o,oa,Gt]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Mt,Wt]}],"font-family":[{font:[Jt,$t,t]}],"font-features":[{"font-features":[Wt]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[r,Kt,Wt]}],"line-clamp":[{"line-clamp":[Lt,"none",Kt,Ut]}],leading:[{leading:[i,...v()]}],"list-image":[{"list-image":["none",Kt,Wt]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Kt,Wt]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:I()}],"text-color":[{text:I()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:["solid","dashed","dotted","double","
2wavy"]}],"text-decoration-thickness":[{decoration:[Lt,"from-font","auto",Kt,Ht]}],"text-decoration-color":[{decoration:I()}],"underline-offset":[{"underline-offset":[Lt,"auto",Kt,Wt]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:v()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Kt,Wt]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Kt,Wt]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:L()}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","space","round"]}]}],"bg-size":[{bg:P()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Pt,Kt,Wt],radial:["",Kt,Wt],conic:[Pt,Kt,Wt]},ta,Yt]}],"bg-color":[{bg:I()}],"gradient-from-pos":[{from:M()}],"gradient-via-pos":[{via:M()}],"gradient-to-pos":[{to:M()}],"gradient-from":[{from:I()}],"gradient-via":[{via:I()}],"gradient-to":[{to:I()}],rounded:[{rounded:z()}],"rounded-s":[{"rounded-s":z()}],"rounded-e":[{"rounded-e":z()}],"rounded-t":[{"rounded-t":z()}],"rounded-r":[{"rounded-r":z()}],"rounded-b":[{"rounded-b":z()}],"rounded-l":[{"rounded-l":z()}],"rounded-ss":[{"rounded-ss":z()}],"rounded-se":[{"rounded-se":z()}],"rounded-ee":[{"rounded-ee":z()}],"rounded-es":[{"rounded-es":z()}],"rounded-tl":[{"rounded-tl":z()}],"rounded-tr":[{"rounded-tr":z()}],"rounded-br":[{"rounded-br":z()}],"rounded-bl":[{"rounded-bl":z()}],"border-w":[{border:R()}],"border-w-x":[{"border-x":R()}],"border-w-y":[{"border-y":R()}],"border-w-s":[{"border-s":R()}],"border-w-e":[{"border-e":R()}],"border-w-bs":[{"border-bs":R()}],"border-w-be":[{"border-be":R()}],"border-w-t":[{"border-t":R()}],"border-w-r":[{"border-r":R()}],"border-w-b":[{"border-b":R()}],"border-w-l":[{"border-l":R()}
vendor: 8,567 bytes, line 2
2],"divide-x":[{"divide-x":R()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":R()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:["solid","dashed","dotted","double","hidden","none"]}],"divide-style":[{divide:["solid","dashed","dotted","double","hidden","none"]}],"border-color":[{border:I()}],"border-color-x":[{"border-x":I()}],"border-color-y":[{"border-y":I()}],"border-color-s":[{"border-s":I()}],"border-color-e":[{"border-e":I()}],"border-color-bs":[{"border-bs":I()}],"border-color-be":[{"border-be":I()}],"border-color-t":[{"border-t":I()}],"border-color-r":[{"border-r":I()}],"border-color-b":[{"border-b":I()}],"border-color-l":[{"border-l":I()}],"divide-color":[{divide:I()}],"outline-style":[{outline:["solid","dashed","dotted","double","none","hidden"]}],"outline-offset":[{"outline-offset":[Lt,Kt,Wt]}],"outline-w":[{outline:["",Lt,Xt,Ht]}],"outline-color":[{outline:I()}],shadow:[{shadow:["","none",c,aa,Qt]}],"shadow-color":[{shadow:I()}],"inset-shadow":[{"inset-shadow":["none",u,aa,Qt]}],"inset-shadow-color":[{"inset-shadow":I()}],"ring-w":[{ring:R()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:I()}],"ring-offset-w":[{"ring-offset":[Lt,Ht]}],"ring-offset-color":[{"ring-offset":I()}],"inset-ring-w":[{"inset-ring":R()}],"inset-ring-color":[{"inset-ring":I()}],"text-shadow":[{"text-shadow":["none",m,aa,Qt]}],"text-shadow-color":[{"text-shadow":I()}],opacity:[{opacity:[Lt,Kt,Wt]}],"mix-blend":[{"mix-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity","plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"]}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[Lt]}],"mask-image-linear-from-pos":[{"mask-linear-from":O()}],"mask-image-linear-to-pos":[{"mask-linear-to":O()}],"mask-image-linear-from-color":[{"mask-linear-from":I()}],"mask-image-linear-to-color":[{"mask-linear-to":I()}],"mask-image-t-from-pos":[{"mask-t-from":O()}],"mask-image-t-to-pos":[{"mask-t-to":O()}],"mask-image-t-from-color":[{"mask-t-from":I()}],"mask-image-t-to-color":[{"mask-t-to":I()}],"mask-image-r-from-pos":[{"mask-r-from":O()}],"mask-image-r-to-pos":[{"mask-r-to":O()}],"mask-image-r-from-color":[{"mask-r-from":I()}],"mask-image-r-to-color":[{"mask-r-to":I()}],"mask-image-b-from-pos":[{"mask-b-from":O()}],"mask-image-b-to-pos":[{"mask-b-to":O()}],"mask-image-b-from-color":[{"mask-b-from":I()}],"mask-image-b-to-color":[{"mask-b-to":I()}],"mask-image-l-from-pos":[{"mask-l-from":O()}],"mask-image-l-to-pos":[{"mask-l-to":O()}],"mask-image-l-from-color":[{"mask-l-from":I()}],"mask-image-l-to-color":[{"mask-l-to":I()}],"mask-image-x-from-pos":[{"mask-x-from":O()}],"mask-image-x-to-pos":[{"mask-x-to":O()}],"mask-image-x-from-color":[{"mask-x-from":I()}],"mask-image-x-to-color":[{"mask-x-to":I()}],"mask-image-y-from-pos":[{"mask-y-from":O()}],"mask-image-y-to-pos":[{"mask-y-to":O()}],"mask-image-y-from-color":[{"mask-y-from":I()}],"mask-image-y-to-color":[{"mask-y-to":I()}],"mask-image-radial":[{"mask-radial":[Kt,Wt]}],"mask-image-radial-from-pos":[{"mask-radial-from":O()}],"mask-image-radial-to-pos":[{"mask-radial-to":O()}],"mask-image-radial-from-color":[{"mask-radial-from":I()}],"mask-image-radial-to-color":[{"mask-radial-to":I()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"]}],"mask-image-conic-pos":[{"mask-conic":[Lt]}],"mask-image-conic-from-pos":[{"mask-conic-from":O()}],"mask-image-conic-to-pos":[{"mask-conic-to":O()}],"mask-image-conic-from-color":[{"mask-conic-from":I()}],"mask-image-conic-to-color":[{"mask-conic-to":I()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:L()}],"mask-repeat":[{mask:["no-repeat",{repeat:["","x","y","space","round"]}]}],"mask-size":[{mask:P()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Kt,Wt]}],filter:[{filter:["","none",Kt,Wt]}],blur:[{blur:_()}],brightness:[{brightness:[Lt,Kt,Wt]}],contrast:[{contrast:[Lt,Kt,Wt]}],"drop-shadow":[{"drop-shadow":["","none",p,aa,Qt]}],"drop-shadow-color":[{"drop-shadow":I()}],grayscale:[{grayscale:["",Lt,Kt,Wt]}],"hue-rotate":[{"hue-rotate":[Lt,Kt,Wt]}],invert:[{invert:["",Lt,Kt,Wt]}],saturate:[{saturate:[Lt,Kt,Wt]}],sepia:[{sepia:["",Lt,Kt,Wt]}],"backdrop-filter":[{"backdrop-filter":["","none",Kt,Wt]}],"backdrop-blur":[{"backdrop-blur":_()}],"backdrop-brightness":[{"backdrop-brightness":[Lt,Kt,Wt]}],"backdrop-contrast":[{"backdrop-contrast":[Lt,Kt,Wt]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Lt,Kt,Wt]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Lt,Kt,Wt]}],"backdrop-invert":[{"backdrop-invert":["",Lt,Kt,Wt]}],"backdrop-opacity":[{"backdrop-opacity":[Lt,Kt,Wt]}],"backdrop-saturate":[{"backdrop-saturate":[Lt,Kt,Wt]}],"backdrop-sepia":[{"backdrop-sepia":["",Lt,Kt,Wt]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":v()}],"border-spacing-x":[{"border-spacing-x":v()}],"border-spacing-y":[{"border-spacing-y":v()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Kt,Wt]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Lt,"initial",Kt,Wt]}],ease:[{ease:["linear","initial",g,Kt,Wt]}],delay:[{delay:[Lt,Kt,Wt]}],animate:[{animate:["none",x,Kt,Wt]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[b,Kt,Wt]}],"perspective-origin":[{"perspective-origin":y()}],rotate:[{rotate:q()}],"rotate-x":[{"rotate-x":q()}],"rotate-y":[{"rotate-y":q()}],"rotate-z":[{"rotate-z":q()}],scale:[{scale:D()}],"scale-x":[{"scale-x":D()}],"scale-y":[{"scale-y":D()}],"scale-z":[{"scale-z":D()}],"scale-3d":["scale-3d"],skew:[{skew:F()}],"skew-x":[{"skew-x":F()}],"skew-y":[{"skew-y":F()}],transform:[{transform:[Kt,Wt,"","none","gpu","cpu"]}],"transform-origin":[{origin:y()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:B()}],"translate-x":[{"translate-x":B()}],"translate-y":[{"translate-y":B()}],"translate-z":[{"translate-z":B()}],"translate-none":["translate-none"],accent:[{accent:I()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:I()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Kt,Wt]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":v()}],"scroll-mx":[{"scroll-mx":v()}],"scroll-my":[{"scroll-my":v()}],"scroll-ms":[{"scroll-ms":v()}],"scroll-me":[{"scroll-me":v()}],"scroll-mbs":[{"scroll-mbs":v()}],"scroll-mbe":[{"scroll-mbe":v()}],"scroll-mt":[{"scroll-mt":v()}],"scroll-mr":[{"scroll-mr":v()}],"scroll-mb":[{"scroll-mb":v()}],"scroll-ml":[{"scroll-ml":v()}],"scroll-p":[{"scroll-p":v()}],"scroll-px":[{"scroll-px":v()}],"scroll-py":[{"scroll-py":v()}],"scroll-ps":[{"scroll-ps":v()}],"scroll-pe":[{"scroll-pe":v()}],"scroll-pbs":[{"scroll-pbs":v()}],"scroll-pbe":[{"scroll-pbe":v()}],"scroll-pt":[{"scroll-pt":v()}],"scroll-pr":[{"scroll-pr":v()}],"scroll-pb":[{"scroll-pb":v()}],"scroll-pl":[{"scroll-pl":v()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}
2],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Kt,Wt]}],fill:[{fill:["none",...I()]}],"stroke-w":[{stroke:[Lt,Xt,Ht,Ut]}],stroke:[{stroke:["none",...I()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function ba(...e){return ha(function(){for(var e,t,a=0,o="",r=arguments.length;a<r;a++)(e=arguments[a])&&(t=Xe(e))&&(o&&(o+=" "),o+=t);return o}(e))}const fa=({children:t,className:a})=>{const o=e.useRef(null),r=m(o,{margin:"100px"}),i=p(0),s=p(0),n=p(0),l=p(0);h(()=>{if(!r)return;const e=n.get(),t=l.get();n.set((e+.5)%40),l.set((t+.5)%40)});const d=b`radial-gradient(600px circle at ${i}px ${s}px, black, transparent)`;return M.jsxs("div",{ref:o,onMouseMove:e=>{if(!o.current)return;const{left:t,top:a}=o.current.getBoundingClientRect();i.set(e.clientX-t),s.set(e.clientY-a)},className:ba("relative w-full overflow-hidden bg-brand-surface dark:bg-brand-darkBg transition-colors duration-500",a),children:[M.jsx("div",{className:"absolute inset-0 z-0 opacity-[0.12] pointer-events-none",children:M.jsx(ga,{offsetX:n,offsetY:l})}),M.jsx(c.div,{className:"absolute inset-0 z-0 opacity-60 pointer-events-none hidden lg:block",style:{maskImage:d,WebkitMaskImage:d},children:M.jsx(ga,{offsetX:n,offsetY:l})}),M.jsxs("div",{className:"absolute inset-0 pointer-events-none z-0 overflow-hidden",children:[M.jsx("div",{className:"absolute right-[-10%] top-[-10%] w-[50%] h-[50%] rounded-full bg-rose-500/10 dark:bg-rose-600/5 blur-[120px] animate-pulse"}),M.jsx("div",{className:"absolute left-[-10%] bottom-[-10%] w-[40%] h-[40%] rounded-full bg-sky-500/10 dark:bg-sky-600/5 blur-[100px]"}),M.jsx("div",{className:"hidden lg:block absolute right-[20%] bottom-[-5%] w-[30%] h-[30%] rounded-full bg-violet-500/5 blur-[100px]"})]}),M.jsx("div",{className:"relative z-10 w-full",children:t})]})},ga=({offsetX:e,offsetY:t})=>M.jsxs("svg",{className:"w-full h-full",children:[M.jsx("defs",{children:M.jsx(c.pattern,{id:"grid-pattern-infinite",width:"40",height:"40",patternUnits:"userSpaceOnUse",x:e,y:t,children:M.jsx("path",{d:"M 40 0 L 0 0 0 40",fill:"none",stroke:"currentColor",strokeWidth:"1",className:"text-slate-300 dark:text-slate-700"})})}),M.jsx("rect",{width:"100%",height:"100%",fill:"url(#grid-pattern-infinite)"})]}),xa=()=>{const{t:t}=Ge(),[a,o]=e.useState(1),[r,i]=e.useState(""),[s,n]=e.useState(""),l=e.useRef(Date.now()),[d,u]=e.useState(!1),[m,p]=e.useState(!1),[h,b]=e.useState(!1),f=e.useRef(null),g=e.useRef(0);e.useEffect(()=>{const e=()=>{if(f.current){const e=f.current.offsetWidth,t=f.current.offsetHeight;if(window.innerWidth<=768&&g.current===e)return;g.current=e;const a=e/1920,r=t/1080;o(Math.min(a,r,1))}};let t;e();const a=()=>{clearTimeout(t),t=setTimeout(e,100)};return window.addEventListener("resize",a),()=>window.removeEventListener("resize",a)},[]);const x={hidden:{opacity:0,y:8},visible:{opacity:1,y:0,transition:{duration:.15,ease:"easeOut"}}};return M.jsx(fa,{className:"pt-32 pb-24 min-h-screen flex flex-col justify-center",children:M.jsxs("div",{className:"container mx-auto px-6 relative z-10",children:[M.jsxs(c.div,{initial:"hidden",animate:"visible",variants:{hidden:{opacity:0}
2,visible:{opacity:1,transition:{staggerChildren:.04,delayChildren:0}}},className:"max-w-4xl mx-auto text-center flex flex-col items-center mb-12",children:[M.jsx(c.div,{variants:x,className:"mb-6",children:M.jsx("h1",{className:"font-display font-medium text-4xl md:text-5xl lg:text-7xl leading-[1.1] text-brand-text mb-4 tracking-tight relative z-20",children:t("hero.titleHtml")?M.jsx("span",{dangerouslySetInnerHTML:{__html:t("hero.titleHtml")}}):M.jsxs(M.Fragment,{children:[("string"==typeof t("hero.titleLine1")?t("hero.titleLine1"):"").split(/(ALL)/i).map((e,t)=>"ALL"===e.toUpperCase()?M.jsx("span",{className:"text-rose-500 font-bold",children:e},t):M.jsx("span",{children:e},t)),M.jsxs("span",{className:"flex items-center justify-center flex-wrap gap-2 mt-2 font-display w-full",children:[t("hero.titlePreposition")&&M.jsx("span",{children:t("hero.titlePreposition")}),M.jsxs("span",{className:"inline-flex items-baseline relative group cursor-default pb-2",children:[M.jsx("span",{className:"font-display font-bold text-4xl md:text-5xl lg:text-7xl text-gradient tracking-tight pr-2",children:t("hero.titleHighlight")}),M.jsx("span",{className:"absolute bottom-0 left-0 w-full h-[3px] bg-gradient-to-r from-rose-500 to-violet-500 scale-x-0 origin-center transition-transform duration-500 ease-out group-hover:scale-x-100 rounded-full"})]})]})]})})}),M.jsx(c.p,{variants:x,className:"text-sm md:text-base text-brand-textMuted mb-8 leading-relaxed max-w-2xl font-light",dangerouslySetInnerHTML:{__html:t("hero.subtitle")}}),M.jsxs(c.div,{variants:x,className:"flex flex-col items-center mb-8",children:[M.jsxs("div",{className:"w-full max-w-md mb-4 flex flex-col sm:flex-row gap-2 items-stretch",children:[M.jsxs("form",{onSubmit:async e=>{if(e.preventDefault(),r)if(Qe(s))u(!0);else{u(!0),setTimeout(()=>p(!0),3500);try{await fetch("/.netlify/functions/submit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:"contact",data:{name:"",company:"",email:r.substring(0,100),body:""},meta:{...D(),fast:Ke(l.current)},[Ve]:s})})}catch(t){}}},className:"flex-1",children:[M.jsx("input",{...Ye,value:s,onChange:e=>n(e.target.value)}),d?M.jsx(c.button,{type:"button",initial:{opacity:0}
2,animate:{opacity:1},transition:{duration:.4},onClick:m&&!h?()=>{b(!0),window.dispatchEvent(new Event("hero-submitted")),(()=>{const e=document.getElementById("contact");e&&(window.dispatchEvent(new Event("highlight-contact")),e.scrollIntoView({behavior:"smooth"}))})()}:void 0,className:"w-full px-5 py-3 rounded-full flex items-center justify-center gap-2 text-sm font-medium transition-all bg-emerald-50 border border-emerald-200 text-emerald-700 "+(m&&!h?"hover:bg-emerald-100 cursor-pointer":"cursor-default"),children:h?M.jsxs(M.Fragment,{children:[M.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:M.jsx("polyline",{points:"20 6 9 17 4 12"})}),t("hero.contacted")]}):m?M.jsxs(M.Fragment,{children:[t("hero.tellUsMore")," â"]}):M.jsxs(M.Fragment,{children:[M.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:M.jsx("polyline",{points:"20 6 9 17 4 12"})}),t("hero.thanks")]})},m?"tell":"thanks"):M.jsx("input",{type:"email",value:r,onChange:e=>i(e.target.value),placeholder:t("hero.emailPlaceholder"),className:"w-full px-5 py-3 rounded-full bg-white/80 dark:bg-slate-800/80 text-slate-900 dark:text-white placeholder:text-slate-400 focus:outline-none shadow-sm hover:shadow-md focus:shadow-md hover:bg-white focus:bg-white transition-all text-sm text-center cursor-text"}),M.jsx("button",{type:"submit",className:"sr-only",tabIndex:-1,"aria-hidden":"true",children:"Send"})]}),M.jsx("a",{href:"https://calendar.app.google/Tr81Nw4ZUfRxA9AA6",target:"_blank",rel:"noopener noreferrer",className:"px-5 py-3 rounded-full text-sm font-medium whitespace-nowrap flex items-center justify-center border border-brand-grid bg-white/70 dark:bg-slate-800/70 text-brand-text hover:bg-white dark:hover:bg-slate-800 hover:border-brand-primary/40 transition-colors shadow-sm",children:t("hero.ctaBookCall")})]}),M.jsx("p",{className:"text-xs text-brand-textMuted max-w-md mb-4 leading-relaxed",children:t("hero.choiceHint")})]})]}),M.jsx("div",{className:"relative w-full max-w-7xl mx-auto pb-20 md:pb-0",children:M.jsx("div",{className:"relative group",children:M.jsxs("div",{className:"relative bg-white dark:bg-slate-900 rounded-t-3xl shadow-[0_20px_40px_-5px_rgba(0,0,0,0.1)] dark:shadow-[0_20px_40px_-5px_rgba(0,0,0,0.3)] border border-slate-200 dark:border-slate-700 overflow-hidden w-full z-10 flex flex-col bg-clip-padding",children:[M.jsxs("div",{className:"h-10 bg-slate-100 dark:bg-slate-800 border-b border-slate-200 dark:border-slate-700 flex items-center px-4 gap-4 z-20 relative shrink-0",children:[M.jsxs("div",{className:"flex gap-2",children:[M.jsx("div",{className:"w-3 h-3 rounded-full bg-rose-400 border border-rose-500/30"}),M.jsx("div",{className:"w-3 h-3 rounded-full bg-amber-400 border border-amber-500/30"}),M.jsx("div",{className:"w-3 h-3 rounded-full bg-emerald-400 border border-emerald-500/30"})]}),M.jsxs("div",{className:"flex-1 max-w-2xl mx-auto bg-white dark:bg-slate-700 rounded-md h-7 flex items-center px-3 shadow-sm border border-slate-200 dark:border-slate-600 gap-2",children:[M.jsx("div",{className:"text-slate-400",children:M.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[M.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),M.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]})}),M.jsx("img",{src:"/static/Logo CLimate For All_FINAL.svg",alt:"Logo",className:"w-4 h-4 object-contain opacity-80"}),M.jsx("span",{className:"text-xs text-slate-500 dark:text-slate-300 font-medium select-none",children:t("hero.browserUrl")})]}),M.jsx("div",{className:"w-14"})]}),M.jsx("div",{ref:f,className:"w-full aspect-video bg-slate-50 dark:bg-slate-900 relative isolate z-0 overflow-hidden flex items-center justify-center",children:M.jsx("div",{className:"w-[1920px] h-[1080px] flex-shrink-0 relative origin-center",style:{transform:`scale(${a})`,willChange:"transform"},children:M.jsx("iframe",{src:"/dashboard/analysis.html",title:t("hero.dashboardTitle"),className:"w-full h-full border-none pointer-events-auto"})})})]})})})]})})},ya=()=>{const{t:e}=Ge();return M.jsx("section",{className:"w-full bg-slate-900 text-white py-3 overflow-hidden relative z-20 border-y border-white/10",children:M.jsxs("div",{className:"flex items-center justify-center gap-4 text-sm font-medium tracking-wide",children:[M.jsxs("div",{className:"flex items-center gap-2",children:[M.jsxs("span",{className:"relative flex h-2 w-2",children:[M.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-emerald-400 opacity-75"}),M.jsx("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-emerald-500"})]}),M.jsx("span",{className:"text-emerald-400 font-bold uppercase",children:e("pilotBanner.label")})]}),M.jsx("span",{className:"opacity-80 hidden sm:inline",children:"|"}),M.jsxs("span",{className:"text-slate-200",children:[e("pilotBanner.launchPrefix")," ",M.jsx("strong",{className:"text-white",children:e("pilotBanner.launchDate")})]})]})})},va="[email protected]",wa={privacy:{slug:"privacy",title:"Privacy Policy",intro:"Climate For All is a pre-launch company. We do not sell a product yet and there are no accounts. This policy will be replaced before anything is made available.",sections:[{h:"Who we are",p:[`This website, www.climateforall.ai, is run by the two founders of Climate For All, and we are the controller of the personal data described here. Write to us about anything on this page at ${va} and one of us will answer personally.`,"We have not appointed a data protection officer, as we are not required to under Article 37 GDPR."]},{h:"If you contact us",p:["When you use the contact form or leave your email we collect the email address, and, if you choose to give them, your name, your company and your message. Only the email address is required, because without it we cannot reply.","Purpose: to reply, and where you asked us to, to tell you when the product is ready.","Legal basis: Article 6(1)(b) GDPR for steps taken at your request before a contract, and Article 6(1)(f) GDPR, our legitimate interest in answering enquiries about our own business."]},{h:"If you complete the survey",p:["We collect the answers you give.","Purpose: to understand what the people we are building for actually need.","Legal basis: Article 6(1)(f) GDPR, our legitimate interest in researching our market. Nothing on this site depends on your completing it."]},{h:"When you open a page",p:['We add one to a counter. We record the date, the page, a broad category for how you reached us such as "search", "social" or "direct", and whether the device is a phone or a desktop.',"We do not record your IP address. We do not record the identification string your browser sends. We do not record the address of the page that referred you. Nothing about this count is stored on your device.","The result is a count. It holds nothing that identifies you and n
2othing that can be traced back to you. This is why this site has no cookie banner: there is nothing here to consent to."]},{h:"Where the data goes",p:["This website is hosted on Netlify. What you send through the forms passes through a function on that platform and is stored in a Google spreadsheet that only the two of us open.","We do not sell your data, we do not use it for advertising, and we share it with nobody beyond the two providers named above unless the law requires it.","Both providers are able to process data outside the European Economic Area and the United Kingdom."]},{h:"How long we keep it",p:["We keep an enquiry for as long as we are in contact with you about it, and survey answers for as long as we are still building the product they were given to inform. Visit counts hold nothing personal, so nothing about them can be traced back to a person however long they are kept.",`Ask us to delete anything you have sent and we will do it, and confirm it to you. Write to ${va}.`]},{h:"Your rights",p:["Under the GDPR, and under the UK GDPR if you are in the United Kingdom, you can ask us for a copy of the personal data we hold about you, have it corrected, have it deleted, restrict how we use it, object to our using it where we rely on legitimate interests, and receive it in a portable form. Where we rely on consent you can withdraw it at any time, which does not affect anything done before you withdrew it.",`To exercise any of these, write to ${va}. We reply within one month.`]},{h:"Complaints",p:["If you think we have handled your data badly, please tell us first. You can also complain to a supervisory authority, normally in the country where you live or work: in France the CNIL (www.cnil.fr), in Italy the Garante per la protezione dei dati personali (www.garanteprivacy.it), in the United Kingdom the Information Commissionerâs Office (ico.org.uk), and elsewhere in the EU or EEA your national authority."]},{h:"Changes",p:["If we change this policy we will say so on the site. As the company takes a legal form and the product launches, this page will be replaced by a fuller one."]}]},cookies:{slug:"cookies",title:"Cookie Notice",intro:"The short version: this site sets no cookies, and the only things it keeps in your browser are the two you choose yourself.",sections:[{h:"What we use",p:["No cookies. No session storage, no fingerprinting, and no advertising or analytics tag from anyone else.","Two things are remembered, and only when you set them yourself: the language, if you change it, and the light or dark appearance, if you switch it. Both stay in your own browser, are never sent to us, and say nothing about who you are."]},{h:"Why there is no banner",p:["A consent banner exists because a site stores or reads something on your device that it does not need, or because it builds a record that can be traced back to a person. This site does neither. Counting page views without an IP address, without a user agent and without a referring address leaves a number, and a number needs no permission.","Two things are kept in your browser, and only if you ask for them: the light or dark appearance, when you switch it, and the language, when you choose one. They stay on your device, they are never sent to us, and they hold nothing that says who you are. Choose neither and this site writes nothing to your device at all."]},{h:"Embedded content",p:["The interactive dashboard on the home page is served from this same site and sets nothing. There is no map, video, chat or advertising embed anyw
2here on this site. The typefaces are requested from Google Fonts, which means your browser contacts a Google server to fetch them; that request carries your IP address, as any request for a file does, and it sets nothing on your device."]},{h:"If this changes",p:[`If we ever add something that stores data on your device we will ask you first, and this page will say what it is and what it does. To check where things stand, write to ${va}.`]}]},terms:{slug:"terms",title:"Terms of Use",intro:"These terms cover this website. They do not cover a product, because there is not one on sale yet.",sections:[{h:"What this site is",p:["A marketing site for a company still building its product, and an interactive mock-up of that product. The mock-up on this page computes nothing: it runs no simulation and calls no server, and every figure it shows is illustrative, chosen to present the interface rather than to describe a real building. The simulation engine is separate software and is not what this page runs."]},{h:"Not professional advice",p:["Nothing on this site is engineering, architectural, legal or financial advice, and nothing here should be relied on for a decision about a real building. Building physics results depend on inputs, assumptions and standards that a qualified professional has to select and defend for the specific case in front of them."]},{h:"What you may do with it",p:["Read it, link to it, and quote it with attribution. Please do not copy the site or its content wholesale, present it as your own, or scrape it at a rate that degrades it for other people."]},{h:"What you send us",p:["Please do not send confidential information, personal data about other people, or anything you do not have the right to share. What you do send, you allow us to read and to use in order to reply to you and to improve what we are building. We claim no ownership of it."]},{h:"Availability",p:["This is a pre-launch site. It may be changed, interrupted or withdrawn at any time, and we promise no particular uptime."]},{h:"Our responsibility",p:["We take care that what is published here is accurate, and we correct mistakes when we find them or when you tell us about one. We do not accept responsibility for a decision taken on the basis of a page on this site, for the reason given above: nothing here is professional advice and none of the figures shown describes a real building.","Nothing in these terms limits any liability that the law does not allow us to limit."]}]},legal:{slug:"legal",title:"Legal Notice",intro:"Who publishes this site, and where to reach them. Published to meet the identification duties that apply in France under the LCEN and in Italy under article 7 of D.Lgs. 70/2003.",sections:[{h:"Publisher",p:["Climate For All, a project of its two founders, Tommaso Aiello and Giacomo Aiello.",`Contact: ${va}.`,"Working locations: Paris, France and Milan, Italy."]},{h:"Host",p:["This site is hosted on Netlify."]},{h:"Intellectual property",p:["The name Climate For All, the logo, the text, the images and the software behind this site belong to the publisher, except where a third party is credited. The logo of 21st by CentraleSupelec belongs to that institution and appears with its permission. University logos shown beside the name of a founder identify where that person studied and imply no affiliation of the company."]}]}},ka=["privacy","cookies","terms","legal"],Na=({className:e="py-12 bg-slate-100 dark:bg-slate-950 relative z-10 border-t border-slate-200 dark:border-slate-800 transition-colors"})=>{const{t:t}=Ge();return M.jsx("section",{className:e,children:M.jsxs("div",{className:"max-w-5xl mx-auto px-6",children:[M.jsx("p",{className:"text-center text-xs font-bold text-slate-500 dark:text-slate-400 uppercase tracking-widest mb-8",children:t("trustedBy.title")}),M.jsxs("div",{className:"flex flex-wrap justify-center items-center gap-4 sm:gap-6 md:gap-10 opacity-50 grayscale hover:grayscale-0 hover:opacity-100 transition-all duration-500 min-h-[60px]",children:[M.jsx("a",{href:"https://21st.centralesupelec.fr/",target:"_blank",className:"dark:hidden",children:M.jsx("img",{src:"static/trustedby_21stCentralesupelec.svg",alt:t("trustedBy.partners.centralesupelec.alt"),className:"h-16 w-auto object-contain",title:t("trustedBy.partners.centralesupelec.title")})}),M.jsx("a",{href:"https://21st.centralesupelec.fr/",target:"_blank",className:"hidden dark:block",children:M.jsx("img",{src:"static/trustedby_21stCentralesupelec_white.webp",alt:t("trustedBy.partners.centralesupelec.alt"),className:"h-16 w-auto object-contain",title:t("trustedBy.partners.centralesupelec.title")})})]})]})})},ja=({isModal:t=!1,skipIntroQuestion:a=!1,onClose:o})=>{const{t:r}=Ge(),i=r("survey.questions")||[],[s,n]=e.useState(0),[l,d]=e.useState({}),[c,u]=e.useState(""),[m,p]=e.useState(!1),h=(e,t)=>{d(a=>{const o=`q${e}`,r=a[o]||[];let i=r.includes(t)?r.filter(e=>e!==t):[...r,t];return c&&u(""),{...a,[o]:i}})},b=(e,t)=>{d(a=>({...a,[`q${e}_other`]:t})),c&&u("")},f=()=>{if(s>0&&s<=8){const e=i[s-1],t=l[`q${e.id}`],a=e.options[e.options.length-1],o=e=>{u(e),setTimeout(()=>u(""),2e3)};if(!t||0===t.length)return void o(r("survey.validationSelectOne"));if(t.includes(a)&&(!l[`q${e.id}_other`]||""===l[`q${e.id}_other`].trim()))return void o(r("survey.validationSpecifyOther"))}u(""),n(e=>e+1)},g=()=>n(e=>e-1),x=async()=>
2{if(m)return;const e=i[7],t=l[`q${e.id}`],a=e=>{u(e),setTimeout(()=>u(""),2e3)};if(!t||0===t.length)return void a(r("survey.validationSelectOne"));const o=i[7].options[i[7].options.length-1];if(!t.includes(o)||l[`q${e.id}_other`]&&""!==l[`q${e.id}_other`].trim()){p(!0);try{await fetch("/.netlify/functions/submit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:"survey",answers:l,meta:D()})}),n(9)}catch(s){}finally{p(!1)}}else a(r("survey.validationSpecifyOther"))},y=(e,t)=>{var a;return null==(a=l[`q${e}`])?void 0:a.includes(t)};return t?M.jsx("div",{className:"p-6 sm:p-8",children:M.jsxs("div",{className:"relative overflow-hidden",style:{minHeight:"300px"},children:[M.jsxs("div",{className:"fixed top-24 left-1/2 -translate-x-1/2 z-[300] bg-slate-900 text-white px-4 py-2 rounded-lg shadow-xl text-sm font-medium transition-all duration-300 text-center whitespace-nowrap "+(c?"opacity-100 translate-y-0":"opacity-0 -translate-y-4 pointer-events-none"),children:["â ï¸ ",c]}),M.jsxs("div",{className:"survey-container w-full relative transition-all duration-300",children:[M.jsx("div",{className:"survey-slide "+(0===s?"active":s>0?"exit":""),children:M.jsxs("div",{className:"text-center py-12 md:py-16",children:[M.jsx("div",{className:"w-24 h-24 mx-auto mb-10",children:M.jsx("img",{src:"static/Logo CLimate For All_FINAL.svg",alt:"Climate For All",className:"w-full h-full object-contain"})}),M.jsx("button",{onClick:f,className:"px-10 py-4 bg-slate-900 dark:bg-white text-white dark:text-slate-900 rounded-xl font-bold shadow-lg hover:-translate-y-0.5 transition-all text-lg",children:r("survey.startButton")})]})}),i.map((e,t)=>{const a=t+1;let o="survey-slide";return s===a&&(o+=" active"),s>a&&(o+=" exit"),M.jsxs("div",{className:o,children:[M.jsxs("div",{className:"flex justify-between items-center mb-4",children:[M.jsxs("span",{className:"text-xs font-bold text-slate-400 uppercase tracking-widest",children:[r("survey.questionPrefix")," ",e.id," ",r("survey.questionSuffix")]}),M.jsx("div",{className:"w-20 h-1 bg-slate-100 dark:bg-slate-700 rounded-full overflow-hidden",children:M.jsx("div",{className:"h-full bg-rose-500 transition-all duration-500",style:{width:e.id/8*100+"%"}})})]}),M.jsx("h3",{className:"font-display font-medium text-lg md:text-xl text-slate-900 dark:text-white mb-6",children:e.question}),M.jsx("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2 sm:gap-3 w-full",children:e.options.map(t=>{const a=y(e.id,t),o=t===e.options[e.options.length-1];return M.jsx("div",{onClick:a=>{"INPUT"!==a.target.tagName&&h(e.id,t)},className:"group relative px-4 py-3 rounded-xl cursor-pointer transition-all duration-200 border text-left "+(a?"bg-slate-900 dark:bg-white border-slate-900 dark:border-white text-white dark:text-slate-900 shadow-md":"bg-white dark:bg-brand-surface border-brand-grid hover:border-slate-400"),children:M.jsxs("div",{className:"flex items-center gap-3 w-full",children:[M.jsx("div",{className:"w-4 h-4 shrink-0 rounded-full border flex items-center justify-center transition-colors "+(a?"border-white dark:border-slate-900 bg-white dark:bg-slate-900":"border-slate-300"),children:a&&M.jsx("div",{className:"w-2 h-2 rounded-full bg-slate-900 dark:bg-white"})}),M.jsx("span",{className:"text-sm font-medium "+(a?"":"text-brand-text"),children:t}),o&&a&&M.jsx("input",{type:"text",autoFocus:!0,placeholder:r("survey.otherPlaceholder"),className:"ml-2 flex-1 bg-transparent border-b border-white/50 text-inherit text-sm focus:outline-none placeholder:text-white/50",onChange:t=>b(e.id,t.target.value),value:l[`q${e.id}_other`]||""})]})},t)})}),M.jsxs("div",{className:"flex items-center justify-between mt-6",children:[M.jsx("button",{onClick:g,className:"px-4 py-2 text-slate-400 hover:text-slate-600 font-bold text-sm",children:r("survey.backButton")}),8===a?M.jsx("button",{onClick:x,disabled:m,className:"px-6 py-2 bg-rose-500 hover:bg-rose-600 text-white rounded-xl font-bold text-sm shadow-md "+(m?"opacity-50 cursor-not-allowed":""),children:m?"Sending...":r("survey.submitButton")}):M.jsx("button",{onClick:f,className:"px-6 py-2 bg-slate-900 dark:bg-white text-white dark:text-slate-900 rounded-xl font-bold text-sm shadow-md",children:r("survey.nextButton")})]})]},e.id)}),M.jsx("div",{className:"survey-slide "+(9===s?"active":""),children:M.jsxs("div",{className:"flex flex-col items-center justify-center text-center py-12 md:py-16",children:[M.jsx("div",{className:"w-20 h-20 mb-4",children:M.jsx("img",{src:"static/Logo CLimate For All_FINAL.svg",alt:"Climate For All",className:"w-full h-full object-contain"})}),M.jsx("h3",{className:"font-display font-medium text-xl text-slate-900 dark:text-white mb-2",children:r("survey.successTitle")}),M.jsx("p",{className:"text-brand-textMuted text-sm max-w-xs mx-auto",children:r("survey.successText")})]})})]})]})}):M.jsxs("section",{id:"survey",className:"py-24 relative z-10 overflow-hidden bg-brand-surfaceAlt/30",children:[M.jsx("div",{className:"absolute left-1/2 top-0 bottom-0 w-[1px] bg-gradient-to-b from-transparent via-brand-grid to-transparent hidden lg:block"}),M.jsx("div",{className:"hidden md:block blob-bg w-[500px] h-[500px] bg-rose-100/40 dark:bg-rose-900/10 top-[5%] left-[-15%
2] animate-blob mix-blend-multiply dark:mix-blend-screen pointer-events-none"}),M.jsx("div",{className:"hidden md:block blob-bg w-[400px] h-[400px] bg-violet-100/40 dark:bg-violet-900/10 bottom-[10%] right-[-10%] animate-blob mix-blend-multiply dark:mix-blend-screen pointer-events-none",style:{animationDelay:"-4s"}}),M.jsxs("div",{className:"max-w-7xl mx-auto px-6 relative z-10",children:[M.jsxs("div",{className:"text-center max-w-3xl mx-auto mb-16 reveal",children:[M.jsxs("h2",{className:"font-display font-medium text-3xl md:text-4xl mb-6 text-slate-900 dark:text-white tracking-tight",children:[r("survey.title")," ",M.jsx("span",{className:"text-gradient",children:r("survey.titleHighlight")})]}),M.jsx("p",{className:"text-brand-textMuted text-lg lg:text-xl font-light",dangerouslySetInnerHTML:{__html:r("survey.subtitle")}})]}),M.jsx("div",{className:"max-w-2xl mx-auto",children:M.jsxs("div",{className:"bg-white dark:bg-brand-surface rounded-2xl border border-brand-grid shadow-xl overflow-hidden relative",children:[M.jsx("div",{className:"absolute top-0 left-0 w-full h-1 bg-gradient-to-r from-rose-500 via-violet-500 to-amber-500"}),M.jsxs("div",{className:"p-6 sm:p-8 md:p-12 relative overflow-hidden",children:[M.jsxs("div",{className:"fixed top-24 left-1/2 -translate-x-1/2 z-[100] bg-slate-900 text-white px-4 py-2 rounded-lg shadow-xl text-sm font-medium transition-all duration-300 text-center whitespace-nowrap "+(c?"opacity-100 translate-y-0":"opacity-0 -translate-y-4 pointer-events-none"),children:["â ï¸ ",c]}),M.jsxs("div",{className:"survey-container w-full relative transition-all duration-300",style:{minHeight:"300px"},children:[M.jsx("div",{className:"survey-slide "+(0===s?"active":s>0?"exit":""),id:"slide-0",children:M.jsxs("div",{className:"text-center",children:[M.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 bg-emerald-50 dark:bg-emerald-900/20 rounded-full mb-8",children:[M.jsx("span",{className:"w-2 h-2 rounded-full bg-emerald-500 animate-pulse"}),M.jsx("span",{className:"text-xs font-bold text-emerald-600 dark:text-emerald-400 uppercase tracking-wide",children:r("survey.liveBadge")})]}),M.jsx("p",{className:"text-brand-textMuted text-lg mb-8 leading-relaxed max-w-md mx-auto",children:r("survey.landingText")}),M.jsx("button",{onClick:f,className:"w-full max-w-xs mx-auto py-4 bg-slate-900 dark:bg-white text-white dark:text-slate-900 rounded-xl font-bold shadow-lg hover:shadow-xl hover:-translate-y-0.5 transition-all text-base",children:r("survey.startButton")})]})}),i.map((e,t)=>{const a=t+1;let o="survey-slide";return s===a&&(o+=" active"),s>a&&(o+=" exit"),M.jsxs("div",{className:o,id:`slide-${a}`,children:[M.jsxs("div",{className:"flex justify-between items-center mb-6",children:[M.jsxs("span",{className:"text-xs font-bold text-slate-400 uppercase tracking-widest",children:[r("survey.questionPrefix")," ",e.id," ",r("survey.questionSuffix")]}),M.jsx("div",{className:"w-24 h-1.5 bg-slate-100 dark:bg-slate-700 rounded-full overflow-hidden",children:M.jsx("div",{className:"h-full bg-rose-500 transition-all duration-500",style:{width:e.id/8*100+"%"}})})]}),M.jsx("h3",{className:"font-display font-medium text-xl md:text-2xl text-slate-900 dark:text-white mb-8 leading-tight tracking-tight",children:e.question}),M.jsx("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2 sm:gap-3 w-full pr-1",children:e.options.map(t=>{const a=y(e.id,t),o=t===e.options[e.options.length-1];return M.jsx("div",{onClick:a=>{"INPUT"!==a.target.tagName&&h(e.id,t)},className:`\n group relative px-4 py-3 rounded-xl cursor-pointer transition-all duration-200 border text-left\n ${a?"bg-slate-900 dark:bg-white border-slate-900 dark:border-white text-white dark:text-slate-900 shadow-md":"bg-white dark:bg-brand-surface border-brand-grid hover:border-slate-400 dark:hover:border-slate-500"}\n `,children:M.jsxs("div",{className:"flex items-center gap-3 w-full",children:[M.jsx("div",{className:"w-4 h-4 shrink-0 rounded-full border flex items-center justify-center transition-colors "+(a?"border-white dark:border-slate-900 bg-white dark:bg-slate-900":"border-slate-300"),children:a&&M.jsx("div",{className:"w-2 h-2 rounded-full bg-slate-900 dark:bg-white"})}),M.jsx("span",{className:"text-sm font-medium whitespace-normal text-left leading-snug "+(a?"":"text-brand-text"),children:t}),o&&a&&M.jsx("input",{type:"text",autoFocus:!0,placeholder:r("survey.otherPlaceholder"),className:"ml-2 flex-1 bg-transparent border-b border-white/50 dark:border-slate-900/50 text-white dark:text-slate-900 text-sm focus:outline-none placeholder:text-white/50 dark:placeholder:text-slate-900/50 py-0 leading-tight",onCh
2ange:t=>b(e.id,t.target.value),value:l[`q${e.id}_other`]||""})]})},t)})}),M.jsx("div",{className:"flex flex-col items-center mt-8 w-full",children:M.jsxs("div",{className:"flex items-center justify-between w-full",children:[M.jsx("button",{onClick:g,className:"px-6 py-2 text-slate-400 hover:text-slate-600 dark:hover:text-slate-300 font-bold text-sm transition-colors",children:r("survey.backButton")}),8===a?M.jsx("button",{onClick:x,disabled:m,className:"px-8 py-3 bg-rose-500 hover:bg-rose-600 text-white rounded-xl font-bold text-sm shadow-md hover:-translate-y-0.5 transition-all "+(m?"opacity-50 cursor-not-allowed":""),children:m?"Sending...":r("survey.submitButton")}):M.jsx("button",{onClick:f,className:"px-8 py-3 bg-slate-900 dark:bg-white text-white dark:text-slate-900 rounded-xl font-bold text-sm shadow-md hover:-translate-y-0.5 transition-all",children:r("survey.nextButton")})]})})]},e.id)}),M.jsx("div",{className:"survey-slide "+(9===s?"active":""),id:"slide-9",children:M.jsxs("div",{className:"flex flex-col items-center justify-center text-center h-full py-8",children:[M.jsx("div",{className:"w-24 h-24 mb-6",children:M.jsxs("svg",{viewBox:"0 0 100 100",className:"w-full h-full",children:[M.jsx("circle",{cx:"50",cy:"50",r:"45",fill:"none",stroke:"url(#grad)",strokeWidth:"3"}),M.jsx("text",{x:"50",y:"42",textAnchor:"middle",className:"fill-slate-900 dark:fill-white font-display font-bold",style:{fontSize:"18px"},children:"CLIMATE"}),M.jsxs("text",{x:"50",y:"60",textAnchor:"middle",className:"fill-slate-900 dark:fill-white font-display font-bold",style:{fontSize:"18px"},children:["FOR ",M.jsx("tspan",{className:"fill-rose-500",children:"ALL"})]}),M.jsx("defs",{children:M.jsxs("linearGradient",{id:"grad",x1:"0%",y1:"0%",x2:"100%",y2:"100%",children:[M.jsx("stop",{offset:"0%",stopColor:"#f43f5e"}),M.jsx("stop",{offset:"100%",stopColor:"#8b5cf6"})]})})]})}),M.jsx("h3",{className:"font-display font-medium text-2xl md:text-3xl text-slate-900 dark:text-white mb-3 tracking-tight",children:r("survey.successTitle")}),M.jsx("p",{className:"text-brand-textMuted text-base max-w-sm mx-auto",children:r("survey.successText")})]})})]})]})]})})]})]})},Sa=({isModal:e=!1})=>{const{t:t}=Ge(),o=t("faq.items"),[r,i]=a.useState(null),s=e=>{i(r===e?null:e)};return e?M.jsxs("div",{className:"p-6 sm:p-8",children:[M.jsx("h2",{className:"font-display font-medium text-xl md:text-2xl mb-6 text-center text-slate-900 dark:text-white tracking-tight",children:t("faq.title")}),M.jsx("div",{className:"space-y-4",children:Array.isArray(o)&&o.map((e,t)=>M.jsxs("div",{className:"bg-slate-50 dark:bg-slate-800/50 rounded-xl transition-all duration-300 border cursor-pointer "+(r===t?"shadow-md border-brand-grid":"border-transparent hover:bg-slate-100 dark:hover:bg-slate-800"),children:[M.jsxs("button",{type:"button",onClick:()=>s(t),className:"w-full p-4 flex justify-between items-center font-bold text-brand-text text-sm text-left",children:[e.question,M.jsx("span",{className:"w-6 h-6 rounded-full bg-white dark:bg-slate-700 flex items-center justify-center text-brand-primary shadow-sm transition-transform duration-300 text-xs "+(r===t?"rotate-180":""),children:"â"})]}),M.jsx("div",{className:"overflow-hidden transition-all duration-300 "+(r===t?"max-h-96 opacity-100":"max-h-0 opacity-0"),children:M.jsx("div",{className:"px-4 pb-4 text-brand-textMuted text-sm leading-relaxed",dangerouslySetInnerHTML:{__html:e.answer}})})]},t))})]}):M.jsx("section",{className:"py-24 relative z-10 transition-colors bg-brand-surfaceAlt",id:"faq",children:M.jsxs("div",{className:"max-w-3xl mx-auto px-6",children:[M.jsx("h2",{className:"font-display font-medium text-3xl md:text-4xl mb-12 text-center text-slate-900 dark:text-white tracking-tight",children:t("faq.title")}),M.jsx("div",{className:"space-y-6",children:Array.isArray(o)&&o.map((e,t)=>M.jsxs("div",{className:"bg-brand-surface rounded-3xl transition-all duration-300 border cursor-pointer "+(r===t?"shadow-float border-brand-grid":"border-transparent hover:shadow-md"),children:[M.jsxs("button",{type:"button",onClick:()=>s(t),className:"w-full p-6 flex justify-between items-center font-bold text-brand-text text-left",children:[e.question,M.jsx("span",{className:"w-8 h-8 rounded-full bg-brand-surfaceAlt flex items-center justify-center text-brand-primary shadow-sm transition-transform duration-300 "+(r===t?"rotate-180":""),children:"â"})]}),M.jsx("div",{className:"overflow-hidden transition-all duration-300 "+(r===t?"max-h-[500px] opacity-100":"max-h-0 opacity-0"),children:M.jsx("div",{className:"px-6 pb-6 text-brand-textMuted leading-relaxed animate-fade-in",dangerouslySetInnerHTML:{__html:e.answer}}
2)})]},t))})]})})},Aa=()=>{const{t:e}=Ge(),[t,r]=a.useState(!1),[i,s]=a.useState({name:"",company:"",email:"",body:"",beta:!1}),[n,l]=a.useState(""),d=a.useRef(Date.now()),[c,u]=a.useState(!1),[m,p]=a.useState(!1),[h,b]=a.useState(!1),[f,w]=a.useState(!1),[k,N]=a.useState([]),[j,S]=a.useState({right:"",left:"",length:0}),A=a.useRef(null),T=a.useRef(0);a.useRef(0);const C=a.useRef(new Set);a.useEffect(()=>{const e=()=>{r(!0),setTimeout(()=>r(!1),1200)};return window.addEventListener("highlight-contact",e),()=>window.removeEventListener("highlight-contact",e)},[]),a.useEffect(()=>{const e=()=>b(!0);return window.addEventListener("open-survey",e),()=>window.removeEventListener("open-survey",e)},[]),a.useEffect(()=>{const e=()=>{u(e=>(e||p(!0),!0))};return window.addEventListener("hero-submitted",e),()=>window.removeEventListener("hero-submitted",e)},[]),a.useEffect(()=>{let e;const t=()=>{if(!A.current)return;const e=A.current.offsetWidth,t=A.current.offsetHeight;S({right:`M ${e/2} 0 L ${e-16} 0 Q ${e} 0 ${e} 16 L ${e} ${t-16} Q ${e} ${t} ${e-16} ${t} L ${e/2} ${t}`,left:`M ${e/2} 0 L 16 0 Q 0 0 0 16 L 0 ${t-16} Q 0 ${t} 16 ${t} L ${e/2} ${t}`,length:e/2+t+e/2})};t();const a=new ResizeObserver(()=>{clearTimeout(e),e=setTimeout(t,100)});return A.current&&a.observe(A.current),()=>{clearTimeout(e),a.disconnect()}},[]);const E=a.useMemo(()=>{let e=0;return i.name.length>0&&e++,i.company.length>0&&e++,i.email.length>0&&e++,i.body.length>0&&e++,i.beta&&e++,Math.max(0,Math.min(e/5,1))},[i]),I=a.useCallback(()=>{const e=T.current++,t=4*Math.random()+2,a=100*Math.random(),o=2*Math.random()+3,r={id:e,size:t,left:a,duration:o};N(e=>{const t=[...e,r];return t.length>50?t.slice(-50):t});const i=setTimeout(()=>{N(t=>t.filter(t=>t.id!==e)),C.current.delete(i)},1e3*o);C.current.add(i)},[]);a.useEffect(()=>()=>{C.current.forEach(clearTimeout)},[]);const L=a.useCallback(e=>{const{name:t,value:a,type:o,checked:r}=e.target;if(s(e=>({...e,[t]:"checkbox"===o?r:a})),("checkbox"===o?r?1:0:a.length)>(i[t]?"checkbox"===o?1:i[t].length:0)){const e=Math.floor(3*Math.random())+1;for(let t=0;t<e;t++)I()}},[i,I]),P=j.length-j.length*E,[z,R]=a.useState(!1);return M.jsxs(M.Fragment,{children:[M.jsxs("footer",{className:"relative pt-24 md:pt-32 overflow-hidden bg-transparent",children:[M.jsx("div",{className:"fixed top-24 left-1/2 -translate-x-1/2 z-[100] bg-slate-900 text-white px-4 py-2 rounded-lg shadow-xl text-sm font-medium transition-opacity duration-300 "+(z?"opacity-100 translate-y-0":"opacity-0 -translate-y-4 pointer-events-none"),children:e("footer.toast")}),M.jsx("div",{id:"contact",className:"relative z-10 mb-16 scroll-mt-24 md:scroll-mt-32",children:M.jsxs("div",{className:"max-w-4xl mx-auto px-6",children:[M.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-12",children:[M.jsxs("h2",{className:"font-display font-medium text-3xl md:text-4xl mb-6 text-brand-text tracking-tight",children:[e("footer.title")," ",M.jsx("span",{className:"text-gradient",children:e("footer.titleHighlight")})]}),M.jsx("p",{className:"text-brand-textMuted text-lg lg:text-xl font-light",dangerouslySetInnerHTML:{__html:e("footer.subtitle")}})]}),M.jsxs("div",{ref:A,className:`bg-white dark:bg-brand-surface rounded-2xl shadow-xl relative max-w-xl mx-auto backdrop-blur-sm transition-all duration-700 ease-out overflow-hidden\n ${t?"scale-[1.02] shadow-[0_20px_60px_-15px_rgba(244,63,94,0.3)] ring-1 ring-rose-500/50":"hover:scale-[1.01] hover:shadow-2xl"}\n ${c?"!bg-emerald-500":""}\n `,children:[M.jsxs("svg",{className:"absolute inset-0 w-full h-full pointer-events-none z-20 rounded-2xl transition-opacity duration-500 "+(c?"opacity-0":"opacity-100"),style:{overflow:"visible"},children:[M.jsx("defs",{children:M.jsxs("linearGradient",{id:"landingGradient",x1:"0%",y1:"0%",x2:"100%",y2:"0%",children:[M.jsx("stop",{offset:"0%",style:{stopColor:"#f43f5e",stopOpacity:1}}),M.jsx("stop",{offset:"50%",style:{stopColor:"#8b5cf6",stopOpacity:1}}),M.jsx("stop",{offset:"100%",style:{stopColor:"#f59e0b",stopOpacity:1}})]})}),M.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",rx:"16",ry:"16",fill:"none",strokeWidth:"4",stroke:"url
2(#landingGradient)"}),j.length>0&&M.jsxs(M.Fragment,{children:[M.jsx("path",{d:j.right,fill:"none",className:"stroke-brand-primary",strokeWidth:"4",strokeLinecap:"round",style:{strokeDasharray:j.length,strokeDashoffset:P,transition:"stroke-dashoffset 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94)",filter:"drop-shadow(0 0 4px rgba(16, 185, 129, 0.6))"}}),M.jsx("path",{d:j.left,fill:"none",className:"stroke-brand-primary",strokeWidth:"4",strokeLinecap:"round",style:{strokeDasharray:j.length,strokeDashoffset:P,transition:"stroke-dashoffset 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94)",filter:"drop-shadow(0 0 4px rgba(16, 185, 129, 0.6))"}})]})]}),M.jsx("div",{className:"absolute inset-0 pointer-events-none z-0 overflow-hidden",children:k.map(e=>M.jsx("div",{className:"absolute bottom-[-10px] rounded-full transition-colors duration-500 "+(c?"bg-white":"bg-emerald-500"),style:{left:`${e.left}%`,width:`${e.size}px`,height:`${e.size}px`,animation:`rise ${e.duration}s linear forwards`}},e.id))}),M.jsx("div",{className:"absolute bottom-8 right-8 w-16 h-16 z-50 pointer-events-none origin-bottom opacity-0 "+(c?"animate-[sproutLifecycle_4s_ease-in-out_forwards]":""),children:M.jsx("div",{className:"w-full h-full text-[#ecfccb] drop-shadow-md",children:M.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[M.jsx("path",{d:"M7 20h10"}),M.jsx("path",{d:"M10 20c5.5-2.5.8-6.4 3-10"}),M.jsx("path",{d:"M9.5 9.4c1.1.8 1.8 2.2 2.3 3.7-2 .4-3.5.4-4.8-.3-1.2-.6-2.3-1.9-3-4.2 2.8-.5 4.4 0 5.5.8z"}),M.jsx("path",{d:"M14.1 6a7 7 0 0 0-1.1 4c1.9-.1 3.3-.6 4.3-1.4 1-1 1.6-2.3 1.7-4.6-2.7.1-4 1-4.9 2z"})]})})}),M.jsxs("div",{className:"p-8 md:p-10 relative z-30",children:[M.jsxs("div",{className:"absolute inset-0 flex flex-col items-center justify-center p-8 text-center transition-opacity duration-500 "+(c?"opacity-100 visible":"opacity-0 invisible pointer-events-none"),children:[M.jsxs("div",{className:"flex flex-col items-center transition-all duration-500 absolute inset-0 justify-center p-8 "+(m?"opacity-0 invisible translate-y-4":"opacity-100 visible translate-y-0 delay-200"),children:[M.jsx("div",{className:"w-16 h-16 bg-white/20 md:backdrop-blur-md rounded-full flex items-center justify-center mb-6 shadow-inner md:animate-bounce mx-auto",children:M.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"white",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:M.jsx("polyline",{points:"20 6 9 17 4 12"})})}),M.jsx("h3",{className:"font-display font-medium text-3xl md:text-4xl text-white mb-2 tracking-tight",children:e("footer.success.title")}),M.jsx("p",{className:"text-white/90 text-lg font-light mb-8",dangerouslySetInnerHTML:{__html:e("footer.success.subtitle")}}),M.jsx("div",{className:"mt-8 pt-8 border-t border-white/20 w-48 mx-auto"}),M.jsx("p",{className:"font-display font-bold text-sm tracking-widest text-white/80 uppercase mt-4",dangerouslySetInnerHTML:{__html:e("footer.success.thanks")}})]}),M.jsx("div",{className:"flex flex-col items-center transition-all duration-500 absolute inset-0 justify-center p-8 "+(m?"opacity-100 visible translate-y-0 delay-200":"opacity-0 invisible -translate-y-4"),children:M.jsxs("div",{className:"mb-6",children:[M.jsx("p",{className:"text-white text-lg md:text-xl font-medium mb-2",children:e("footer.surveyPrompt.title")}),M.jsxs("p",{className:"text-white/80 text-sm mb-8",children:[e("footer.surveyPrompt.time")," ⢠",e("footer.surveyPrompt.anonymous")]}),M.jsxs("div",{className:"flex gap-4 justify-center",children:[M.jsx("button",{onClick:()=>{b(!0),p(!1)},className:"px-6 py-2.5 bg-white text-emerald-600 rounded-xl text-sm font-bold shadow-lg hover:scale-105 transition-transform",children:e("footer.surveyPrompt.yes")}),M.jsx("button",{onClick:()=>p(!1),className:"px-6 py-2.5 bg-emerald-600 text-white border border-emerald-400/30 rounded-xl text-sm font-bold hover:bg-emerald-700 transition-colors",children:e("footer.surveyPrompt.no")})]})]})})]}),M.jsxs("form",{className:"space-y-5 transition-opacity duration-500 "+(c?"opacity-0 invisible pointer-events-none":"opacity-100 visible"),onSubmit:async e=>{if(e.preventDefault(),Qe(n))u(!0);else{u(!0),setTimeout(()=>p(!0),2e3);for(let e=0;e<40;e++)setTimeout(I,40*e);try{await fetch("/.netlify/functions/submit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:"contact",data:{name:qe.sanitize(i.name),company:qe.sanitize(i.company),email:qe.sanitize(i.email),body:qe.sanitize(i.body)},meta:{...D(),fast:Ke(d.current)},[Ve]:n})})}catch(t){}}},children:[M.jsx("input",{...Ye,value:n,onChange:e=>l(e.target.value)}),M.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[M.jsx("input",{name:"name",type:"text",placeholder:e("footer.form.namePlaceholder"),className:"w-full px-4 py-3.5 rounded-xl border border-brand-grid bg-white/50 dark:bg-slate-800/50 text-slate-900 dark:text-white placeholder:text-slate-500 focus:outline-none focus:ring-0 focus:border-emerald-500 transition-all text-sm md:backdrop-blur-sm",value:i.name,onInput:L,autoComplete:"name"}),M.jsx("input",{name:"company",type:"text",placeholder:e("footer.form.companyPlaceholder"),className:"w-full px-4 py-3.5 rounded-xl border border-brand-grid bg-white/50 dark:bg-slate-800/50 text-slate-900 dark:text-white placeholder:text-slate-500 focus:outline-none focus:ring-0 focus:border-emerald-500 transition-all text-sm md:backdrop-blur-sm",value:i.company,onInput:L,autoComplete:"organization"})]}),M.jsx("input",{name:"email",type:"email",placeholder:e("footer.form.emailPlaceholder"),required:!0,className:"w-full px-4 py-3.5 rounded-xl border border-brand-grid bg-white/50 dark:bg-slate-800/50 text-slate-900 dark:text-white placeholder:text-slate-500 focus:outline-none focus:ring-0 focus:border-emerald-500 transition-all text-sm md:backdrop-blur-sm font-medium",value:i.email,onInput:L,autoComplete:"email"}),M.jsx("textarea",{name:"body",placeholder:e("footer.form.messagePlaceholder"),className:"w-full px-4 py-3.5 rounded-xl border border-brand-grid bg-white/50 dark:bg-slate-800/50 text-slate-900 dark:text-white placeholder:text-slate-500 focus:outline-none focus:ring-0 focus:border-emerald-500 transition-all text-sm h-28 resize-none md:backdrop-blur-sm",value:i.body,onInput:L}),M.jsxs("button",{type:"submit",className:"w-full py-4 bg-slate-900 text-white rounded-xl font-bold text-base shadow-lg hover:shadow-xl hover:-translate-y-0.5 transition-all flex items-center justify-center gap-2 group mt-2",children:[e("footer.form.submitButton"),M.jsx(g,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})]})]})]})]})}),M.jsxs("div",{className:"relative mt-12 pt-12 pb-10 border-t border-slate-200 dark:border-slate-800 bg-slate-50/80 dark:bg-slate-900/50",children:[M.jsx("div",{className:"relative z-10 mb-12",children:M.jsx(Na,{className:"bg-transparent border-none py-0"})}),M.jsxs("div",{className:"relative z-10 max-w-6xl mx-auto px-6 pt-10 border-t border-slate-200 dark:border-slate-800",children:[M.jsxs("div",{className:"flex flex-col md:flex-row justify-between items-center gap-6 w-full",children:[M.jsxs("div",{className:"flex items-center gap-3 group cursor-pointer transition-all duration-300",children:[M.jsx("img",{src:"/static/Logo CLimate For All_FINAL.svg",alt:"Climate For All",className:"h-8 w-auto opacity-70 grayscale group-hover:grayscale-0 group-hover:opacity-100 transition-all duration-300"}),M.jsx("span",{className:"text-base text-slate-500 dark:text-slate-500 group-hover:text-brand-text font-medium tracking-tight font-brand transition-colors duration-300",dangerouslySetInnerHTML:{__html:`${(e("footer.brandName")||"").replace(/All/gi,'<span class="text-rose-500 font-bold group-hover:text-rose-600 transition-colors duration-300">ALL</span>')} <span class="text-slate-500 dark:text-slate-500 group-hover:text-rose-600 transition-colors duration-300">${e("footer.brandHighlight")||""}</span>`}})]}),M.jsxs("a",{href:"mailto:[email protected]",className:"flex items-center gap-2 text-xs text-slate-500 hover:text-rose-500 transition-colors whitespace-nowrap font-medium md:ml-auto md:mr-8 lg:mr-0 lg:ml-0",children:[M.jsx(x,{className:"w-3.5 h-3.5"})," [email protected]"]}),M.jsxs("div",{className:"flex items-center gap-2 text-xs text-slate-500
2whitespace-nowrap font-medium md:mr-auto md:ml-8 lg:ml-0 lg:mr-0",children:[M.jsx(y,{className:"w-3.5 h-3.5"})," ",e("footer.location")]}),M.jsxs("a",{href:"https://www.linkedin.com/company/climateforall",target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 text-xs text-slate-500 hover:text-rose-500 transition-colors whitespace-nowrap font-medium md:ml-auto md:mr-8 lg:mr-0 lg:ml-0",children:[M.jsx("svg",{className:"w-3.5 h-3.5",fill:"currentColor",viewBox:"0 0 24 24",children:M.jsx("path",{d:"M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"})})," LinkedIn"]}),M.jsx("button",{onClick:()=>w(!0),className:"hover:text-brand-text transition-colors font-medium bg-slate-100/50 dark:bg-slate-800/50 hover:bg-slate-100 dark:hover:bg-slate-800 backdrop-blur-sm px-4 py-1.5 rounded-full text-xs text-slate-500 dark:text-slate-500 border border-slate-200/50 dark:border-slate-700/50",children:e("footer.faqLink")})]}),M.jsx("p",{className:"mt-14 font-display font-medium text-2xl sm:text-3xl md:text-4xl text-brand-text tracking-tight text-center leading-tight text-balance",children:e("footer.signoff")}),M.jsxs("div",{className:"mt-10 pt-8 border-t border-slate-100 dark:border-slate-800/50",children:[M.jsx("div",{className:"flex flex-wrap justify-center gap-x-5 gap-y-2 text-[11px] text-slate-500 mb-3",children:ka.map(e=>M.jsx(o,{to:`/legal/${e}`,className:"hover:text-brand-primary transition-colors py-1",children:wa[e].title},e))}),M.jsx("div",{className:"text-center text-[10px] text-slate-500",children:e("footer.copyright")})]})]})]})]}),h&&M.jsxs("div",{className:"fixed inset-0 bg-black/60 z-[200] flex items-center justify-center p-4 backdrop-blur-md",style:{animation:"fadeInCustom 0.4s ease-out forwards"},children:[M.jsx("style",{children:"\n @keyframes fadeInCustom { from { opacity: 0; } to { opacity: 1; } }\n @keyframes scaleInCustom { from { opacity: 0; transform: scale(0.95) translateY(10px); } to { opacity: 1; transform: scale(1) translateY(0); } }\n "}),M.jsxs("div",{className:"relative w-full max-w-3xl",children:[M.jsx("button",{onClick:()=>b(!1),className:"absolute -top-3 -right-3 z-20 w-10 h-10 flex items-center justify-center rounded-full bg-white dark:bg-slate-800 shadow-lg hover:scale-110 transition-transform border border-slate-200 dark:border-slate-700 pointer-events-auto",style:{animation:"scaleInCustom 0.4s cubic-bezier(0.16, 1, 0.3, 1) 0.1s forwards",opacity:0}
2,children:M.jsx(v,{className:"w-5 h-5 text-slate-600 dark:text-slate-300"})}),M.jsx("div",{className:"bg-white dark:bg-slate-900 rounded-2xl w-full max-h-[90vh] overflow-y-auto overscroll-contain shadow-2xl",style:{animation:"scaleInCustom 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards"},children:M.jsx(ja,{isModal:!0,skipIntroQuestion:!0,onClose:()=>b(!1)})})]})]}),f&&M.jsx("div",{className:"fixed inset-0 bg-black/60 z-[200] flex items-center justify-center p-4 backdrop-blur-sm",children:M.jsxs("div",{className:"relative",children:[M.jsx("button",{onClick:()=>w(!1),className:"absolute -top-3 -right-3 z-20 w-10 h-10 flex items-center justify-center rounded-full bg-white dark:bg-slate-800 shadow-lg hover:scale-110 transition-transform border border-slate-200 dark:border-slate-700",children:M.jsx(v,{className:"w-5 h-5 text-slate-600 dark:text-slate-300"})}),M.jsx("div",{className:"bg-white dark:bg-slate-900 rounded-2xl max-w-3xl w-full max-h-[90vh] overflow-y-auto overscroll-contain shadow-2xl",children:M.jsx(Sa,{isModal:!0})})]})})]})};class Ta extends a.Component{constructor(e){super(e),this.state={hasError:!1,error:null,errorInfo:null}}static getDerivedStateFromError(e){return{hasError:!0}}componentDidCatch(e,t){this.setState({error:e,errorInfo:t})}render(){return this.state.hasError?M.jsxs("div",{style:{padding:"20px",color:"red",background:"#ffe6e6",border:"1px solid red",margin:"20px"},children:[M.jsx("h1",{children:"Something went wrong."}),M.jsxs("details",{style:{whiteSpace:"pre-wrap"},children:[this.state.error&&this.state.error.toString(),M.jsx("br",{}),this.state.errorInfo&&this.state.errorInfo.componentStack]})]}):this.props.children}}const Ca=e.lazy(()=>Fe(()=>import("./SysView-CkHZauRG.js"),__vite__mapDeps([0,1,2,3]))),Ea=e.lazy(()=>Fe(()=>import("./Pricing-BYYAL3rK.js"),__vite__mapDeps([4,1,3,2]))),Ia=e.lazy(()=>Fe(()=>import("./Team-DqA9-uUs.js"),__vite__mapDeps([5,1,3,2]))),La=()=>M.jsxs("div",{"data-testid":"landing-page-root",className:"relative z-10 overflow-hidden min-h-dvh",children:[M.jsx("div",{className:"blob-bg w-[800px] h-[800px] bg-violet-200/10 dark:bg-violet-900/5 top-[-10%] left-[-10%] pointer-events-none fixed z-0 blur-[100px] border-none"}),M.jsx("div",{className:"blob-bg w-[600px] h-[600px] bg-amber-100/10 dark:bg-amber-900/5 top-[40%] right-[-10%] pointer-events-none fixed z-0 blur-[100px] border-none"}),M.jsx("div",{className:"blob-bg w-[700px] h-[700px] bg-emerald-100/10 dark:bg-emerald-900/5 bottom-[-10%] left-[10%] pointer-events-none fixed z-0 blur-[100px] border-none"}),M.jsx($e,{}),M.jsx(xa,{}),M.jsx(ya,{}),M.jsx(Ta,{children:M.jsxs(e.Suspense,{fallback:M.jsx("div",{className:"min-h-[50vh] flex items-center justify-center opacity-50",children:M.jsx("div",{className:"w-8 h-8 border-4 border-rose-500 border-t-transparent rounded-full animate-spin"})}),children:[M.jsx(Ca,{}),M.jsx(Ea,{}),M.jsx(Ia,{})]})}),M.jsx(Aa,{})]});function Pa(){const{doc:e}=r(),t=wa[e]||wa.privacy;return M.jsx("main",{"data-testid":"legal-page-root",className:"relative z-10 min-h-dvh bg-brand-bg",children:M.jsxs("div",{className:"max-w-3xl mx-auto px-6 py-20 md:py-28",children:[M.jsx(o,{to:"/",className:"text-sm text-brand-textMuted hover:text-brand-primary transition-colors",children:"â Back to the home page"}),M.jsx("h1",{className:"font-display font-bold text-3xl md:text-4xl text-brand-text tracking-tight mt-8 mb-3",children:t.title}),M.jsxs("p",{className:"text-brand-textMuted text-sm mb-2",children:["Last updated: ","31 August 2026"]}),M.jsx("p",{className:"text-brand-textMuted mb-12 leading-relaxed",children:t.intro}),t.sections.map(e=>M.jsxs("section",{className:"mb-10",children:[M.jsx("h2",{className:"font-display font-bold text-lg text-brand-text mb-3",children:e.h}),e.p.map((e,t)=>M.jsx("p",{className:"text-brand-textMuted leading-relaxed mb-3",children:e},t))]},e.h)),M.jsx("nav",{className:"border-t border-brand-grid pt-8 flex flex-wrap gap-x-6 gap-y-2 text-sm",children:ka.filter(e=>e!==t.slug).map(e=>M.jsx(o,{to:`/legal/${e}`,className:"text-brand-textMuted hover:text-brand-primary transition-colors",children:wa[e].title},e))})]})})}const Ma=()=>M.jsxs("div",{"data-testid":"projects-page-root",className:"min-h-screen bg-proj-bg",children:[M.jsx("div",{className:"fixed inset-0 bg-arch-grid pointer-events-none z-0 opacity-60"}),M.jsxs("div",{className:"relative z-10 p-8",children:[M.jsx("h1",{"data-testid":"projects-hub-title",className:"text-4xl font-brand font-bold text-proj-text",children:"Projects Hub"}),M.jsx("p",{className:"text-proj-muted",children:"Migration in progress..."})]})]}),za=()=>{const{t:e}=Ge(),t=()=>{const e=document.getElementById("fake-door-modal");e&&(e.classList.remove("open"),e.classList.add("closed"),setTimeout(()=>{e.classList.add("hidden"),document.body.style.overflow="",document.body.style.paddingRight=""},300))};return M.jsxs("div",{id:"fake-door-modal",className:"fixed inset-0 z-[200] flex items-center justify-center hidden opacity-0 transition-opacity duration-300",children:[M.jsx("div",{className:"absolute inset-0 bg-slate-900/40 backdrop-blur-md",onClick:t}),M.jsxs("div",{className:"relative bg-brand-bg w-[90%] max-w-sm mx-auto p-6 md:p-8 rounded-4xl shadow-glow border border-brand-grid animate-float max-h-[90vh] overflow-y-auto",children:[M.jsx("button",{onClick:t,className:"absolute top-4 right-4 text-brand-textMuted hover:text-brand-primary transition-colors",children:M.jsx("svg",{className:"w-6 h-6",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:M.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M6 18L18 6M6 6l12 12"})})}),M.jsxs("div",{className:"text-center",children:[M.jsx("div",{className:"w-16 h-16 bg-brand-primary/10 rounded-full flex items-center justify-center mx-auto mb-4",children:M.jsx("span",{className:"text-brand-primary text-2xl font-bold",children:"!"})}),M.jsx("h3",{className:"font-display font-bold text-2xl text-brand-text mb-2",children:e("fakeDoorModal.title")}),M.jsx("p",{className:"text-brand-textMuted mb-6 leading-relaxed text-sm md:text-base",dangerouslySetInnerHTML:{__html:e("fakeDoorModal.description")}}),M.jsxs("div",{className:"space-y-4",children:[M.jsxs("div",{className:"bg-brand-surfaceAlt p-4 rounded-2xl text-sm border border-brand-grid",children:[M.jsx("p",{className:"text-brand-text font-medium mb-1",children:e("fakeDoorModal.statusLabel")}),M.jsx("p",{className:"text-brand-textMuted",children:e("fakeDoorModal.responseTime")})]}),M.jsx("button",{onClick:()=>{t(),setTimeout(()=>{const e=document.getElementById("contact");e&&e.scrollIntoView({behavior:"smooth"})},300)},className:"btn-primary w-full py-3 inline-block font-bold text-center",children:e("fakeDoorModal.cta")})]})]})]})]})},Ra=[{id:"news",labelKey:"newsModal.kindNews"},{id:"article",labelKey:"newsModal.kindArticles"}],Oa=a.memo(({news:e,onClick:t})=>{if(!e)return null;const{date:a,title:o,excerpt:r,image_url:i,category:s}=e,n=new Date(a).toLocaleDateString("en-GB",{day:"2-digit",month:"short",year:"numeric"});return M.jsxs(c.div,{layout:!0,initial:{opacity:0,y:20}
2,animate:{opacity:1,y:0},exit:{opacity:0,scale:.95},whileHover:{y:-5},className:"group relative w-full aspect-[3/4] rounded-2xl overflow-hidden cursor-pointer shadow-lg hover:shadow-2xl transition-all duration-500 bg-slate-900",onClick:()=>t(e),children:[M.jsxs("div",{className:"absolute inset-0 z-0",children:[i?M.jsx("img",{src:i,alt:o,className:"w-full h-full object-cover transform transition-transform duration-700 ease-out group-hover:scale-110 opacity-60 group-hover:opacity-80",loading:"lazy"}):M.jsx("div",{"aria-hidden":"true",className:"w-full h-full bg-gradient-to-br from-amber-500/30 via-rose-500/25 to-violet-500/30 transition-transform duration-700 ease-out group-hover:scale-110"}),M.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-slate-950 via-slate-900/40 to-transparent opacity-90"}),M.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-rose-500/20 via-transparent to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-500"})]}),M.jsxs("div",{className:"absolute inset-0 z-10 p-6 md:p-8 flex flex-col justify-end",children:[M.jsx("div",{className:"mb-4",children:M.jsx("span",{className:"inline-block px-3 py-1 rounded-full bg-rose-500/20 backdrop-blur-md border border-rose-500/30 text-rose-400 text-[10px] font-bold uppercase tracking-widest",children:s})}),M.jsxs("div",{className:"flex items-center gap-2 text-slate-400 text-xs mb-3 font-medium",children:[M.jsx(w,{className:"w-3 h-3"}),M.jsx("span",{children:n})]}),M.jsx("h3",{className:"font-display font-bold text-xl md:text-2xl text-white mb-3 leading-tight group-hover:text-rose-400 transition-colors duration-300 line-clamp-3",children:o}),M.jsx("p",{className:"text-slate-300 text-sm leading-relaxed mb-6 line-clamp-2 opacity-0 group-hover:opacity-100 transform translate-y-4 group-hover:translate-y-0 transition-all duration-500 ease-out",children:r}),M.jsxs("div",{className:"flex items-center gap-2 text-rose-500 font-bold text-xs uppercase tracking-tighter group-hover:gap-4 transition-all duration-300",children:[M.jsx("span",{children:"Read Article"}),M.jsx(g,{className:"w-4 h-4"})]})]}),M.jsx("div",{className:"absolute inset-0 border-2 border-transparent group-hover:border-rose-500/20 rounded-2xl transition-colors duration-500 pointer-events-none"})]})}),_a=({isOpen:t,onClose:a})=>{const{t:o}=Ue(),{data:r,loading:i,error:s}=(t=>{const[a,o]=e.useState([]),[r,i]=e.useState(!0),[s,n]=e.useState(null),[l,d]=e.useState(null);return e.useEffect(()=>{let e=!0;const a=new Set;return(async()=>{i(!0);try{const r=await(async e=>{const t=new AbortController;a.add(t);try{const a=await fetch(`${e}?t=${Date.now()}`,{signal:t.signal});if(!a.ok)throw new Error(`HTTP ${a.status}`);const o=await a.json();if(!Array.isArray(o))throw new Error("news payload is not an array");return o}finally{a.delete(t)}})(t||"/temp_news.json");e&&(o((e=>[...e].sort((e,t)=>new Date(t.date)-new Date(e.date)))((e=>e.map(e=>({...e,kind:e.kind||"news"})))(r))),d("local"),n(null))}catch(r){e&&"AbortError"!==r.name&&n(r.message)}finally{e&&i(!1)}})(),()=>{e=!1,a.forEach(e=>e.abort())}},[t]),{data:a,loading:r,error:s,source:l}})("/temp_news.json"),[n,l]=e.useState(null);e.useEffect(()=>(t?(document.body.style.overflow="hidden",document.documentElement.classList.add("news-open")):(document.body.style.overflow="",document.documentElement.classList.remove("news-open"),l(null)),()=>{document.body.style.overflow="",document.documentElement.classList.remove("news-open")}),[t]),e.useEffect(()=>{const e=e=>{"Escape"===e.key&&a()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[a]);const d={hidden:{opacity:0,y:30},visible:{opacity:1,y:0,transition:{duration:.5,ease:"easeOut"}}};return t?M.jsxs("div",{className:"fixed inset-0 z-[200] flex items-center justify-center p-4 md:p-8 overflow-hidden",children:[M.jsx(c.div,{initial:{opacity:0}
2,animate:{opacity:1},exit:{opacity:0},className:"absolute inset-0 bg-slate-950/95",onClick:a}),M.jsxs(c.div,{initial:{scale:.95,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.95,opacity:0},className:"relative w-full max-w-7xl h-[85vh] bg-brand-bg dark:bg-slate-900 rounded-2xl shadow-2xl border border-white/10 overflow-hidden flex flex-col",style:{transform:"translateZ(0)",willChange:"transform, opacity"},children:[M.jsxs("div",{className:"p-6 md:p-8 flex justify-between items-center border-b border-white/5 shrink-0 bg-brand-surface dark:bg-slate-900 z-20",children:[M.jsx("div",{children:M.jsxs("h2",{"data-testid":"news-modal-title",className:"text-2xl md:text-3xl font-display font-bold text-brand-text",children:[o("newsModal.titlePrefix")," ",M.jsx("span",{className:"text-rose-500",children:o("newsModal.titleHighlight")})]})}),M.jsx("button",{"data-testid":"news-modal-close",onClick:a,className:"p-2 rounded-full bg-slate-100 dark:bg-slate-800 text-slate-500 hover:text-rose-500 transition-all",children:M.jsx(v,{className:"w-6 h-6"})})]}),M.jsx("div",{className:"news-scroll flex-1 overflow-y-auto overflow-x-hidden overscroll-contain p-6 md:p-10",children:M.jsx(f,{mode:"wait",children:i?M.jsx(c.div,{initial:{opacity:0}
2,animate:{opacity:1},exit:{opacity:0},className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6 md:gap-8",children:[1,2,3].map(e=>M.jsx("div",{className:"w-full aspect-[3/4] rounded-2xl bg-slate-200 dark:bg-slate-800 animate-pulse"},e))},"loading"):s?M.jsxs(c.div,{initial:{opacity:0},animate:{opacity:1},className:"h-full flex flex-col items-center justify-center text-center gap-4",children:[M.jsx(k,{className:"w-12 h-12 text-rose-500"}),M.jsx("p",{className:"text-slate-400",children:o("newsModal.errorText")})]},"error"):M.jsx(c.div,{layout:!0,variants:{hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.1,delayChildren:.2}}},initial:"hidden",animate:"visible",className:"flex flex-col gap-12",children:Ra.map(e=>{const t=r.filter(t=>(t.kind||"news")===e.id);return 0===t.length?null:M.jsxs("section",{children:[M.jsx("h3",{className:"font-display font-bold text-sm uppercase tracking-widest text-brand-textMuted mb-6",children:o(e.labelKey)}),M.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6 md:gap-8",children:t.map(e=>M.jsx(c.div,{variants:d,children:M.jsx(Oa,{news:e,onClick:l})},e.id))})]},e.id)})},"content")})}),M.jsx(f,{children:n&&M.jsxs(c.div,{initial:{opacity:0,x:"100%"},animate:{opacity:1,x:0},exit:{opacity:0,x:"100%"},transition:{type:"spring",damping:25,stiffness:200},className:"absolute inset-0 z-50 bg-brand-bg dark:bg-slate-900 flex flex-col rounded-2xl overflow-hidden",children:[M.jsx("div",{className:"p-6 md:p-8 flex items-center justify-between border-b border-white/5 bg-brand-surface dark:bg-slate-900 shrink-0",children:M.jsxs("button",{onClick:()=>l(null),className:"flex items-center gap-2 text-rose-500 font-bold text-sm uppercase tracking-tighter hover:gap-4 transition-all",children:[M.jsx(N,{className:"w-4 h-4"}),M.jsx("span",{children:o("newsModal.backToNews")})]})}),M.jsx("div",{className:"flex-1 overflow-y-auto overflow-x-hidden overscroll-contain p-6 md:p-12 lg:p-16 bg-brand-surface dark:bg-slate-950",children:M.jsxs("div",{className:"max-w-3xl mx-auto",children:[M.jsx("div",{className:"mb-10 rounded-2xl overflow-hidden aspect-video shadow-2xl relative",style:{transform:"translateZ(0)"},children:M.jsx("img",{src:n.image_url,alt:n.title,className:"w-full h-full object-cover",fetchpriority:"high",decoding:"async"})}),M.jsx("span",{className:"text-rose-500 font-bold text-[10px] uppercase tracking-[0.2em] mb-4 block",children:n.category}),M.jsx("h1",{className:"text-3xl md:text-5xl font-display font-bold text-brand-text mb-6 leading-tight",children:n.title}),M.jsxs("div",{className:"flex items-center gap-4 text-slate-500 text-xs mb-10 border-b border-white/5 pb-6",children:[M.jsx(w,{className:"w-3 h-3"}),M.jsx("span",{children:new Date(n.date).toLocaleDateString("en-GB")}),M.jsx("span",{className:"w-1 h-1 rounded-full bg-slate-700"}),M.jsx("span",{children:o("newsModal.editorial")})]}),M.jsx("div",{className:"news-prose text-slate-100 leading-relaxed text-lg mb-16",dangerouslySetInnerHTML:(u=n.content_html,{__html:qe.sanitize(u||"")})})]})})]})})]})]}):null;var u},qa=async(e,t,a=2)=>{try{const a=await fetch(e,t);if(!a.ok)throw new Error("Network response was not ok");return a}catch(o){if(a>0)return await new Promise(e=>setTimeout(e,1e3)),qa(e,t,a-1);throw o}};function Da(){e.useEffect(()=>{const e=new IntersectionObserver((e,t)=>{e.forEach(e=>{e.isIntersecting&&(e.target.classList.add("active"),t.unobserve(e.target))})},{rootMargin:"0px 0px -100px 0px",threshold:.1}),t=document.querySelectorAll(".reveal, .reveal-left, .reveal-right");return t.forEach(t=>e.observe(t)),()=>{t.forEach(t=>e.unobserve(t)),e.disconnect()}},[]);const[t,a]=e.useState(!1);return e.useEffect(()=>{let e;try{"undefined"!=typeof Worker&&(e=new Worker(new URL("/assets/security.worker-BudJX1n0.js",import.meta.url)),e.postMessage("start"),e.onmessage=e=>{e.data&&e.data.type},e.onerror=()=>{e&&e.terminate()})}catch(t){}return()=>{e&&e.terminate()}},[]),e.useEffect(()=>{const e=()=>a(!0);return window.addEventListener("open-news-modal",e),()=>window.removeEventListener("open-news-modal",e)},[]),e.useEffect(()=>{(async()=>{try{await qa("/.netlify/functions/submit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:"view",page:"home",meta:{...D()}})})}catch(e){}})()},[]),M.jsxs("div",{className:"min-h-screen bg-brand-bg text-brand-text font-sans antialiased selection:bg-brand-primary selection:text-white overflow-x-hidden relative",children:[M.jsx("div",{className:"fixed inset-0 bg-arch-grid opacity-30 pointer-events-none z-0"}),M.jsxs("div",{className:"hidden md:block absolute inset-0 overflow-hidden pointer-events-none z-0",children:[M.jsx("div",{className:"absolute top-[10%] left-[20%] w-[600px] h-[600px] bg-rose-100/20 rounded-full blur-[80px] pointer-events-none"}),M.jsx("div",{className:"absolute top-[40%] right-[10%] w-[500px] h-[500px] bg-violet-100/20 rounded-full blur-[80px] pointer-events-none"}),M.jsx("div",{className:"absolute bottom-[20%] left-[10%] w-[600px] h-[600px] bg-amber-100/20 rounded-full blur-[80px] pointer-events-none"}),M.jsx("div",{className:"absolute top-[150vh] left-[-10%] w-[800px] h-[800px] bg-sky-100/10 rounded-full blur-[80px] pointer-events-none"}),M.jsx("div",{className:"absolute top-[280vh] right-[-20%] w-[700px] h-[700px] bg-emerald-100/10 rounded-full blur-[80px] pointer-events-none"})]}),M.jsx(i,{children:M.jsxs(s,{children:[M.jsx(n,{path:"/",element:M.jsx(La,{})}),M.jsx(n,{path:"/legal/:doc",element:M.jsx(Pa,{})}),M.jsx(n,{path:"/app/projects",element:M.jsx(Ma,{})})]})}),M.jsx(za,{}),M.jsx(_a,{isOpen:t,onClose:()=>a(!1)})]})}try{const e=document.getElementById("root");
2if(!e)throw new Error("Root element not found in index.html");const t=z.createRoot(e),a=M.jsx(He,{children:M.jsx(Ta,{children:M.jsx(Da,{})})});t.render(a)}catch(Fa){document.body.innerHTML=`<div style="color:red; padding:20px;"><h1>Startup Error</h1><pre>${Fa.toString()}</pre></div>`}export{M as j,Ge as u};
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.