1<!DOCTYPE html><!-- This site was created in Webflow. https://webflow.com --><!-- Last Published: Thu Oct 01 2026 11:51:23 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="re-twin.webflow.io" data-wf-page="69d32cb5aba469d7fb2a1b21" data-wf-site="69d32cb2aba469d7fb2a1ab8" lang="en"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>BESS Business Case & Revenue Analytics Platform | Re-Twin Energy</title><link rel="alternate" hrefLang="x-default" href="https://re-twin.webflow.io/"/><link rel="alternate" hrefLang="en" href="https://re-twin.webflow.io/"/><link rel="alternate" hrefLang="de-DE" href="https://re-twin.webflow.io/de"/><link rel="alternate" hrefLang="es-ES" href="https://re-twin.webflow.io/es"/><meta content="Forecast BESS revenue and returns with Re-Twin's AI digital twin. Evaluate the business case, benchmark performance, and find your most profitable setup." name="description"/><meta content="BESS Business Case & Revenue Analytics Platform | Re-Twin Energy" property="og:title"/><meta content="Forecast BESS revenue and returns with Re-Twin's AI digital twin. Evaluate the business case, benchmark performance, and find your most profitable setup." property="og:description"/><meta content="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6aa1662ce7d6dfa92e77451a_en%20-%20home.png" property="og:image"/><meta content="BESS Business Case & Revenue Analytics Platform | Re-Twin Energy" name="twitter:title"/><meta content="Forecast BESS revenue and returns with Re-Twin's AI digital twin. Evaluate the business case, benchmark performance, and find your most profitable setup." name="twitter:description"/><meta content="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6aa1662ce7d6dfa92e77451a_en%20-%20home.png" name="twitter:image"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="Webflow" name="generator"/><link href="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/css/re-twin.webflow.shared.9d5de96cd.min.css" rel="stylesheet" type="text/css" integrity="sha384-nV3pbNuV+5ZZkB26IMCBaABO4d09/qWcDGCKF7FdrL70XzdFBniUEjCziKUvp6mU" crossorigin="anonymous"/><link href="https://fonts.googleapis.com" rel="preconnect"/><link href="https://fonts.gstatic.com" rel="preconnect" crossorigin="anonymous"/>
1<script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js" type="text/javascript"></script>
1<script type="text/javascript">WebFont.load({ google: { families: ["Montserrat:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic","IBM Plex Sans:300,400,500,600,700"] }});</script>
1<script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script>
1<link href="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a44ad287667e225cc506104_256%20px%20site%20icon.png" rel="icon" type="image/png" sizes="32x32" media="(prefers-color-scheme: light)"/><link href="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a44ad287667e225cc506104_256%20px%20site%20icon.png" rel="icon" type="image/png" sizes="32x32" media="(prefers-color-scheme: dark)"/><link href="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a44ad284900e705f00dca88_256%20px%20site%20icon.png" rel="icon" type="image/png" sizes="48x48"/><link href="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a44ad289562153f7bca621c_256%20px%20site%20icon.png" rel="apple-touch-icon" sizes="180x180"/><link href="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a44ad286f09565a4d047327_256%20px%20site%20icon.png" rel="icon" type="image/png" sizes="192x192"/><link href="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a44ad28a992163d1f6c4a35_256%20px%20site%20icon.png" rel="icon" type="image/png" sizes="512x512"/>
1<script type="application/ld+json"> 2{ 3 "@context": "https://schema.org", 4 "@graph": [ 5 { 6 "@type": "Organization", 7 "@id": "https://re-twin.energy/#organization", 8 "name": "Re-Twin Energy", 9 "legalName": "Re-Twin Energy GmbH", 10 "url": "https://re-twin.energy/", 11 "logo": { 12 "@type": "ImageObject", 13 "url": "https://re-twin.energy/images/logo.png", 14 "width": 512, 15 "height": 512 16 }, 17 "description": "Re-Twin Energy is the AI-powered digital twin platform for evaluating, benchmarking, and optimizing the profitability of battery energy storage systems (BESS).", 18 "foundingDate": "2023", 19 "sameAs": [ 20 "https://www.linkedin.com/company/re-twin-energy", 21 "https://theorg.com/org/re-twin-energy" 22 ], 23 "contactPoint": { 24 "@type": "ContactPoint", 25 "contactType": "sales", 26 "email": "[email protected]", 27 "telephone": "+49-162-5926239", 28 "availableLanguage": ["en", "de", "es"] 29 } 30 }, 31 { 32 "@type": "WebSite", 33 "@id": "https://re-twin.energy/#website", 34 "url": "https://re-twin.energy/", 35 "name": "Re-Twin Energy", 36 "publisher": { "@id": "https://re-twin.energy/#organization" }, 37 "inLanguage": "en" 38 }, 39 { 40 "@type": "SoftwareApplication", 41 "@id": "https://re-twin.energy/#software", 42 "name": "Re-Twin Energy Platform", 43 "url": "https://re-twin.energy/", 44 "applicationCategory": "BusinessApplication", 45 "operatingSystem": "Web-based", 46 "description": "AI digital twin platform that models battery energy storage (BESS) projects to forecast revenue, evaluate the business case, and benchmark performance across day-ahead, FCR, and aFRR markets.", 47 "featureList": [ 48 "BESS revenue forecasting and investment analysis", 49 "Live benchmarking and virtual trading", 50 "Scenario comparison and optimization", 51 "Digital twin modeling of standalone and co-located storage" 52 ], 53 "publisher": { "@id": "https://re-twin.energy/#organization" }, 54 "offers": { 55 "@type": "Offer", 56 "url": "https://re-twin.energy/pricing", 57 "availability": "https://schema.org/InStock" 58 } 59 }, 60 { 61 "@type": "FAQPage", 62 "@id": "https://re-twin.energy/#faq", 63 "inLanguage": "en", 64 "mainEntity": [ 65 { 66 "@type": "Question", 67 "name": "How to describe Re-Twin Energy in one sentence?", 68 "acceptedAnswer": { 69 "@type": "Answer", 70 "text": "Re-Twin is your AI-powered digital energy analyst for evaluating, simulating, and optimizing risk vs. return for battery assets." 71 } 72 }, 73 { 74 "@type": "Question", 75 "name": "What is Re-Twin Energy's platform?", 76 "acceptedAnswer": { 77 "@type": "Answer", 78 "text": "Re-Twin Energy is an AI digital twin platform that models battery energy storage systems (BESS) to forecast revenue, evaluate the investment business case, and benchmark performance â replacing static Excel models with a single consistent methodology." 79 } 80 }, 81 { 82 "@type": "Question", 83 "name": "What makes Re-Twin Energy a one-stop-shop?", 84 "acceptedAnswer": { 85 "@type": "Answer", 86 "text": "Re-Twin covers the entire BESS lifecycle in one platform â from investment analysis and business case modeling to live benchmarking â combining historical backtests, live simulation, and long-term forecasts up to 2050 within one integrated approach." 87 } 88 }, 89 { 90 "@type": "Question", 91 "name": "What is a digital twin?", 92 "acceptedAnswer": { 93 "@type": "Answer", 94 "text": "A digital twin is a 1:1 virtual representation of a physical energy storage asset. Re-Twin's digital twins evolve alongside your project, using real market data to simulate configurations, strategies, and revenue outcomes before you commit capital." 95 } 96 }, 97 { 98 "@type": "Question", 99 "name": "Who can benefit from the Re-Twin Energy platform?",
100 "acceptedAnswer": { 101 "@type": "Answer", 102 "text": "BESS developers, asset owners, investors, and municipal utilities (Stadtwerke) use Re-Twin to make confident, financing-ready investment decisions backed by transparent, project-specific analysis." 103 } 104 }, 105 { 106 "@type": "Question", 107 "name": "What energy storage systems are included?", 108 "acceptedAnswer": { 109 "@type": "Answer", 110 "text": "Re-Twin models standalone BESS as well as co-located configurations including PV + BESS, Wind + BESS, and Consumer + BESS." 111 } 112 }, 113 { 114 "@type": "Question", 115 "name": "What does the Investment Analysis module do?", 116 "acceptedAnswer": { 117 "@type": "Answer", 118 "text": "The Investment Analysis module simulates your project in real power markets to deliver revenue forecasts, compare BESS sizes, markets, and strategies, and identify the most profitable setup for a bankable business case." 119 } 120 }, 121 { 122 "@type": "Question", 123 "name": "What is Live Benchmarking?", 124 "acceptedAnswer": { 125 "@type": "Answer", 126 "text": "Live Benchmarking benchmarks your asset's performance against the market and peers to spot missed revenue and continuously improve trading strategies." 127 } 128 }, 129 { 130 "@type": "Question", 131 "name": "What type of data does Re-Twin Energy deliver?", 132 "acceptedAnswer": { 133 "@type": "Answer", 134 "text": "Re-Twin delivers transparent, project-specific analytics including revenue forecasts, KPIs, per-market breakdowns, dispatch profiles, and scenario comparisons â with full methodology transparency." 135 } 136 }, 137 { 138 "@type": "Question", 139 "name": "In which format is the data downloadable?", 140 "acceptedAnswer": { 141 "@type": "Answer", 142 "text": "Results are provided in easily accessible, downloadable formats so you can integrate them into your own financial models and reports." 143 } 144 }, 145 { 146 "@type": "Question", 147 "name": "For which countries is the platform available?", 148 "acceptedAnswer": { 149 "@type": "Answer", 150 "text": "Re-Twin supports multiple European power markets. Contact the team to confirm coverage for your specific country and market." 151 } 152 }, 153 { 154 "@type": "Question", 155 "name": "How do I get started?", 156 "acceptedAnswer": { 157 "@type": "Answer", 158 "text": "Sign up on the Re-Twin platform or book a demo, and the team will walk you through a live analysis of a real asset in under 30 minutes." 159 } 160 }, 161 { 162 "@type": "Question", 163 "name": "Is training available?", 164 "acceptedAnswer": { 165 "@type": "Answer", 166 "text": "Yes. Re-Twin provides onboarding and training support, along with documentation at docs.re-twin.energy, to help teams get value from the platform quickly." 167 } 168 }, 169 { 170 "@type": "Question", 171 "name": "How secure is the platform?", 172 "acceptedAnswer": { 173 "@type": "Answer", 174 "text": "Re-Twin is a secure web-based platform that protects your project data. Contact the team for details on security architecture and compliance." 175 } 176 }, 177 { 178 "@type": "Question", 179 "name": "Why choose Re-Twin Energy?", 180 "acceptedAnswer": { 181 "@type": "Answer", 182 "text": "Re-Twin combines an independent benchmark, full methodology transparency, and one consistent approach across backtests, live simulation, and long-term forecasts â delivering results up to 5x faster and up to 50% cheaper than traditional analysis." 183 } 184 } 185 ] 186 } 187 ] 188} 189</script>
189<script>(function(w,i,g){w[g]=w[g]||[];if(typeof w[g].push=='function')w[g].push.apply(w[g],Array.isArray(i)?i:[i]);})(window,['G-ZV916XS2C6'],'google_tags_first_party');</script>
189<script async="" src="/avljl2rk9q5pNjlkMzJjYjJhYmE0NjlkN2ZiMmExYWI4/GXye63f77UGzwjQYm1erVulGl7M"></script>
189<script type="text/javascript">window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('set', 'developer_id.dZGVlNj', true);gtag('set', 'developer_id.dYWYxNW', true);gtag('js', new Date());gtag('config', 'G-ZV916XS2C6');</script>
189<style> 190 :root { 191 --font-from: 20; 192 --font-to: 24; 193 --vw-from: calc(1920 / 100); 194 --vw-to: calc(2400 / 100); 195 --coefficient: calc((var(--font-to) - var(--font-from)) / (var(--vw-to) - var(--vw-from))); 196 --base: calc((var(--font-from) - var(--vw-from) * var(--coefficient)) / 16); 197 } 198 199 html { 200 font-size: calc(var(--base) * 1rem + var(--coefficient) * 1vw); 201 } 202 203 @media screen and (max-width: 1920px) { 204 :root { 205 --font-from: 16; 206 --font-to: 20; 207 --vw-from: calc(1440 / 100); 208 --vw-to: calc(1920 / 100); 209 } 210 } 211 212 @media screen and (max-width: 1440px) { 213 :root { 214 --font-from: 14; 215 --font-to: 18; 216 --vw-from: calc(479 / 100); 217 --vw-to: calc(1440 / 100); 218 } 219 } 220 221 @media screen and (max-width: 479px) { 222 :root { 223 --font-from: 12; 224 --font-to: 16; 225 --vw-from: calc(1 / 100); 226 --vw-to: calc(479 / 100); 227 } 228 } 229</style> 230 231 232<style> 233 .grecaptcha-badge { visibility: hidden; } 234</style> 235
236<script type="text/javascript"> 237 (function(c,l,a,r,i,t,y){ 238 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 239 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 240 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 241 })(window, document, "clarity", "script", "ofigq8mr9h"); 242</script>
242<style> 243 .vcx-card { 244 -webkit-mask-image: -webkit-radial-gradient(white, black); 245 mask-image: radial-gradient(white, black); 246 isolation: isolate; 247 } 248</style> 249 250 251<style> 252/* ============================================================ 253 VX VENN â v19. 254 v5 confined the panels inside the stage. v6âv11 do the same for 255 the LABELS. v12 added mobile tap-to-reveal by relocating 256 .vx-panel-top/left/right below the stage. v13 fixed invisible 257 panel text. v14 grid-stacked the three panels in .vx-panel-wrap 258 (grid-area:1/1). v15 fixed a cascade-order bug. v16 fixed the 259 implicit grid column collapsing. v17 fixed a leaked max-width 260 from the desktop rule. v18 pulled the panel up into the venn's 261 dead space with a negative margin. 262 v19: center-aligned the mobile panel text per feedback. 263 ============================================================ */ 264.vx-stage{ 265 position:relative; 266} 267 268/* ---- circles: RESTING (row) ---- */ 269.vx-circle-top, 270.vx-circle-left, 271.vx-circle-right{ 272 position:absolute; 273 transform:translate(-50%,-50%); 274 transition:left 1s cubic-bezier(.65,0,.35,1), 275 top 1s cubic-bezier(.65,0,.35,1), 276 border-color .4s ease; 277} 278.vx-circle-top {left:50%; top:50%;} 279.vx-circle-left {left:calc(50% - 16.125rem); top:50%;} 280.vx-circle-right{left:calc(50% + 16.125rem); top:50%;} 281 282/* ---- circles: ACTIVE (tight Venn) ---- */ 283.vx-stage.vx-on .vx-circle-top {left:50%; top:35%;} 284.vx-stage.vx-on .vx-circle-left {left:calc(50% - 6rem); top:60%;} 285.vx-stage.vx-on .vx-circle-right{left:calc(50% + 6rem); top:60%;} 286 287/* purple fill inside each circle at rest, fades on activate */ 288.vx-fill{position:absolute;inset:0;border-radius:50%;pointer-events:none; 289 background:radial-gradient(ellipse at center,rgba(109,40,217,.7) 0%,rgba(76,29,149,.4) 45%,transparent 72%); 290 opacity:1;transition:opacity .8s ease;} 291.vx-stage.vx-on .vx-fill{opacity:0;} 292 293/* ---- labels ---- */ 294.vx-label-top, 295.vx-label-left, 296.vx-label-right{ 297 position:absolute; 298 transform:translate(-50%,-50%); 299 transition:left 1s cubic-bezier(.65,0,.35,1), 300 top 1s cubic-bezier(.65,0,.35,1), 301 color .3s ease; 302 max-width:min(14rem, 40vw); 303 overflow-wrap:break-word; 304} 305.vx-label-top {left:50%; top:50%;} 306.vx-label-left {left:calc(50% - 16.125rem); top:50%;} 307.vx-label-right{left:calc(50% + 16.125rem); top:50%;} 308.vx-stage.vx-on .vx-label-top {left:50%; top:23%;} 309.vx-stage.vx-on .vx-label-left {left:calc(50% - 10.625rem); top:67%;} 310.vx-stage.vx-on .vx-label-right{left:calc(50% + 10.625rem); top:67%;} 311 312/* center label in the lens */ 313.vx-label-center{ 314 position:absolute;left:50%;top:52%; 315 transform:translate(-50%,-50%); 316 opacity:0;transition:opacity .3s ease,color .3s ease; 317 max-width:min(12rem, 50vw); 318 text-align:center; 319 overflow-wrap:break-word; 320} 321.vx-stage.vx-on .vx-label-center{opacity:1;color:#fff;transition:opacity .4s ease .7s;} 322 323/* ---- glow ---- */ 324.vx-glow{ 325 position:absolute;left:50%;top:52%; 326 width:9.375rem;height:9.375rem; 327 transform:translate(-50%,-50%); 328 opacity:0;filter:blur(10px);pointer-events:none; 329 background:radial-gradient(circle,rgba(139,92,246,.95) 0%,rgba(109,40,217,.6) 45%,transparent 72%); 330 transition:opacity .5s ease,left .6s cubic-bezier(.65,0,.35,1),top .6s cubic-bezier(.65,0,.35,1),width .6s ease,height .6s ease; 331} 332.vx-stage.vx-on .vx-glow{opacity:1;transition:opacity .5s ease .6s,left .6s cubic-bezier(.65,0,.35,1),top .6s cubic-bezier(.65,0,.35,1),width .6s ease,height .6s ease;} 333.vx-stage.vx-on[data-active="center"] .vx-glow{left:50%; top:52%;width:9.375rem;height:9.375rem;} 334.vx-stage.vx-on[data-active="top"] .vx-glow{left:50%; top:35%;width:21.25rem;height:21.25rem;} 335.vx-stage.vx-on[data-active="left"] .vx-glow{left:calc(50% - 6rem); top:60%;width:21.25rem;height:21.25rem;} 336.vx-stage.vx-on[data-active="right"] .vx-glow{left:calc(50% + 6rem); top:60%;width:21.25rem;height:21.25rem;} 337 338/* active heading white, active circle border white */ 339.vx-stage.vx-on[data-active="top"] .vx-label-top {color:#fff;}
340.vx-stage.vx-on[data-active="left"] .vx-label-left {color:#fff;} 341.vx-stage.vx-on[data-active="right"] .vx-label-right {color:#fff;} 342.vx-stage.vx-on[data-active="top"] .vx-circle-top {border-color:#fff;} 343.vx-stage.vx-on[data-active="left"] .vx-circle-left {border-color:#fff;} 344.vx-stage.vx-on[data-active="right"] .vx-circle-right{border-color:#fff;} 345 346/* ============================================================ 347 PANELS â confined inside the stage, anchored like circles. 348 (Desktop/wide only â â¥1101px. Below that, JS relocates these 349 same elements into .vx-panel-wrap after the stage; see the 350 â¤1100px block.) 351 ============================================================ */ 352.vx-panel-top, 353.vx-panel-left, 354.vx-panel-right{ 355 position:absolute !important; 356 right:auto !important; 357 bottom:auto !important; 358 height:auto !important; 359 margin:0 !important; 360 opacity:0; 361 pointer-events:none; 362 transition:opacity .35s ease; 363 width:auto !important; 364 min-width:0 !important; 365 overflow-wrap:break-word; 366 font-size:clamp(15px,1.05vw,19px); 367 line-height:1.45; 368} 369.vx-panel-top *, 370.vx-panel-left *, 371.vx-panel-right *{ 372 width:100% !important; 373 max-width:none !important; 374 display:block !important; 375} 376.vx-panel-top{ 377 left:calc(50% + 13.4375rem) !important; 378 top:20% !important; 379 transform:translateY(-50%); 380 text-align:left; 381 max-width:min(24rem, calc(50% - 14.9375rem)) !important; 382} 383.vx-panel-left{ 384 left:calc(50% - 18.75rem) !important; 385 top:calc(60% + 10.625rem) !important; 386 transform:translate(-100%,-100%); 387 text-align:right; 388 max-width:min(26rem, calc(50% - 20.25rem)) !important; 389} 390.vx-panel-right{ 391 left:calc(50% + 18.75rem) !important; 392 top:60% !important; 393 transform:translateY(-50%); 394 text-align:left; 395 max-width:min(24rem, calc(50% - 20.25rem)) !important; 396} 397.vx-stage.vx-on[data-active="top"] .vx-panel-top {opacity:1;} 398.vx-stage.vx-on[data-active="left"] .vx-panel-left {opacity:1;} 399.vx-stage.vx-on[data-active="right"] .vx-panel-right{opacity:1;} 400 401/* ---- smaller desktop (â¤1440) ---- */ 402@media (max-width:1440px){ 403 .vx-circle-left, .vx-label-left {left:calc(50% - 14.375rem);} 404 .vx-circle-right,.vx-label-right{left:calc(50% + 14.375rem);} 405 .vx-panel-top {left:calc(50% + 12.8125rem) !important;max-width:min(22rem, calc(50% - 14.3125rem)) !important;} 406 .vx-panel-left {left:calc(50% - 18.125rem) !important;top:calc(60% + 10.625rem) !important;max-width:min(24rem, calc(50% - 19.625rem)) !important;} 407 .vx-panel-right{left:calc(50% + 18.125rem) !important;max-width:min(22rem, calc(50% - 19.625rem)) !important;} 408} 409 410/* .vx-panel-wrap is created by JS. Inert above 1100px (empty and 411 hidden); the â¤1100px block below flips it to display:grid. This 412 MUST come before that media block â equal-specificity rules 413 resolve by source order, media query or not. */
414.vx-panel-wrap{display:none;} 415 416/* ---- below 1100: relocated-panel layout. 417 .vx-panel-wrap is created by JS right after .vx-stage and holds 418 all three panels stacked in the SAME grid cell (grid-area:1/1), 419 so the box's height is always reserved at the tallest panel's 420 height â tapping a circle only crossfades opacity, no display 421 toggle, no layout shift. The plain "hide by default" rule below 422 is only a no-JS fallback (in case relocation never runs). ---- */ 423@media (max-width:1100px){ 424 .vx-panel-top,.vx-panel-left,.vx-panel-right{display:none !important;} 425 426 .vx-panel-wrap{ 427 display:grid; 428 grid-template-columns:minmax(0,1fr); 429 width:100%; 430 max-width:30rem; 431 margin:-3rem auto 0; 432 position:relative; 433 z-index:2; 434 } 435 .vx-panel-wrap > .vx-panel-top, 436 .vx-panel-wrap > .vx-panel-left, 437 .vx-panel-wrap > .vx-panel-right{ 438 grid-area:1 / 1; 439 display:block !important; 440 position:static !important; 441 left:auto !important; 442 top:auto !important; 443 right:auto !important; 444 bottom:auto !important; 445 transform:none !important; 446 width:100% !important; 447 min-width:0 !important; 448 max-width:100% !important; 449 padding:.875rem 1rem !important; 450 box-sizing:border-box; 451 background:rgba(255,255,255,.05); 452 border-radius:.875rem; 453 text-align:center !important; /* v19: center-aligned per feedback */ 454 font-size:15px !important; 455 line-height:1.5 !important; 456 color:#e8e6f0 !important; 457 opacity:0; 458 pointer-events:none; 459 transition:opacity .3s ease; 460 } 461 .vx-stage.vx-on[data-active="top"] ~ .vx-panel-wrap > .vx-panel-top, 462 .vx-stage.vx-on[data-active="left"] ~ .vx-panel-wrap > .vx-panel-left, 463 .vx-stage.vx-on[data-active="right"] ~ .vx-panel-wrap > .vx-panel-right{ 464 opacity:1 !important; 465 pointer-events:auto !important; 466 } 467} 468 469/* ---- mobile (â¤767) ---- */ 470@media (max-width:767px){ 471 .vx-circle-left, .vx-label-left {left:calc(50% - 155px);} 472 .vx-circle-right,.vx-label-right{left:calc(50% + 155px);} 473 .vx-stage.vx-on .vx-circle-top {top:38%;} 474 .vx-stage.vx-on .vx-circle-left {left:calc(50% - 60px);top:62%;} 475 .vx-stage.vx-on .vx-circle-right{left:calc(50% + 60px);top:62%;} 476 .vx-stage.vx-on .vx-label-top {top:27%;} 477 478 /* v10: top matches the circles' own top:62% â vertically centered 479 CHANGED v11: anchor 72px â 96px (clears the lens), 480 cap 7.5rem â 5.5rem (forces two-line wrap) */ 481 .vx-stage.vx-on .vx-label-left{ 482 left:calc(50% - 96px); right:auto; 483 transform:translate(-50%,-50%); 484 text-align:center; 485 max-width:min(24vw, 5.5rem); 486 top:62%; 487 } 488 .vx-stage.vx-on .vx-label-right{ 489 left:calc(50% + 96px); right:auto; 490 transform:translate(-50%,-50%); 491 text-align:center; 492 max-width:min(24vw, 5.5rem); 493 top:62%; 494 } 495 .vx-stage.vx-on .vx-label-top{ 496 left:50%; 497 transform:translate(-50%,-50%); 498 text-align:center; 499 max-width:52vw; 500 } 501 502 .vx-label-center{top:54%;} 503 .vx-glow{top:54%;width:95px;height:95px;} 504 .vx-stage.vx-on[data-active="center"] .vx-glow{top:54%;width:95px;height:95px;} 505 .vx-stage.vx-on[data-active="top"] .vx-glow{top:38%;width:210px;height:210px;} 506 .vx-stage.vx-on[data-active="left"] .vx-glow{left:calc(50% - 60px);top:62%;width:210px;height:210px;} 507 .vx-stage.vx-on[data-active="right"] .vx-glow{left:calc(50% + 60px);top:62%;width:210px;height:210px;} 508} 509 510/* ---- small phones (â¤400) â geometry in vw so it reaches 320 ---- */ 511@media (max-width:400px){ 512 .vx-label-top,.vx-label-left,.vx-label-right,.vx-label-center{ 513 font-size:clamp(11px,3.2vw,14px); 514 line-height:1.25; 515 overflow-wrap:break-word; 516 } 517 /* CHANGED v11: anchor 20vw â 26vw, cap 26vw â 22vw */ 518 .vx-stage.vx-on .vx-label-left{ 519 left:calc(50% - 26vw); right:auto; 520 transform:translate(-50%,-50%); 521 text-align:center; max-width:22vw; top:60%; 522 } 523 .vx-stage.vx-on .vx-label-right{ 524 left:calc(50% + 26vw); right:auto; 525 transform:translate(-50%,-50%); 526 text-align:center; max-width:22vw; top:60%; 527 } 528 .vx-stage.vx-on .vx-label-top{ 529 left:50%; transform:translate(-50%,-50%); 530 text-align:center; max-width:52vw; top:26%; 531 } 532 .vx-label-center{top:52%;max-width:46vw;} 533 534 .vx-circle-left, .vx-label-left {left:calc(50% - 30vw);} 535 .vx-circle-right,.vx-label-right {left:calc(50% + 30vw);} 536 .vx-stage.vx-on .vx-circle-top {left:50%; top:36%;} 537 .vx-stage.vx-on .vx-circle-left {left:calc(50% - 13vw); top:60%;} 538 .vx-stage.vx-on .vx-circle-right{left:calc(50% + 13vw); top:60%;} 539 540 .vx-glow{top:52%;width:24vw;height:24vw;
540filter:blur(7px);} 541 .vx-stage.vx-on[data-active="center"] .vx-glow{left:50%; top:52%;width:24vw;height:24vw;} 542 .vx-stage.vx-on[data-active="top"] .vx-glow{left:50%; top:36%;width:52vw;height:52vw;} 543 .vx-stage.vx-on[data-active="left"] .vx-glow{left:calc(50% - 13vw); top:60%;width:52vw;height:52vw;} 544 .vx-stage.vx-on[data-active="right"] .vx-glow{left:calc(50% + 13vw); top:60%;width:52vw;height:52vw;} 545 546 .vx-panel-wrap{margin-top:-4.5rem;} 547} 548 549/* ---- large screens (â¥1441): trim blank space below the venn ---- */ 550@media (min-width:1441px){ 551 .vx-stage{ 552 max-height:46rem; 553 } 554} 555</style> 556 557 558<style> 559 .hero-graph { 560 transition: opacity 0.35s ease; 561 } 562</style> 563 564 565 566 567 568 569 570 571<style> 572.hiw_tabs-menu{display:flex!important;flex-direction:column!important;position:relative!important} 573.hiw_tabs-content{display:grid!important;position:relative!important} 574.hiw_tab-link{position:relative!important;z-index:1!important;background:transparent!important;display:block!important;text-decoration:none!important;cursor:pointer!important;transition:background-color .35s ease,padding .25s ease,color .25s ease!important} 575.hiw_tab-link::before{display:none!important} 576.hiw_tab-link.w--current{background:var(--hiw-accent-light,#f3eeff)!important} 577.hiw_tab-top{display:flex!important;align-items:center!important;gap:12px!important} 578.hiw_tab-number{display:none!important} 579.hiw_tab-icon{display:none!important;flex-shrink:0!important;width:32px!important;height:32px!important;object-fit:contain!important;border-radius:8px!important;background-color:rgba(108,71,230,0.15)!important;padding:4px!important;box-sizing:border-box!important} 580.hiw_tab-link.w--current .hiw_tab-icon{display:block!important} 581.hiw_tab-title{color:var(--hiw-text-muted,#6b6b6b)!important;transition:color .3s ease,font-weight .3s ease!important} 582.hiw_tab-link.w--current .hiw_tab-title{color:var(--hiw-text,#0e0e0e)!important} 583.hiw_tab-desc{max-height:0!important;overflow:hidden!important;opacity:0!important;margin-top:0!important;padding-left:44px!important;color:var(--hiw-text-muted,#6b6b6b)!important;transition:max-height .4s ease,opacity .3s ease,margin-top .3s ease!important} 584.hiw_tab-link.w--current .hiw_tab-desc{max-height:200px!important;opacity:1!important;margin-top:6px!important} 585.hiw_tab-pane{grid-column:1/-1!important;grid-row:1/-1!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important;transition:opacity .4s ease,visibility .4s ease!important} 586.hiw_tab-pane.w--tab-active{opacity:1!important;visibility:visible!important;pointer-events:auto!important} 587@media (max-width:767px){ 588 .hiw_tabs-grid{grid-template-columns:1fr!important;gap:0!important} 589 .hiw_tabs-menu,.hiw_tabs-content{display:contents!important} 590 .hiw_tabs-menu>*{display:none!important} 591 .hiw_tab-pane{grid-column:auto!important;grid-row:auto!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;max-height:none!important;overflow:visible!important;transition:none!important} 592 .hiw_tab-pane[data-w-tab="Tab 1"]{order:1} 593 .hiw_tab-pane[data-w-tab="Tab 2"]{order:2} 594 .hiw_tab-pane[data-w-tab="Tab 3"]{order:3} 595 .hiw_tab-pane[data-w-tab="Tab 4"]{order:4} 596} 597.hiw_tabs-menu::before{content:""!important;position:absolute!important;left:20px!important;top:0!important;bottom:0!important;width:0!important;border-left:1px dashed #c9bff0!important;z-index:0!important;pointer-events:none!important} 598</style> 599 600</head><body><div class="page-wrapper"><code-island data-loader="{"tag":"FEDERATION","val":{"clientModuleUrl":"https://code-components.website-files.com/6aba2d496c6b36d02d364b6e%2Fmodule%2Fwf-manifest.json","moduleId":"_6aba2d496c6b36d02d364b6e","submoduleId":"dc9c8dfe-1df7-6aa5-179e-ebea21dd006d","exportPath":"default","serverModuleUrl":"_"}}" data-props="{"enabled":false,"showEyebrow":true,"eyebrow":"","message":"Re-Twin Energy is heading to WindEnergy Hamburg! Meet us at Hall A3, Stand A3.JIU.145 - 22-25.09","linkLabel":"Get in touch","link":{"href":"https://defiant-fang-0fa.notion.site/8560a7194e5a8339a8f78109f0e60507","target":"_blank"},"
600dismissible":true,"sticky":false,"id":""}" data-slots="[]" data-hydrate="true" data-webflow-context="{"mode":"publish","interactive":true,"locale":"en"}" data-interactive="true" style="display:contents"><template shadowrootmode="open"><link rel="stylesheet" type="text/css" href="https://code-components.website-files.com/6aba2d496c6b36d02d364b6e%2Fmodule%2F46e68302c96cc8d0.css"/><div data-root="true" style="display:contents"><!--$--><!--/$--></div></template></code-island><div class="global-styles w-embed w-script"><style> 601 602/* Make text look crisper and more legible in all browsers */ 603body { 604 -webkit-font-smoothing: antialiased; 605 -moz-osx-font-smoothing: grayscale; 606 font-smoothing: antialiased; 607 text-rendering: optimizeLegibility; 608} 609 610/* Focus state style for keyboard navigation for the focusable elements */ 611*[tabindex]:focus-visible, 612 input[type="file"]:focus-visible { 613 outline: 0.125rem solid #4d65ff; 614 outline-offset: 0.125rem; 615} 616 617/* Set color style to inherit */ 618.inherit-color * { 619 color: inherit; 620} 621
622/* Get rid of top margin on first element in any rich text element */ 623.w-richtext > :not(div):first-child, .w-richtext > div:first-child > :first-child { 624 margin-top: 0 !important; 625} 626 627/* Get rid of bottom margin on last element in any rich text element */ 628.w-richtext>:last-child, .w-richtext ol li:last-child, .w-richtext ul li:last-child { 629 margin-bottom: 0 !important; 630} 631 632 633/* Make sure containers never lose their center alignment */ 634.container-medium,.container-small, .container-large { 635 margin-right: auto !important; 636 margin-left: auto !important; 637} 638 639/* 640Make the following elements inherit typography styles from the parent and not have hardcoded values. 641Important: You will not be able to style for example "All Links" in Designer with this CSS applied. 642Uncomment this CSS to use it in the project. Leave this message for future hand-off. 643*/ 644/* 645a, 646.w-input, 647.w-select, 648.w-tab-link, 649.w-nav-link, 650.w-dropdown-btn, 651.w-dropdown-toggle, 652.w-dropdown-link { 653 color: inherit; 654 text-decoration: inherit; 655 font-size: inherit; 656} 657*/ 658 659/* Apply "..." after 3 lines of text */ 660.text-style-3lines { 661 display: -webkit-box; 662 overflow: hidden; 663 -webkit-line-clamp: 3; 664 -webkit-box-orient: vertical; 665} 666 667/* Apply "..." after 2 lines of text */ 668.text-style-2lines { 669 display: -webkit-box; 670 overflow: hidden; 671 -webkit-line-clamp: 2; 672 -webkit-box-orient: vertical; 673} 674 675/* These classes are never overwritten */ 676.hide { 677 display: none !important; 678} 679 680@media screen and (max-width: 991px) { 681 .hide, .hide-tablet { 682 display: none !important; 683 } 684} 685 @media screen and (max-width: 767px) { 686 .hide-mobile-landscape{ 687 display: none !important; 688 } 689} 690 @media screen and (max-width: 479px) { 691 .hide-mobile{ 692 display: none !important; 693 } 694} 695 696.margin-0 { 697 margin: 0rem !important; 698} 699 700.padding-0 { 701 padding: 0rem !important; 702} 703 704.spacing-clean { 705padding: 0rem !important; 706margin: 0rem !important; 707} 708 709.margin-top { 710 margin-right: 0rem !important; 711 margin-bottom: 0rem !important; 712 margin-left: 0rem !important; 713} 714 715.padding-top { 716 padding-right: 0rem !important; 717 padding-bottom: 0rem !important; 718 padding-left: 0rem !important; 719} 720 721.margin-right { 722 margin-top: 0rem !important; 723 margin-bottom: 0rem !important; 724 margin-left: 0rem !important; 725} 726 727.padding-right { 728 padding-top: 0rem !important; 729 padding-bottom: 0rem !important; 730 padding-left: 0rem !important; 731} 732 733.margin-bottom { 734 margin-top: 0rem !important; 735 margin-right: 0rem !important; 736 margin-left: 0rem !important; 737} 738 739.padding-bottom { 740 padding-top: 0rem !important; 741 padding-right: 0rem !important; 742 padding-left: 0rem !important; 743} 744 745.margin-left { 746 margin-top: 0rem !important; 747 margin-right: 0rem !important; 748 margin-bottom: 0rem !important; 749} 750 751.padding-left { 752 padding-top: 0rem !important; 753 padding-right: 0rem !important; 754 padding-bottom: 0rem !important; 755} 756 757.margin-horizontal { 758 margin-top: 0rem !important; 759 margin-bottom: 0rem !important; 760} 761 762.padding-horizontal { 763 padding-top: 0rem !important; 764 padding-bottom: 0rem !important; 765} 766 767.margin-vertical { 768 margin-right: 0rem !important; 769 margin-left: 0rem !important; 770} 771 772.padding-vertical { 773 padding-right: 0rem !important; 774 padding-left: 0rem !important; 775} 776 777</style> 778 779 780 781 782<style> 783body:hover .cursor {opacity: 100%;} 784 785.cursor { 786 transform: translate(-50%, -50%); 787 pointer-events: none; 788 position: fixed; 789 opacity: 0%; 790 transition: top 0.3s ease, left 0.3s ease, width 0.3s ease, height 0.3s ease; 791} 792} 793 794} 795</style> 796
797<script> 798$(document).ready(function() { 799 let tricksCursor = document.querySelector('.cursor'); 800 window.addEventListener('mousemove', cursor); 801 802 function cursor(e) { 803 tricksCursor.style.top = e.clientY + 'px'; 804 tricksCursor.style.left = e.clientX + 'px'; 805 } 806 807 // Adjust cursor size and position on hover of elements with the "dynamic-hover" class 808 $('.dynamic-hover').mouseenter(function() { 809 window.removeEventListener("mousemove", cursor); 810 811 var width = $(this).outerWidth(); 812 var height = $(this).outerHeight(); 813 var tricksTop = $(this).offset().top - $(document).scrollTop(); 814 var tricksLeft = $(this).offset().left; 815 816 $('.cursor').css({ 817 'top': (tricksTop + height / 2) + 'px', 818 'left': (tricksLeft + width / 2) + 'px', 819 'width': width + 'px', 820 'height': height + 'px' 821 }); 822 }); 823 824 $('.dynamic-hover').mouseleave(function() { 825 window.addEventListener("mousemove", cursor); 826 $('.cursor').css({ 827 'width': '', // Reset to default or original width 828 'height': '' // Reset to default or original height 829 }); 830 }); 831}); 832</script>
832 833 834 835<style> 836 837 838.section_challenge { 839 --max-radius: 80px; 840 border-radius: var(--max-radius); 841 animation: section-radius linear both; 842 animation-timeline: view(); 843} 844 845@media (max-width: 767px) { 846 .section_challenge { 847 --max-radius: 24px; 848 } 849} 850 851@keyframes section-radius { 852 0% { border-radius: var(--max-radius); } 853 50% { border-radius: 0; } 854 100% { border-radius: var(--max-radius); } 855} 856 857 </style> 858 859<style> 860 .faq_accordion.active .faq_heading { 861 color: #7B52E6; 862} 863 .faq_icon { 864 font-size: 24px; /* increase this to make it bigger */ 865 line-height: 1; 866} 867</style> 868</div><div data-collapse="medium" data-animation="default" data-duration="400" navbar="2" data-easing="ease" data-easing2="ease" role="banner" class="navbar_component w-nav"><div class="padding-global"><div data-reveal-group="" class="navbar_container"><a href="/?r=0" id="w-node-_07eac00c-0b0d-6781-55a9-62c1250c7369-250c7367" aria-current="page" class="navbar_logo-link w-nav-brand w--current"><img width="180" height="Auto" alt="" src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a3d042a7df0c5bf69e17460_Group%201686557473.svg" loading="lazy" class="navbar_logo"/></a><a href="https://app.re-twin.energy/" target="_blank" class="button nav mobile w-button">Try Now</a><nav role="navigation" class="navbar_menu w-nav-menu"><div class="navbar_menu-link-wrapper"><div data-delay="200" data-hover="true" data-dropdown-tag="dropdown1" data-w-id="07eac00c-0b0d-6781-55a9-62c1250c736d" class="navbar_menu-dropdown w-dropdown"><div class="navbar_dropdown-toggle dynamic-hover w-dropdown-toggle"><div>Platform</div><div class="dropdown-chevron w-embed"><svg width=" 100%" height=" 100%" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 869<path fill-rule="evenodd" clip-rule="evenodd" d="M2.55806 6.29544C2.46043 6.19781 2.46043 6.03952 2.55806 5.94189L3.44195 5.058C3.53958 4.96037 3.69787 4.96037 3.7955 5.058L8.00001 9.26251L12.2045 5.058C12.3021 4.96037 12.4604 4.96037 12.5581 5.058L13.4419 5.94189C13.5396 6.03952 13.5396 6.19781 13.4419 6.29544L8.17678 11.5606C8.07915 11.6582 7.92086 11.6582 7.82323 11.5606L2.55806 6.29544Z" fill="currentColor"/> 870</svg></div></div><nav class="navbar_dropdown-wrapper w-dropdown-list"><div class="w-layout-vflex navbar_dropdown-list solution one"><div class="navbar_dropdown-list-internal-grid"><a href="/platform-overview" class="button-dropdown dynamic-hover w-inline-block"><div class="button_dropdown-icon-wrap"><div class="button_dropdown-icon w-embed"><svg width=" 100%" height=" 100%" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg"> 871<path d="M12.0197 23.0191C18.0946 23.0191 23.0193 18.0944 23.0193 12.0196C23.0193 5.94468 18.0946 1.02002 12.0197 1.02002C5.94474 1.02002 1.02002 5.94468 1.02002 12.0196C1.02002 18.0944 5.94474 23.0191 12.0197 23.0191Z" stroke="currentColor" stroke-width="2.04"/> 872<path opacity="0.3" d="M12.0175 16.4192C14.4475 16.4192 16.4174 14.4494 16.4174 12.0194C16.4174 9.58949 14.4475 7.61963 12.0175 7.61963C9.58756 7.61963 7.61768 9.58949 7.61768 12.0194C7.61768 14.4494 9.58756 16.4192 12.0175 16.4192Z" fill="currentColor"/> 873<path opacity="0.5" d="M12.0239 1.02002V6.01981" stroke="currentColor" stroke-width="1.68" stroke-linecap="round"/> 874<path opacity="0.5" d="M12.0239 18.02V23.0198" stroke="currentColor" stroke-width="1.68" stroke-linecap="round"/> 875<path opacity="0.5" d="M1.02002 12.019H6.01987" stroke="currentColor" stroke-width="1.68" stroke-linecap="round"/> 876<path opacity="0.5" d="M18.0161 12.019H23.016" stroke="currentColor" stroke-width="1.68" stroke-linecap="round"/> 877</svg></div></div><div class="w-layout-vflex featured-link-text"><div class="margin-bottom margin-xtiny"><div class="navbar_dropdown-text-link">Platform Overview</div></div><p class="featured-link-description">Understand how the Re-Twin platform adds value</p></div></a><a href="/artee" class="button-dropdown dynamic-hover w-inline-block">
877<div class="button_dropdown-icon-wrap wattson"><div class="button_dropdown-icon w-embed"><svg xmlns="http://www.w3.org/2000/svg" width=" 100%" height=" 100%" viewBox="0 0 24 24" fill="currentColor"> 878 <!-- Large star --> 879 <path d="M9.5 3 L11.2 8.3 L16.5 10 L11.2 11.7 L9.5 17 L7.8 11.7 L2.5 10 L7.8 8.3 Z"/> 880 <!-- Medium star (top right) --> 881 <path d="M18 4 L19 6.9 L22 8 L19 9.1 L18 12 L17 9.1 L14 8 L17 6.9 Z"/> 882 <!-- Small star (bottom right) --> 883 <path d="M17 14.5 L17.8 16.7 L20 17.5 L17.8 18.3 L17 20.5 L16.2 18.3 L14 17.5 L16.2 16.7 Z"/> 884</svg></div></div><div class="w-layout-vflex featured-link-text"><div class="margin-bottom margin-xtiny"><div class="navbar_dropdown-text-link">ArTee</div></div><p class="featured-link-description">Meet ArTee, your on-demand digital energy analyst</p></div></a><a href="/investment-analysis" class="button-dropdown dynamic-hover w-inline-block"><div class="button_dropdown-icon-wrap"><div class="button_dropdown-icon w-embed"><svg width=" 100%" height=" 100%" viewBox="0 0 19 22" fill="none" xmlns="http://www.w3.org/2000/svg"> 885<path d="M2.9232 13.1998H1.4616C0.65438 13.1998 0 13.8564 0 14.6664V20.5331C0 21.3431 0.65438 21.9997 1.4616 21.9997H2.9232C3.73042 21.9997 4.3848 21.3431 4.3848 20.5331V14.6664C4.3848 13.8564 3.73042 13.1998 2.9232 13.1998Z" fill="currentColor"/> 886<path d="M10.232 6.60009H8.77037C7.96315 6.60009 7.30877 7.25673 7.30877 8.06675V20.5333C7.30877 21.3434 7.96315 22 8.77037 22H10.232C11.0392 22 11.6936 21.3434 11.6936 20.5333V8.06675C11.6936 7.25673 11.0392 6.60009 10.232 6.60009Z" fill="currentColor"/> 887<path d="M17.5384 0H16.0768C15.2696 0 14.6152 0.656645 14.6152 1.46666V20.5332C14.6152 21.3432 15.2696 21.9999 16.0768 21.9999H17.5384C18.3456 21.9999 19 21.3432 19 20.5332V1.46666C19 0.656645 18.3456 0 17.5384 0Z" fill="currentColor"/> 888</svg></div></div><div class="w-layout-vflex featured-link-text"><div class="margin-bottom margin-xtiny"><div class="navbar_dropdown-text-link">Investment Analysis</div></div><p class="featured-link-description">Get tailored business cases for your BESS in minutes</p></div></a><a href="/live-benchmarking" class="button-dropdown dynamic-hover w-inline-block"><div class="button_dropdown-icon-wrap"><div class="button_dropdown-icon w-embed"><svg width=" 100%" height=" 100%" viewBox="0 0 27 12" fill="none" xmlns="http://www.w3.org/2000/svg"> 889<path d="M1.07996 5.87982H25.08" stroke="currentColor" stroke-width="2.16" stroke-linecap="round"/> 890<path d="M5.27996 1.08002L1.07996 5.88002L5.27996 10.68" stroke="currentColor" stroke-width="2.16" stroke-linecap="round" stroke-linejoin="round"/> 891</svg></div></div><div class="w-layout-vflex featured-link-text"><div class="margin-bottom margin-xtiny"><div class="navbar_dropdown-text-link">Live Benchmarking</div></div><p class="featured-link-description">Live performance benchmarks for your BESS</p></div></a></div><div class="navbar_dropdown-list-verticle hide"><a href="#" class="button-dropdown company w-inline-block"><div class="button_company-nav-top"><div class="button_company_top-img-wrap"><img loading="lazy" src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/69f08ad912336372e83f6513_Vector%20(2).png" alt="" class="button_company_top-img"/></div></div><div class="button_company-nav-bottom"><div class="navbar_dropdown-text-link text-color-pink">2025 GUIDE</div><p class="text-size-regular">Re-Twin raises Series A to expand European market intelligence</p></div></a></div></div></nav></div><div data-delay="200" data-hover="true" data-dropdown-tag="dropdown1" data-w-id="07eac00c-0b0d-6781-55a9-62c1250c73a9" class="navbar_menu-dropdown w-dropdown"><div class="navbar_dropdown-toggle dynamic-hover w-dropdown-toggle"><div>Solutions</div><div class="dropdown-chevron w-embed"><svg width=" 100%" height=" 100%" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 892<path fill-rule="evenodd" clip-rule="evenodd" d="M2.55806 6.29544C2.46043 6.19781 2.46043 6.03952 2.55806 5.94189L3.44195 5.058C3.53958 4.96037 3.69787 4.96037 3.7955 5.058L8.00001 9.26251L12.2045 5.058C12.3021 4.96037 12.4604 4.96037 12.5581 5.058L13.4419 5.94189C13.5396 6.03952 13.5396 6.19781 13.4419 6.29544L8.17678 11.5606C8.07915 11.6582 7.92086 11.6582 7.82323 11.5606L2.55806 6.29544Z" fill="currentColor"/> 893</svg></div></div><nav class="navbar_dropdown-wrapper w-dropdown-list"><div class="w-layout-vflex navbar_dropdown-list solution one">
893<div class="navbar_dropdown-list-internal-grid"><a href="/solutions/project-developers" class="button-dropdown dynamic-hover solution w-inline-block"><div class="button_nav-svg-wrap"><img loading="lazy" src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/69f086b52e59260dd2780624_Group%201026.svg" alt="" class="button_nav-svg-wrap"/></div><div class="w-layout-vflex featured-link-text"><div class="margin-bottom margin-xtiny"><div class="navbar_dropdown-text-link">For Developers</div></div><p class="featured-link-description">Evaluate business cases quickly</p></div></a><a href="/solutions/asset-owners" class="button-dropdown dynamic-hover solution w-inline-block"><div class="button_nav-svg-wrap"><img loading="lazy" src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/69f08896b011c11026164fd1_Group%201025.svg" alt="" class="button_nav-svg-wrap"/></div><div class="w-layout-vflex featured-link-text"><div class="margin-bottom margin-xtiny"><div class="navbar_dropdown-text-link">For Asset Owners</div></div><p class="featured-link-description">Get live benchmark for your BESS</p></div></a><a href="/solutions/investors-financiers" class="button-dropdown dynamic-hover solution w-inline-block"><div class="button_nav-svg-wrap"><img loading="lazy" src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/69f088969ab0af51623d003c_Group%201024.svg" alt="" class="button_nav-svg-wrap"/></div><div class="w-layout-vflex featured-link-text"><div class="margin-bottom margin-xtiny"><div class="navbar_dropdown-text-link">For Investors & Financiers</div></div><p class="featured-link-description">Understand project value & de-risk the investment</p></div></a><a href="/solutions/utilities" class="button-dropdown dynamic-hover solution w-inline-block"><div class="button_nav-svg-wrap"><img loading="lazy" src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/69f088962bcb5a3f34f0da67_Group%201027.svg" alt="" class="button_nav-svg-wrap"/></div><div class="w-layout-vflex featured-link-text"><div class="margin-bottom margin-xtiny"><div class="navbar_dropdown-text-link">For Utilities</div></div><p class="featured-link-description">Unlock your BESS portfolio's full revenue potential</p></div></a><a href="/solutions/industrial-energy-users" class="button-dropdown dynamic-hover solution w-inline-block"><div class="button_nav-svg-wrap"><img loading="lazy" src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/69f088967c9fcfdcaeaeb1e1_Group%201029.svg" alt="" class="button_nav-svg-wrap"/></div><div class="w-layout-vflex featured-link-text"><div class="margin-bottom margin-xtiny"><div class="navbar_dropdown-text-link">For Industrial Energy Users</div></div><p class="featured-link-description">Learn how to safe and earn with a BESS</p></div></a></div></div></nav></div><div data-delay="200" data-hover="true" data-dropdown-tag="dropdown1" data-w-id="07eac00c-0b0d-6781-55a9-62c1250c73eb" class="navbar_menu-dropdown w-dropdown"><div class="navbar_dropdown-toggle dynamic-hover w-dropdown-toggle"><div>Company</div><div class="dropdown-chevron w-embed"><svg width=" 100%" height=" 100%" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 894<path fill-rule="evenodd" clip-rule="evenodd" d="M2.55806 6.29544C2.46043 6.19781 2.46043 6.03952 2.55806 5.94189L3.44195 5.058C3.53958 4.96037 3.69787 4.96037 3.7955 5.058L8.00001 9.26251L12.2045 5.058C12.3021 4.96037 12.4604 4.96037 12.5581 5.058L13.4419 5.94189C13.5396 6.03952 13.5396 6.19781 13.4419 6.29544L8.17678 11.5606C8.07915 11.6582 7.92086 11.6582 7.82323 11.5606L2.55806 6.29544Z" fill="currentColor"/> 895</svg></div></div><nav class="navbar_dropdown-wrapper w-dropdown-list"><div class="w-layout-vflex navbar_dropdown-list solution one"><div class="navbar_dropdown-list-internal-grid"><a href="/about-us" class="button-dropdown dynamic-hover w-inline-block"><div class="button_nav-svg-wrap company"><img loading="lazy" src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a5095cef6fd6214b3b4c9e4_Group%201686557317.svg" alt="" class="button_nav-svg-wrap"/></div><div class="w-layout-vflex featured-link-text"><div class="margin-bottom margin-xtiny"><div class="navbar_dropdown-text-link">About Us</div></div><p class="featured-link-description">Get to know the Re-Twin team</p></div></a><a href="/career" class="button-dropdown dynamic-hover w-inline-block"><div class="button_nav-svg-wrap company"><img loading="lazy" src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a5095db9001bdbf232918d4_Group%201686557316.svg" alt="" class="button_nav-svg-wrap"/></div><div class="w-layout-vflex featured-link-text"><div class="margin-bottom margin-xtiny"><div class="navbar_dropdown-text-link">Careers</div></div><p class="featured-link-description">Help us accelerate the energy transition</p></div></a></div></div></nav></div><div data-delay="200" data-hover="true" data-w-id="6a3095f4-50e6-1a0d-6921-ae3035585b33" class="navbar_menu-dropdown w-dropdown"><div class="navbar_dropdown-toggle dynamic-hover w-dropdown-toggle"><div>Insights</div><div class="dropdown-chevron w-embed">
895<svg width=" 100%" height=" 100%" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 896<path fill-rule="evenodd" clip-rule="evenodd" d="M2.55806 6.29544C2.46043 6.19781 2.46043 6.03952 2.55806 5.94189L3.44195 5.058C3.53958 4.96037 3.69787 4.96037 3.7955 5.058L8.00001 9.26251L12.2045 5.058C12.3021 4.96037 12.4604 4.96037 12.5581 5.058L13.4419 5.94189C13.5396 6.03952 13.5396 6.19781 13.4419 6.29544L8.17678 11.5606C8.07915 11.6582 7.92086 11.6582 7.82323 11.5606L2.55806 6.29544Z" fill="currentColor"/> 897</svg></div></div><nav class="navbar_dropdown-wrapper w-dropdown-list"><div class="w-layout-vflex navbar_dropdown-list solution one"><div class="navbar_dropdown-list-internal-grid"><a href="/blog" class="button-dropdown dynamic-hover w-inline-block"><div class="button_nav-svg-wrap company"><img loading="lazy" src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a5095709454773f96c1b43c_Group%201686557314.svg" alt="" class="button_nav-svg-wrap"/></div><div class="w-layout-vflex featured-link-text"><div class="margin-bottom margin-xtiny"><div class="navbar_dropdown-text-link">Blogs</div></div><p class="featured-link-description">Read our articles on energy trading, storage & more</p></div></a><a href="https://re-twin.webflow.io/blogs#whitepapers-section" class="button-dropdown dynamic-hover w-inline-block"><div class="button_nav-svg-wrap company"><img loading="lazy" src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a509570df25ccd1f726e01c_Group%201686557313.svg" alt="" class="button_nav-svg-wrap"/></div><div class="w-layout-vflex featured-link-text"><div class="margin-bottom margin-xtiny"><div class="navbar_dropdown-text-link">White Papers</div></div><p class="featured-link-description">Dig into in-depth analyses on BESS marketability & analytics</p></div></a><a href="https://re-twin.energy/blogs#webinars-section" class="button-dropdown dynamic-hover w-inline-block"><div class="button_nav-svg-wrap company"><img loading="lazy" src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a5095704f34fe101fc0ab7f_Group%201686557315.svg" alt="" class="button_nav-svg-wrap"/></div><div class="w-layout-vflex featured-link-text"><div class="margin-bottom margin-xtiny"><div class="navbar_dropdown-text-link">Webinars</div></div><p class="featured-link-description">Access recordings of our past webinars</p></div></a><a href="https://re-twin.webflow.io/blogs#news-section" class="button-dropdown dynamic-hover w-inline-block"><div class="button_nav-svg-wrap company"><img loading="lazy" src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a509570f195ee8799db54e1_Group%201686557312.svg" alt="" class="button_nav-svg-wrap"/></div><div class="w-layout-vflex featured-link-text"><div class="margin-bottom margin-xtiny"><div class="navbar_dropdown-text-link">News</div></div><p class="featured-link-description">Stay up to date on major developments at Re-Twin Energy</p></div></a></div></div></nav></div><a href="/pricing" class="navbar_link dynamic-hover w-nav-link">Pricing</a><a href="/re-twin-index" class="navbar_link dynamic-hover w-nav-link">Re-Twin Index</a></div><div class="navbar_button-wrapper"><a href="/contact" class="button is-secondary nav w-button">Contact Us</a><a href="https://app.re-twin.energy/" target="_blank" class="button nav w-button">Try Now</a></div></nav><div class="navbar_menu-button w-nav-button"><div class="menu-icon2"><div class="menu-icon2_line-top"></div><div class="menu-icon2_line-middle"><div class="menu-icon_line-middle-inner"></div></div><div class="menu-icon2_line-bottom"></div></div></div></div></div></div><main class="main-wrapper"><section class="section_hero-home"><div class="padding-global padding-section-small"><div class="container-large"><div data-reveal-group="" class="hero_home-wrapper"><h1 class="hero_heading">Make Your BESS More Profitable.</h1><p class="text-size-medium max-width-medium">One platform to evaluate, benchmark, and maximize the profitability of your battery energy storage systems.</p><a href="https://app.re-twin.energy/" target="_blank" class="button w-button">Explore</a></div></div></div><div class="hero_po-abs-wrap"><img src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a50cc5f6d1984a0b2696436_Group%201616.svg" loading="lazy" alt="" class="po_hero-abs-img abs"/></div></section><section class="section_logo3"><div class="marquee"><div class="marquee_track-logo"><div class="marquee_list w-dyn-list"><div role="list" class="marquee_flex logos w-dyn-items"><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bc3e65c0cac5cfb364e1_Group%201686557260.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bc07b673463b1086b3a9_Group%201686557259.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bbee2f2b3aa80593d0df_image%202192.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bbd3915dbd91cc4e50de_Group%201686557256.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f8788941d951a7eb3d2baf_imgi_28_VKU_Logo.PTYb2-bG%20(1).png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f87880a045610993bcaea1_imgi_27_Friesen%20Elektra.DlgQ_Hvn%20(1).png" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f87880a045610993bcaea1_imgi_27_Friesen%20Elektra.DlgQ_Hvn%20(1)-p-500.png 500w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f87880a045610993bcaea1_imgi_27_Friesen%20Elektra.DlgQ_Hvn%20(1)-p-800.png 800w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f87880a045610993bcaea1_imgi_27_Friesen%20Elektra.DlgQ_Hvn%20(1)-p-1080.png 1080w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f87880a045610993bcaea1_imgi_27_Friesen%20Elektra.DlgQ_Hvn%20(1)-p-1600.png 1600w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f87880a045610993bcaea1_imgi_27_Friesen%20Elektra.DlgQ_Hvn%20(1)-p-2000.png 2000w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f87880a045610993bcaea1_imgi_27_Friesen%20Elektra.DlgQ_Hvn%20(1)-p-2600.png 2600w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f87880a045610993bcaea1_imgi_27_Friesen%20Elektra.DlgQ_Hvn%20(1)-p-3200.png 3200w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f87880a045610993bcaea1_imgi_27_Friesen%20Elektra.DlgQ_Hvn%20(1).png 6250w" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f8787580bc60407495a7bd_imgi_26_Renergo.D2APOtdI%20(1).png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bb93088ffb1e4451ba9b_Group%201686557262.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bb780b17a51efe70ac72_Group%201686557261.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bb87d4e0a6da878e2c41_imgi_23_MAON.BNtyMTBh%20(1)%201.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f878466081cca54814125b_imgi_22_stadtwarke.Y0FFhH5q%20(1).svg" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bb51cd1967096143b24d_Group%201686557258.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bb4068be0cc0c19a5dee_Group%201686557257.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bc20585299f4853ae2e7_image%202276.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bb31b550267ae3077370_imgi_15_badenova.D6mtAtyg%20(1)%201.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bb2165c0cac5cfb33d35_Group%201686557255.svg" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bbb2d191314fedee9009_imgi_13_ecostor.B7KR2mMz%20(1)%201.svg" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bba4eecbadd1d6b959d1_image%202275.svg" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f877f7c948de5fd093fb84_imgi_11_conductr.BsVDC0jP%20(1).png" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f877f7c948de5fd093fb84_imgi_11_conductr.BsVDC0jP%20(1)-p-500.png 500w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f877f7c948de5fd093fb84_imgi_11_conductr.BsVDC0jP%20(1).png 580w" class="logo3_logo"/></div></div></div></div><div class="marquee_list w-dyn-list"><div role="list" class="marquee_flex logos w-dyn-items"><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bc3e65c0cac5cfb364e1_Group%201686557260.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bc07b673463b1086b3a9_Group%201686557259.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bbee2f2b3aa80593d0df_image%202192.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bbd3915dbd91cc4e50de_Group%201686557256.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f8788941d951a7eb3d2baf_imgi_28_VKU_Logo.PTYb2-bG%20(1).png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f87880a045610993bcaea1_imgi_27_Friesen%20Elektra.DlgQ_Hvn%20(1).png" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f87880a045610993bcaea1_imgi_27_Friesen%20Elektra.DlgQ_Hvn%20(1)-p-500.png 500w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f87880a045610993bcaea1_imgi_27_Friesen%20Elektra.DlgQ_Hvn%20(1)-p-800.png 800w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f87880a045610993bcaea1_imgi_27_Friesen%20Elektra.DlgQ_Hvn%20(1)-p-1080.png 1080w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f87880a045610993bcaea1_imgi_27_Friesen%20Elektra.DlgQ_Hvn%20(1)-p-1600.png 1600w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f87880a045610993bcaea1_imgi_27_Friesen%20Elektra.DlgQ_Hvn%20(1)-p-2000.png 2000w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f87880a045610993bcaea1_imgi_27_Friesen%20Elektra.DlgQ_Hvn%20(1)-p-2600.png 2600w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f87880a045610993bcaea1_imgi_27_Friesen%20Elektra.DlgQ_Hvn%20(1)-p-3200.png 3200w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f87880a045610993bcaea1_imgi_27_Friesen%20Elektra.DlgQ_Hvn%20(1).png 6250w" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f8787580bc60407495a7bd_imgi_26_Renergo.D2APOtdI%20(1).png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bb93088ffb1e4451ba9b_Group%201686557262.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bb780b17a51efe70ac72_Group%201686557261.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bb87d4e0a6da878e2c41_imgi_23_MAON.BNtyMTBh%20(1)%201.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f878466081cca54814125b_imgi_22_stadtwarke.Y0FFhH5q%20(1).svg" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bb51cd1967096143b24d_Group%201686557258.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bb4068be0cc0c19a5dee_Group%201686557257.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bc20585299f4853ae2e7_image%202276.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bb31b550267ae3077370_imgi_15_badenova.D6mtAtyg%20(1)%201.png" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website
897-files.com/69f09845c615adfbcda2a761/6a48bb2165c0cac5cfb33d35_Group%201686557255.svg" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bbb2d191314fedee9009_imgi_13_ecostor.B7KR2mMz%20(1)%201.svg" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a48bba4eecbadd1d6b959d1_image%202275.svg" alt="" class="logo3_logo"/></div></div><div role="listitem" class="marquee_item logos w-dyn-item"><div class="logo3_wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f877f7c948de5fd093fb84_imgi_11_conductr.BsVDC0jP%20(1).png" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f877f7c948de5fd093fb84_imgi_11_conductr.BsVDC0jP%20(1)-p-500.png 500w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f877f7c948de5fd093fb84_imgi_11_conductr.BsVDC0jP%20(1).png 580w" class="logo3_logo"/></div></div></div></div></div><div class="w-embed"><style> 898.marquee_track-logo { 899 white-space: nowrap; 900 will-change: transform; 901 animation: marquee 40s linear infinite; 902} 903 904@keyframes marquee { 905 from { transform: translateX(0); } 906 to { transform: translateX(-50%); } 907} 908 909.marquee_track-logo:hover { 910 animation-play-state: paused; 911} 912</style></div></div></section><section class="htw-section"><div class="padding-global padding-section-small"><div data-reveal-group="" class="container-large"><h2 class="htw-heading">How it Works</h2><div data-htw="" class="htw-wrap-wrap"><div class="htw-row"><a data-htw-tab="0" href="#" class="htw-link htw-on">Configure</a><a data-htw-tab="3" href="#" class="htw-link">Simulate</a><a data-htw-tab="1" href="#" class="htw-link">Compare</a></div><div><div data-htw-pane="0" class="htw-pane htw-on"><video playsinline="true" loop="" muted="" autoplay="true" width="100%" class="htw-imgph"><source src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8%2F6a4207f66291ea3120805bc7_configuration_webm.webm" type="video/webm"/></video></div><div data-htw-pane="1" class="htw-pane"><video playsinline="true" loop="" muted="" autoplay="true" width="100%" class="htw-imgph"><source src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8%2F6a42080298036fa040fd04bd_results_webm.webm" type="video/webm"/></video></div><div data-htw-pane="3" class="htw-pane"><video playsinline="true" loop="" muted="" autoplay="true" width="100%" class="htw-imgph"><source src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8%2F6a42075fb64e5e6575ae9b04_insights_webm.webm" type="video/webm"/></video></div></div></div></div></div><div class="padding-global padding-section-medium"><div class="container-large"></div></div></section><section class="testimonials_section"><div class="padding-global padding-section-large"><div class="container-large"><div data-reveal-group="" class="testimonials_wrapper"><h2 class="testimonials_heading">What Our <span class="text-color-purple-light">Customers Say</span></h2><div class="swiper testimonials_swiper"><div class="swiper-wrapper"><div class="w-dyn-list"><div role="list" class="w-dyn-items"><div role="listitem" class="swiper-slide testimonials_card testimonial w-dyn-item"><div><div class="testimonials_progress-track"><div class="testimonials_progress-bar"></div></div><div class="testimonials_card-inner"><div class="testimonials_logo-wrap"><img src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a931523d4e614d32fd9d48d_iaccess-logo.png" alt="Client Logo" class="testimonials_logo"/></div><div class="testimonials_quote w-richtext"><p>Re-Twin's tool is, for our team, the most accessible and efficient tool, and for our customers the most understandable one, for professionally evaluating projects and integrating them efficiently into the workflow.</p></div><div class="testimonials_author"><img src="https://cdn.prod.website-files.com/80" alt="Aisha Patel" class="testimonials_author-photo w-dyn-bind-empty"/><div class="testimonial_bottom-wrap"><p class="testimonials_author-name">Michael Rieber</p><p class="testimonials_author-title">Chief Executive Officer</p></div></div></div></div></div><div role="listitem" class="swiper-slide testimonials_card testimonial w-dyn-item"><div><div class="testimonials_progress-track"><div class="testimonials_progress-bar"></div></div><div class="testimonials_card-inner"><div class="testimonials_logo-wrap"><img src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a33a36611954f3e397e58c9_1%20(2).png" alt="Client Logo" sizes="100vw" srcset="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a33a36611954f3e397e58c9_1%20(2)-p-500.png 500w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a33a36611954f3e397e58c9_1%20(2)-p-800.png 800w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a33a36611954f3e397e58c9_1%20(2)-p-1080.png 1080w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a33a36611954f3e397e58c9_1%20(2).png 1375w" class="testimonials_logo"/></div><div class="testimonials_quote w-richtext"><p>
912Targeted scenario analysis with Re-Twin accelerates our project cycle & answers all financial questions in one tool<strong> </strong>with unmatched configuration depth.</p></div><div class="testimonials_author"><img src="https://cdn.prod.website-files.com/80" alt="Aisha Patel" class="testimonials_author-photo w-dyn-bind-empty"/><div class="testimonial_bottom-wrap"><p class="testimonials_author-name">Oliver Schiele</p><p class="testimonials_author-title">Business Controller - Team PV and Storage</p></div></div></div></div></div><div role="listitem" class="swiper-slide testimonials_card testimonial w-dyn-item"><div><div class="testimonials_progress-track"><div class="testimonials_progress-bar"></div></div><div class="testimonials_card-inner"><div class="testimonials_logo-wrap"><img src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a33a35e6855e5e0e33f5a9d_2%20(2).png" alt="Client Logo" sizes="100vw" srcset="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a33a35e6855e5e0e33f5a9d_2%20(2)-p-500.png 500w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a33a35e6855e5e0e33f5a9d_2%20(2)-p-800.png 800w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a33a35e6855e5e0e33f5a9d_2%20(2)-p-1080.png 1080w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a33a35e6855e5e0e33f5a9d_2%20(2).png 1375w" class="testimonials_logo"/></div><div class="testimonials_quote w-richtext"><p>The key advantage of the platform is its flexibility, allowing quick modelling of various parameters. The outcome: faster internal decisions.</p></div><div class="testimonials_author"><img src="https://cdn.prod.website-files.com/80" alt="Aisha Patel" class="testimonials_author-photo w-dyn-bind-empty"/><div class="testimonial_bottom-wrap"><p class="testimonials_author-name">Hauke Kraft</p><p class="testimonials_author-title">Speaker Executive Board</p></div></div></div></div></div><div role="listitem" class="swiper-slide testimonials_card testimonial w-dyn-item"><div><div class="testimonials_progress-track"><div class="testimonials_progress-bar"></div></div><div class="testimonials_card-inner"><div class="testimonials_logo-wrap"><img src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a4fb3e93900adf0738b822e_TMH%20(1).svg" alt="Client Logo" class="testimonials_logo"/></div><div class="testimonials_quote w-richtext"><p>Re-Twin provides us with what has been missing in the BESS sector until now: an asset-specific, independent baseline, which makes our marketing verifiable and<strong> </strong>takes bankability<strong> </strong>to a new level.</p></div><div class="testimonials_author"><img src="https://cdn.prod.website-files.com/80" alt="Aisha Patel" class="testimonials_author-photo w-dyn-bind-empty"/><div class="testimonial_bottom-wrap"><p class="testimonials_author-name">Marcus Fendt</p><p class="testimonials_author-title">Managing Director</p></div></div></div></div></div><div role="listitem" class="swiper-slide testimonials_card testimonial w-dyn-item"><div><div class="testimonials_progress-track"><div class="testimonials_progress-bar"></div></div><div class="testimonials_card-inner"><div class="testimonials_logo-wrap"><img src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a5ee35004caa3eed08f7551_LOGO_QUADRA_energy_RGB.svg" alt="Client Logo" class="testimonials_logo"/></div><div class="testimonials_quote w-richtext"><p>Re-Twin provides independent insights into the revenue potential of FTM co-location projects. Its analyses and reports provide additional market insights and independent perspectives on revenue opportunities.</p></div><div class="testimonials_author"><img src="https://cdn.prod.website-files.com/80" alt="Aisha Patel" class="testimonials_author-photo w-dyn-bind-empty"/><div class="testimonial_bottom-wrap"><p class="testimonials_author-name">Christian Karalis</p><p class="testimonials_author-title">Head of Sales & Origination</p></div></div></div></div></div><div role="listitem" class="swiper-slide testimonials_card testimonial w-dyn-item"><div><div class="testimonials_progress-track"><div class="testimonials_progress-bar"></div></div><div class="testimonials_card-inner"><div class="testimonials_logo-wrap"><img src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a33a353e4e426545c75df48_3%20(2).png" alt="Client Logo" sizes="100vw" srcset="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a33a353e4e426545c75df48_3%20(2)-p-500.png 500w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a33a353e4e426545c75df48_3%20(2)-p-800.png 800w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a33a353e4e426545c75df48_3%20(2)-p-1080.png 1080w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a33a353e4e426545c75df48_3%20(2).png 1375w" class="testimonials_logo"/></div><div class="testimonials_quote w-richtext"><p>Re-Twin'
912s scenario analysis clarifies investment decisions, reduces early-stage planning risk, and enables direct comparisons.</p></div><div class="testimonials_author"><img src="https://cdn.prod.website-files.com/80" alt="Aisha Patel" class="testimonials_author-photo w-dyn-bind-empty"/><div class="testimonial_bottom-wrap"><p class="testimonials_author-name">Mathias Strasser</p><p class="testimonials_author-title">Development & System Engineering</p></div></div></div></div></div><div role="listitem" class="swiper-slide testimonials_card testimonial w-dyn-item"><div><div class="testimonials_progress-track"><div class="testimonials_progress-bar"></div></div><div class="testimonials_card-inner"><div class="testimonials_logo-wrap"><img src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a33a374da057fe2044aa65e_4%20(2).png" alt="Client Logo" sizes="100vw" srcset="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a33a374da057fe2044aa65e_4%20(2)-p-500.png 500w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a33a374da057fe2044aa65e_4%20(2)-p-800.png 800w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a33a374da057fe2044aa65e_4%20(2)-p-1080.png 1080w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a33a374da057fe2044aa65e_4%20(2).png 1375w" class="testimonials_logo"/></div><div class="testimonials_quote w-richtext"><p>Quick simulations, with an intuitive UI, that focus on the essential 90% of the data<strong>,</strong> enabling initial evaluation & understanding of revenues.</p></div><div class="testimonials_author"><img src="https://cdn.prod.website-files.com/80" alt="Aisha Patel" class="testimonials_author-photo w-dyn-bind-empty"/><div class="testimonial_bottom-wrap"><p class="testimonials_author-name">Frederic Preukschat</p><p class="testimonials_author-title">Technical Lead Solar</p></div></div></div></div></div></div></div></div></div></div></div></div></section><section class="section_challenge why_now"><div class="padding-global"><div class="container-large"><div data-reveal-group="" class="challenge_component"><div class="challenge_top-1"><h2 class="challenge_heading">Why <span class="challenge_heading-accent">now?</span></h2><p class="text-size-medium text-color-alternate">BESS planning and performance monitoring is slow, inadequate, and has no independent benchmark.</p></div><div data-carousel="track" data-reveal-group-nested="" class="challenge_list"><div data-carousel-card="" class="challenge_item why-cards"><div class="challenge_item-image-wrap"><img src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a853e9ba7efda66be01bbaa_Group%205.svg" alt="Unclear Revenue Potential" width="210" class="challenge_item-image"/></div><div class="challenge_item-content"><h3 class="challenge_item-title">Revenue Uncertainty</h3><p class="challenge_item-text">Battery revenues depend on market conditions, grid restrictions, and site specifics. Generic forecasts miss the point. </p></div></div><div data-carousel-card="" class="challenge_item why-cards"><div class="challenge_item-image-wrap"><img src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a853e528415ca7c178c95ec_Group%204.svg" alt="Slow Decision-Making" width="261.5" height="280" class="challenge_item-image"/></div><div class="challenge_item-content"><h3 class="challenge_item-title">Fragile Analytics</h3><p class="challenge_item-text">A regulatory change or grid restriction can break a business case immediately.</p></div></div><div data-carousel-card="" class="challenge_item why-cards"><div class="challenge_item-image-wrap"><img src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a853da0a05d15da596e2da7_Group%201.svg" alt="Hidden Performance Gaps" class="challenge_item-image"/></div><div class="challenge_item-content"><h3 class="challenge_item-title">Slow Decisions</h3><p class="challenge_item-text">Decision require fast insights. Manual calculations delay project process and become outdated quick.</p></div></div></div><div data-carousel-dots="" class="mobile_slider-dots-wrap"><div data-carousel-dot=""></div><div data-carousel-dot=""></div><div data-carousel-dot=""></div></div></div></div></div></section><section class="value-chain_section"><div class="padding-global padding-section-medium stake_holders_section"><div data-reveal-group="" class="container-large"><div class="value-chain_heading-wrap"><h2 class="value-chain_heading">Tailored for all <span class="text-color-purple-light">Stakeholders</span></h2><p class="value-chain_subheading">Whether you are a BESS investor, owner or developer, Re-Twin delivers actionable insights for the right decisions.</p></div><div class="vcx-row"><div data-vcx-card="1" class="vcx-card"><img src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a3d01075e7d11b3f515ce85_AB6AXU~1%201%20(1).png" loading="lazy" sizes="(max-width: 926px) 100v
912w, 926px" srcset="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a3d01075e7d11b3f515ce85_AB6AXU~1%201%20(1)-p-500.png 500w, https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a3d01075e7d11b3f515ce85_AB6AXU~1%201%20(1)-p-800.png 800w, https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a3d01075e7d11b3f515ce85_AB6AXU~1%201%20(1).png 926w" alt="" class="vcx-img"/><div class="vcx-panel"><h3 class="vcx-title">For Developers</h3><p class="vcx-desc">Optimise technical specs, sizing & financials, before committing.</p></div><p class="vcx-icon">+</p></div><div data-vcx-card="1" class="vcx-card"><img src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a3d0131c1ab36694ffe6311_Container%201%20(2).png" loading="lazy" sizes="(max-width: 698px) 100vw, 698px" srcset="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a3d0131c1ab36694ffe6311_Container%201%20(2)-p-500.png 500w, https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a3d0131c1ab36694ffe6311_Container%201%20(2).png 698w" alt="" class="vcx-img"/><div class="vcx-panel"><h3 class="vcx-title">For Asset Owners</h3><p class="vcx-desc">Understand projects long-term value and receive live benchmarks for performance reviews.</p></div><p class="vcx-icon">+</p></div><div data-vcx-card="1" class="vcx-card"><img src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a3d0d9a98897d13897e2a81_For%20Investors.png" loading="lazy" sizes="(max-width: 700px) 100v
912w, 700px" srcset="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a3d0d9a98897d13897e2a81_For%20Investors-p-500.png 500w, https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a3d0d9a98897d13897e2a81_For%20Investors.png 700w" alt="" class="vcx-img"/><div class="vcx-panel"><h3 class="vcx-title">For Investors</h3><p class="vcx-desc">Understand, de-risk & verify your investment at every step.</p></div><p class="vcx-icon">+</p></div><div data-vcx-card="1" class="vcx-card"><img src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a3d0107d3af91ef0c267fcd_For%20Utilities.png" loading="lazy" sizes="(max-width: 698px) 100vw, 698px" srcset="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a3d0107d3af91ef0c267fcd_For%20Utilities-p-500.png 500w, https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a3d0107d3af91ef0c267fcd_For%20Utilities.png 698w" alt="" class="vcx-img"/><div class="vcx-panel"><h3 class="vcx-title">For Utilities</h3><p class="vcx-desc">Optimise your entire portfolio and understand where your revenue opportunities lie.</p></div><p class="vcx-icon">+</p></div></div></div></div></section><section class="section_digital-twin hide-desktop"><div class="padding-global padding-section-large"><div class="container-large"><div class="digital-twin_component"><div data-reveal-group="" class="digital-twin_top"><h2 class="heading-style-h2 max-width-xmedium">A <span class="text-color-purple-light">Digital Twin</span> <br/>Of Your Energy Asset</h2><p class="text-size-medium">1:1 digital twins for your BESS evolve with your project to deliver tailored business cases in minutes.</p></div><div data-reveal-group="" class="digital-twin_steps"><div class="digital-twin_step is-active"><div class="digital-twin_step-image-wrap"><img src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a7c0ba9acbbd303ec7f7177_SVG%20(3).svg" alt="Model" class="digital-twin_step-image"/></div><div class="digital-twin_step-marker"><div class="digital-twin_step-marker-dot"></div></div><div class="digital-twin_step-content"><p class="digital-twin_step-number">01</p><h3 class="digital-twin_step-title">Configure</h3><p class="digital-twin_step-text">Create a digital twin mirroring all aspects your BESS project. </p></div></div><div class="digital-twin_step"><div class="digital-twin_step-image-wrap"><img src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a853ff91ff401748e5324ff_SVG%20(2).svg" alt="Simulate" class="digital-twin_step-image"/></div><div class="digital-twin_step-marker"><div class="digital-twin_step-marker-dot"></div></div><div class="digital-twin_step-content"><p class="digital-twin_step-number">02</p><h3 class="digital-twin_step-title">Simulate</h3><p class="digital-twin_step-text">We simulate your project with real market data and deliver clear revenue insights.</p></div></div><div class="digital-twin_step"><div class="digital-twin_step-image-wrap"><img src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a853fa25e6b8e90ecadd157_SVG%20(1).svg" alt="Deploy" class="digital-twin_step-image"/></div><div class="digital-twin_step-marker"><div class="digital-twin_step-marker-dot"></div></div><div class="digital-twin_step-content"><p class="digital-twin_step-number">03</p><h3 class="digital-twin_step-title">Compare</h3><p class="digital-twin_step-text">Compare project setups easily to find the most profitable one.</p></div></div></div></div></div></div></section><section class="hiw_section home"><div class="padding-global padding-section-large"><div class="container-large"><div class="hiw_sticky-outer"><div class="hiw_sticky-inner"><div class="hiw_header"><div class="hiw_left home"><h2 class="heading-style-h2 max-width-xmedium">A <span class="text-color-purple-light">Digital Twin</span> <br/>Of Your Energy Asset</h2><p class="text-size-medium">1:1 digital twins for your BESS evolve with your project to deliver tailored business cases in minutes.</p></div></div><div data-duration-out="100" data-current="Tab 1" data-easing="ease" data-duration-in="300" class="hiw_tabs"><div class="hiw_scroll-wrap"><div class="hiw_tabs-grid"><div role="tablist" class="hiw_tabs-menu"><a href="#hiw-tab-1" data-w-tab="Tab 1" class="hiw_tab-link w-inline-block"><div class="hiw_tab-top"><img src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a0fc9d120
912af2f0388a1b092_Vector%20(1).svg" loading="lazy" alt=""/><div class="hiw_tab-title">Configure</div></div><div class="hiw_tab-desc">Create a digital twin mirroring all aspects your BESS project. </div></a><div class="inline-div-0-1"></div><a href="#hiw-tab-2" data-w-tab="Tab 2" class="hiw_tab-link w-inline-block"><div class="hiw_tab-top"><img src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a0fca02a987b29b18cb44ce_Vector%20(2).svg" loading="lazy" alt=""/><div class="hiw_tab-title">Simulate</div></div><div class="hiw_tab-desc">We simulate your project with real market data and deliver clear revenue insights.</div></a><div class="inline-div-0-1-2"></div><a href="#hiw-tab-3" data-w-tab="Tab 3" class="hiw_tab-link w-inline-block"><div class="hiw_tab-top"><img src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a0fca0d5ad799ded464805d_Vector%20(3).svg" loading="lazy" alt=""/><div class="hiw_tab-title">Compare</div></div><div class="hiw_tab-desc">Compare project setups easily to find the most profitable one.</div></a></div><div id="w-node-bfbd7cf9-d0ab-f583-2a9f-200cf02f99ca-fb2a1b21" class="hiw_tabs-content home"><div data-w-tab="Tab 1" class="hiw_tab-pane"><div class="hiw_card home"><div class="po_decision-card hiw"><div class="po_decision-bottom hiw home"><div class="hiw_img-wrap"><img src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a7c0ba9acbbd303ec7f7177_SVG%20(3).svg" alt="Model" class="image-100"/></div></div></div></div></div><div data-w-tab="Tab 2" class="hiw_tab-pane"><div class="hiw_card home"><div class="po_decision-card hiw"><div class="po_decision-bottom hiw home"><div class="hiw_img-wrap"><img src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a853ff91ff401748e5324ff_SVG%20(2).svg" alt="Simulate" class="image-100"/></div></div></div></div></div><div data-w-tab="Tab 3" class="hiw_tab-pane"><div class="hiw_card home"><div class="po_decision-card hiw"><div class="po_decision-bottom hiw home"><div class="hiw_img-wrap"><img src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a853fa25e6b8e90ecadd157_SVG%20(1).svg" alt="Deploy" class="image-100"/></div></div></div></div></div></div></div></div></div></div></div></div></div></section><section class="section_challenge"><div class="padding-global"><div class="container-large"><div class="rt-card-1"><header data-reveal-group="" class="rt-head"><h2 class="rt-title-1">Platform <span class="rt-accent">Overview</span></h2><p class="rt-sub-1">The entire BESS lifecycle: from project analysis to live benchmarking, with insights tailored to your digital twin.</p></header><div class="vx-stage"><div class="vx-circle-top"></div><div class="vx-circle-left"></div><div class="vx-circle-right"></div><div class="vx-glow"></div><div class="vx-label-top">ArTee (Energy Analyst)</div><div class="vx-label-left">Investment Analysis</div><div class="vx-label-right">Live Benchmarking</div><div class="vx-label-center">Digital Twin</div><div class="vx-panel-top">ArTee is your personal energy analyst. Ask him anything about BESS and he provides insights.</div><div class="vx-panel-left">Get project-specific business cases in minutes based in forecasts or backtests.</div><div class="vx-panel-right">Simulates the performance of your BESS in the markets. Test strategies, compare against forecasts & benchmark against trader's performance. </div></div></div></div></div></section><section><div class="padding-global padding-section-small"><div class="container-large"><div class="blogs_card-wrap"><div class="blogs_top-card"><h2>Insights</h2><a href="/blog" class="text-link-purple">View all insights â</a></div><div class="w-dyn-list"><div fs-list-load="more" fs-list-element="list" role="list" class="blog_cards-list cards w-dyn-items"><div role="listitem" class="blog_card-wrap card w-dyn-item"><a href="/blogs/eeg-2027-leak" class="blog_card w-inline-block"><div class="blog_img-card"><img alt="Featured post" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a44ed135ac2c12dd257135a_1200%20px%20(5).png" sizes="100vw" srcset="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a44ed135ac2c12dd257135a_1200%20px%20(5)-p-500.png 500w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a44ed135ac2c12dd257135a_1200%20px%20(5)-p-800.png 800w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a44ed135ac2c12dd257135a_1200%20px%20(5)-p-1080.png 1080w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a44ed135ac2c12dd257135a_1200%20px%20(5).png 1200w" class="blog_thumb-img-wrap"/></div><div class="rt-featured-content"><div class="rt-meta-row blog-card card"><div class="rt-category-badge"><div>Energy Storage</div></div><div class="blog_read-time-wrap"><div class="blog_date">February 6, 2026</div></div></div><h2 class="blog_title-card">EEG 2027 Leak: The Changes That Could Reshape Renewable Investments</h2><div class="rt-featured-footer blog"><div class="rt-author-row"><img alt="Florian Heise" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f435552a64a6706d23089d_himali.jpg" sizes="100vw" srcset="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f435552a64a6706d23089d_himali-p-500.jpg 500w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f435552a64a6706d23089d_himali-p-800.jpg 800w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f435552a64a6706d23089d_himali.jpg 1008w" class="rt-author-avatar"/><div>Himali Talware</div></div><div class="rt_author-read-wrap"><div class="icon-embed-xxsmall clock w-embed"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--ic" width="100%" height="100%" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24">
912<path fill="currentColor" d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8s8 3.58 8 8s-3.58 8-8 8"></path><path fill="currentColor" d="M12.5 7H11v6l5.25 3.15l.75-1.23l-4.5-2.67z"></path></svg></div><div href="#" class="rt-read-article">6 min</div></div></div></div></a></div><div role="listitem" class="blog_card-wrap card w-dyn-item"><a href="/blogs/turning-vt-into-custom-benchmarks" class="blog_card w-inline-block"><div class="blog_img-card"><img alt="Featured post" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a44ed2d3d7c4d1e0d433136_1200%20px%20(6).png" sizes="100vw" srcset="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a44ed2d3d7c4d1e0d433136_1200%20px%20(6)-p-500.png 500w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a44ed2d3d7c4d1e0d433136_1200%20px%20(6)-p-800.png 800w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a44ed2d3d7c4d1e0d433136_1200%20px%20(6)-p-1080.png 1080w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a44ed2d3d7c4d1e0d433136_1200%20px%20(6).png 1200w" class="blog_thumb-img-wrap"/></div><div class="rt-featured-content"><div class="rt-meta-row blog-card card"><div class="rt-category-badge"><div>Energy Storage</div></div><div class="blog_read-time-wrap"><div class="blog_date">December 17, 2025</div></div></div><h2 class="blog_title-card">Re-Twin x ECO STOR: Turning Virtual Trading into Custom Benchmarks</h2><div class="rt-featured-footer blog"><div class="rt-author-row"><img alt="Florian Heise" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f436108a6b23566965230f_mayur.webp" sizes="100vw" srcset="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f436108a6b23566965230f_mayur-p-500.webp 500w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f436108a6b23566965230f_mayur-p-800.webp 800w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f436108a6b23566965230f_mayur-p-1080.webp 1080w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f436108a6b23566965230f_mayur.webp 1364w" class="rt-author-avatar"/><div>Mayur Andulkar</div></div><div class="rt_author-read-wrap"><div class="icon-embed-xxsmall clock w-embed"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--ic" width="100%" height="100%" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8s8 3.58 8 8s-3.58 8-8 8"></path><path fill="currentColor" d="M12.5 7H11v6l5.25 3.15l.75-1.23l-4.5-2.67z"></path></svg></div><div href="#" class="rt-read-article">6 min</div></div></div></div></a></div><div role="listitem" class="blog_card-wrap card w-dyn-item"><a href="/blogs/italy-storage-systems" class="blog_card w-inline-block"><div class="blog_img-card"><img alt="Featured post" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a44eba0fda9b967c466224d_1200%20px.png" sizes="100vw" srcset="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a44eba0fda9b967c466224d_1200%20px-p-500.png 500w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a44eba0fda9b967c466224d_1200%20px-p-800.png 800w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a44eba0fda9b967c466224d_1200%20px-p-1080.png 1080w, https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/6a44eba0fda9b967c466224d_1200%20px.png 1200w" class="blog_thumb-img-wrap"/></div><div class="rt-featured-content"><div class="rt-meta-row blog-card card"><div class="rt-category-badge"><div>Regulations</div></div><div class="blog_read-time-wrap"><div class="blog_date">November 15, 2025</div></div></div><h2 class="blog_title-card">Italyâs Energy Storage Market: Policy, potential and pitfalls'</h2><div class="rt-featured-footer blog"><div class="rt-author-row"><img alt="Florian Heise" src="https://cdn.prod.website-files.com/69f09845c615adfbcda2a761/69f42585c1a92ae984690061_Mask%20group%20(1).svg" class="rt-author-avatar"/><div>Florian Heise</div></div><div class="rt_author-read-wrap"><div class="icon-embed-xxsmall clock w-embed"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--ic" width="100%" height="100%" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24">
912<path fill="currentColor" d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8s8 3.58 8 8s-3.58 8-8 8"></path><path fill="currentColor" d="M12.5 7H11v6l5.25 3.15l.75-1.23l-4.5-2.67z"></path></svg></div><div href="#" class="rt-read-article">3 min</div></div></div></div></a></div></div></div></div></div></div></section><section><div class="padding-global padding-section-large"><div class="container-large"><div class="faq6_component"><div class="w-layout-grid faq6_content"><div data-reveal-group="" class="faq6_content-left"><div class="margin-bottom margin-small"><h2 class="heading-style-h2">Answers to your <span class="text-color-purple-light">questions</span></h2></div></div><div data-accordion-close-siblings="true" data-accordion-css-init="" id="w-node-fb8f4f6e-59e4-22d6-5af9-5baae3094f9b-e3094f90" class="accordion-css"><div data-reveal-group="" class="faq_components"><div class="faq_accordion"><div class="faq_heading"><div class="faq-head">How to describe Re-Twin Energy in one sentence?</div><div class="faq_icon"><div class="icon-32 w-embed"><svg width="32" height="32" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 913<path d="M16.9551 6.81586V25.4825" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 914<path d="M7.62183 16.1492H26.2885" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 915</svg></div></div></div><div class="faq_body"><div class="faq_answers"><p class="text-size-18px">Re-Twin is your AI-powered digital twin platform that tells you what your battery project is
915worth, through site-specific business cases and independent benchmarks.</p></div></div></div><div class="faq_accordion"><div class="faq_heading"><div class="faq-head">What is Re-Twin Energy's platform?</div><div class="faq_icon"><div class="icon-32 w-embed"><svg width="32" height="32" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 916<path d="M16.9551 6.81586V25.4825" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 917<path d="M7.62183 16.1492H26.2885" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 918</svg></div></div></div><div class="faq_body"><div class="faq_answers"><p class="text-size-18px">Re-Twin is a one-stop SaaS platform with four tools: Atlas, Investment Analysis, Live Benchmarking, and Contracting. Built to make battery storage decisions faster, smarter, and more profitable.</p></div></div></div><div class="faq_accordion"><div class="faq_heading"><div class="faq-head">What makes Re-Twin Energy a one-stop-shop?</div><div class="faq_icon"><div class="icon-32 w-embed"><svg width="32" height="32" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 919<path d="M16.9551 6.81586V25.4825" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 920<path d="M7.62183 16.1492H26.2885" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 921</svg></div></div></div><div class="faq_body"><div class="faq_answers"><p class="text-size-18px">We support the full asset lifecycle from planning to operation with scenario analysis, trading simulations, and performance benchmarking. Re-Twin answers key questions like:<br/><br/>- Which markets should my battery target?<br/>- How do I balance returns and asset health?<br/>- What profit can I expect from different strategies?</p></div></div></div><div class="faq_accordion"><div class="faq_heading"><div class="faq-head">What is a digital twin?</div><div class="faq_icon"><div class="icon-32 w-embed"><svg width="32" height="32" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 922<path d="M16.9551 6.81586V25.4825" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 923<path d="M7.62183 16.1492H26.2885" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 924</svg></div></div></div><div class="faq_body"><div class="faq_answers"><p class="text-size-18px">A digital twin is a 1:1 virtual copy of your battery asset (real or planned). It mirrors all changes of your set-up, helping you optimize performance and strategy without risk.</p></div></div></div><div class="faq_accordion"><div class="faq_heading"><div class="faq-head">Who can benefit from the Re-Twin Energy platform?</div><div class="faq_icon"><div class="icon-32 w-embed"><svg width="32" height="32" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 925<path d="M16.9551 6.81586V25.4825" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 926<path d="M7.62183 16.1492H26.2885" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 927</svg></div></div></div><div class="faq_body"><div class="faq_answers"><p class="text-size-18px">Stakeholders in energy storage (developers, asset owners, and financiers), especially in the battery storage space, use Re-Twin for project planning, strategy testing, and operational performance benchmarking.</p></div></div></div><div class="faq_accordion"><div class="faq_heading"><div class="faq-head">What energy storage systems are included?</div><div class="faq_icon"><div class="icon-32 w-embed"><svg width="32" height="32" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 928<path d="M16.9551 6.81586V25.4825" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 929<path d="M7.62183 16.1492H26.2885" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 930</svg></div></div></div><div class="faq_body"><div class="faq_answers"><p class="text-size-18px">We focus on battery energy storage systems (BESS), including stand-alone assets and co-located setups like BESS+PV, BESS+Wind, and BESS+Own Consumption.</p></div></div></div><div class="faq_accordion"><div class="faq_heading"><div class="faq-head">What does the Investment Analysis module do?</div><div class="faq_icon"><div class="icon-32 w-embed"><svg width="32" height="32" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 931<path d="M16.9551 6.81586V25.4825" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 932<path d="M7.62183 16.1492H26.2885" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 933</svg></div></div></div><div class="faq_body"><div class="faq_answers"><p class="text-size-18px">It assesses project viability and profitability using historical and forecast data, helping users explore different asset configurations and market strategies before making investment decisions.</p></div></div></div><div class="faq_accordion"><div class="faq_heading"><div class="faq-head">What is Live Benchmarking?</div><div class="faq_icon"><div class="icon-32 w-embed"><svg width="32" height="32" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 934<path d="M16.9551 6.81586V25.4825" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 935<path d="M7.62183 16.1492H26.2885" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 936</svg></div></div></div><div class="faq_body"><div class="faq_answers"><p class="text-size-18px">Live Benchmarking is a new performance measuring concept, that shines where generic indices fail to capture your assets unique set-up. Itâs a live trading simulator where users test and improve strategies in a risk-free environment to balance returns, risks, and asset degradation. Results act as benchmarks for your trader or asset against real outcomes. This can further be applied to validate assumptions and provide third-party verification.</p></div></div></div><div class="faq_accordion"><div class="faq_heading"><div class="faq-head">What type of data does Re-Twin Energy deliver?</div><div class="faq_icon"><div class="icon-32 w-embed"><svg width="32" height="32" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 937<path d="M16.9551 6.81586V25.4825" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 938<path d="M7.62183 16.1492H26.2885" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 939</svg></div></div></div><div class="faq_body"><div class="faq_answers"><p class="text-size-18px">Re-Twin provides historical market data and long-term forecast market data (based on FFE & MAON), trading simulations, market-specific revenue projections, cashflows and scenario results tailored to your asset. This data also incorporates degradation, based on your inputs. Project specific parameters can be set to tailor the output.<br/><br/>The Re-Twin Optimizer itself is trained on various data sources incl. price data for spot &
939 ancillary markets from different countries, weather and much more. This means we are also able to generate a PV Generation Profile based on your chosen location.<br/></p></div></div></div><div class="faq_accordion"><div class="faq_heading"><div class="faq-head">In which format is the data downloadable?</div><div class="faq_icon"><div class="icon-32 w-embed"><svg width="32" height="32" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 940<path d="M16.9551 6.81586V25.4825" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 941<path d="M7.62183 16.1492H26.2885" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 942</svg></div></div></div><div class="faq_body"><div class="faq_answers"><p class="text-size-18px">Data and results can be exported in CSV, Excel, or PDF formats (based on your use case and plan). Downloads are in 1 hour granularity, PRO users get the additional option to download in 15 min granularity.</p></div></div></div><div class="faq_accordion"><div class="faq_heading"><div class="faq-head">For which countries is the platform available?</div><div class="faq_icon"><div class="icon-32 w-embed"><svg width="32" height="32" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 943<path d="M16.9551 6.81586V25.4825" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 944<path d="M7.62183 16.1492H26.2885" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 945</svg></div></div></div><div class="faq_body"><div class="faq_answers"><p class="text-size-18px">The platform currently supports Germany, Belgium, Austria, Netherlands and Spain with expansion to other European markets underway. Interested in bringing Re-Twin to your country? Get in touch! We are always looking for pilot partnerâs to expand to new countries.</p></div></div></div><div class="faq_accordion"><div class="faq_heading"><div class="faq-head">How do I get started?</div><div class="faq_icon"><div class="icon-32 w-embed"><svg width="32" height="32" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 946<path d="M16.9551 6.81586V25.4825" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 947<path d="M7.62183 16.1492H26.2885" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 948</svg></div></div></div><div class="faq_body"><div class="faq_answers"><p class="text-size-18px">Sign up with a free account to explore the platform and test its capabilities with 2 free runs in Investment Analysis and a free trial in Live Benchmarking. Reach out via our website or [email protected] for any questions, custom demos and subscription possibilities.<br/></p></div></div></div><div class="faq_accordion"><div class="faq_heading"><div class="faq-head">Is training available?</div><div class="faq_icon"><div class="icon-32 w-embed"><svg width="32" height="32" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 949<path d="M16.9551 6.81586V25.4825" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 950<path d="M7.62183 16.1492H26.2885" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 951</svg></div></div></div><div class="faq_body"><div class="faq_answers"><p class="text-size-18px">Yes, we offer onboarding and continuous user support to help you get the most out of the platform. Beyond that, our website's Insights section offers blogs, whitepapers, news, and recordings of past webinars as additional information resources. Also ArTee can answer most of you questions.</p></div></div></div><div class="faq_accordion"><div class="faq_heading"><div class="faq-head"><strong class="faq-head">What is ArTee:</strong></div><div class="faq_icon"><div class="icon-32 w-embed"><svg width="32" height="32" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 952<path d="M16.9551 6.81586V25.4825" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 953<path d="M7.62183 16.1492H26.2885" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 954</svg></div></div></div><div class="faq_body"><div class="faq_answers"><p class="text-size-18px">
954AI energy analyst answering setup, analysis and strategy questions on demand.</p></div></div></div><div class="faq_accordion"><div class="faq_heading"><div class="faq-head"><strong class="faq-head">Can I bring my own forecast scenarios?</strong></div><div class="faq_icon"><div class="icon-32 w-embed"><svg width="32" height="32" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 955<path d="M16.9551 6.81586V25.4825" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 956<path d="M7.62183 16.1492H26.2885" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 957</svg></div></div></div><div class="faq_body"><div class="faq_answers"><p class="text-size-18px">Yes. In addition to our six standard forecast scenarios (from conservative to optimistic), you can integrate your own custom scenarios to reflect your specific market assumption<strong class="bold-text-35">s.</strong></p></div></div></div><div class="faq_accordion"><div class="faq_heading"><div class="faq-head">How secure is the platform?</div><div class="faq_icon"><div class="icon-32 w-embed"><svg width="32" height="32" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 958<path d="M16.9551 6.81586V25.4825" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 959<path d="M7.62183 16.1492H26.2885" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 960</svg></div></div></div><div class="faq_body"><div class="faq_answers"><p class="text-size-18px">The platform is hosted on Microsoft Azure, using its full suite of security tools. It follows GDPR and industry best practices with full encryption and access protection.</p></div></div></div><div class="faq_accordion"><div class="faq_heading"><div class="faq-head">Why choose Re-Twin Energy?</div><div class="faq_icon"><div class="icon-32 w-embed"><svg width="32" height="32" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg"> 961<path d="M16.9551 6.81586V25.4825" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 962<path d="M7.62183 16.1492H26.2885" stroke="#607080" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 963</svg></div></div></div><div class="faq_body"><div class="faq_answers"><p class="text-size-18px">Re-Twin unites AI, deep energy expertise, and a user-friendly design to deliver faster insights, smarter strategies, and better financial outcomes in one solution.</p></div></div></div></div></div></div></div></div></div></section><section class="section_challenge"><div class="padding-global padding-section-medium"><div class="container-large"><div class="cta_wrapper main"><div class="cta_left-wrap"><h2 class="heading-style-h3 text-color-alternate">Ready To Make Smarter Energy Storage Investment Decisions?</h2></div><div class="cta_right-wrap main"><p class="text-size-large text-color-grey-dark">Talk to our team. We'll walk you through a live analysis of a real asset in under 30 minutes.</p><div class="button-group"><a href="/contact" target="_blank" class="button w-button">Book a Demo</a></div></div></div></div></div><img loading="lazy" src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/69f45410c1a3a2539e28e7fa_Group%20269.png" alt="" class="cta_abs-img"/></section></main><section class="footer"><div class="padding-global padding-section-medium"><div class="container-large"><div class="footer_wrapper"><div class="padding-bottom padding-xxlarge"><div class="w-layout-grid footer1_top-wrapper"><div class="footer1_left-wrapper"><div class="margin-bottom margin-small"><a href="/?r=0" aria-current="page" class="footer1_logo-link w-nav-brand w--current"><img loading="lazy" height="105" alt="" src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a3d042a7df0c5bf69e17460_Group%201686557473.svg" class="footer1_logo"/></a></div><div class="margin-bottom margin-small"><div>Digital Twin platform for energy assets helping developers, asset owners and investors evaluate BESS project profitability.</div></div><div class="footer1_form-block hide w-form"><form id="email-form" name="email-form" data-name="Email Form" method="get" class="footer1_form" data-wf-page-id="69d32cb5aba469d7fb2a1b21" data-wf-element-id="13a18984-8a9c-1ab9-2204-33f900dd8354" data-turnstile-sitekey="0x4AAAAAAAQTptj2So4dx43e"><input class="form_input-2 w-input" maxlength="256" name="email-2" data-name="Email 2" placeholder="Enter your email" type="email" id="email-2" required=""/><input type="submit" data-wait="Please wait..." class="button-2 is-secondary is-small w-button" value="Subscribe"/></form><div class="text-size-tiny">By subscribing you agree to with our <a href="#"><span>Privacy Policy</span></a> and provide consent to receive updates from our company.</div><div class="form_message-success-wrapper w-form-done"><div class="form_message-success-2"><div>Thank you! Your submission has been received!</div></div></div><div class="form_message-error-wrapper w-form-fail"><div class="form_message-error-2"><div>Oops! Something went wrong while submitting the form.</div></div></div></div><div class="footer_left-bottom"><a href="https://www.linkedin.com/company/re-twin-energy" target="_blank" class="footer1_s
963ocial-link w-inline-block"><div class="icon-embed-xsmall w-embed"><svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 964<path fill-rule="evenodd" clip-rule="evenodd" d="M4.5 3C3.67157 3 3 3.67157 3 4.5V19.5C3 20.3284 3.67157 21 4.5 21H19.5C20.3284 21 21 20.3284 21 19.5V4.5C21 3.67157 20.3284 3 19.5 3H4.5ZM8.52076 7.00272C8.52639 7.95897 7.81061 8.54819 6.96123 8.54397C6.16107 8.53975 5.46357 7.90272 5.46779 7.00413C5.47201 6.15897 6.13998 5.47975 7.00764 5.49944C7.88795 5.51913 8.52639 6.1646 8.52076 7.00272ZM12.2797 9.76176H9.75971H9.7583V18.3216H12.4217V18.1219C12.4217 17.742 12.4214 17.362 12.4211 16.9819V16.9818V16.9816V16.9815V16.9812C12.4203 15.9674 12.4194 14.9532 12.4246 13.9397C12.426 13.6936 12.4372 13.4377 12.5005 13.2028C12.7381 12.3253 13.5271 11.7586 14.4074 11.8979C14.9727 11.9864 15.3467 12.3141 15.5042 12.8471C15.6013 13.1803 15.6449 13.5389 15.6491 13.8863C15.6605 14.9339 15.6589 15.9815 15.6573 17.0292V17.0294C15.6567 17.3992 15.6561 17.769 15.6561 18.1388V18.3202H18.328V18.1149C18.328 17.6629 18.3278 17.211 18.3275 16.7591V16.759V16.7588C18.327 15.6293 18.3264 14.5001 18.3294 13.3702C18.3308 12.8597 18.276 12.3563 18.1508 11.8627C17.9638 11.1286 17.5771 10.5211 16.9485 10.0824C16.5027 9.77019 16.0133 9.5691 15.4663 9.5466C15.404 9.54401 15.3412 9.54062 15.2781 9.53721L15.2781 9.53721L15.2781 9.53721C14.9984 9.52209 14.7141 9.50673 14.4467 9.56066C13.6817 9.71394 13.0096 10.0641 12.5019 10.6814C12.4429 10.7522 12.3852 10.8241 12.2991 10.9314L12.2991 10.9315L12.2797 10.9557V9.76176ZM5.68164 18.3244H8.33242V9.76733H5.68164V18.3244Z" fill="CurrentColor"/> 965</svg></div></a><div class="laungage_switcher"><div class="ouiflow-element-contain w-locales-list"><div data-delay="500" data-hover="true" class="ouiflow-dropdown-2 w-dropdown"><div lang="en" class="ouiflow-2-toggle w-dropdown-toggle"><div class="ouiflow-toggle_text-flag-wrap"><div>English</div><div data-w-id="c10168e9-460d-7c0c-97dd-fe609b4c9d76" class="dropdown-chevron-footer w-embed"><svg width=" 100%" height=" 100%" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 966<path fill-rule="evenodd" clip-rule="evenodd" d="M2.55806 6.29544C2.46043 6.19781 2.46043 6.03952 2.55806 5.94189L3.44195 5.058C3.53958 4.96037 3.69787 4.96037 3.7955 5.058L8.00001 9.26251L12.2045 5.058C12.3021 4.96037 12.4604 4.96037 12.5581 5.058L13.4419 5.94189C13.5396 6.03952 13.5396 6.19781 13.4419 6.29544L8.17678 11.5606C8.07915 11.6582 7.92086 11.6582 7.82323 11.5606L2.55806 6.29544Z" fill="currentColor"/> 967</svg></div></div></div><nav class="ouiflow-2_list ouiflow-dropdown-link-flag w-dropdown-list"><div role="list" class="ouiflow-2_list-contain w-locales-items"><div role="listitem" class="ouiflow-2_list-item w-locales-item"><a selector="dropdown2" hreflang="en" href="/?r=0" aria-current="page" class="ouiflow-toggle_text-flag-wrap w-inline-block w--current"><div class="ouiflow-toggle_text-flag-wrapper"><div>English</div></div></a></div><div role="listitem" class="ouiflow-2_list-item w-locales-item"><a selector="dropdown2" hreflang="de-DE" href="/de" class="ouiflow-toggle_text-flag-wrap w-inline-block"><div class="ouiflow-toggle_text-flag-wrapper"><div>German</div></div></a></div><div role="listitem" class="ouiflow-2_list-item w-locales-item"><a selector="dropdown2" hreflang="es-ES" href="/es" class="ouiflow-toggle_text-flag-wrap w-inline-block"><div class="ouiflow-toggle_text-flag-wrapper"><div>Spanish</div></div></a></div></div></nav></div><div class="laungage_switcher-code w-embed w-script">
967<script> 968 969document.addEventListener('DOMContentLoaded', function() { 970 971 const currentLinkSwitcher2 = document.querySelectorAll('[selector="dropdown2"].w--current'); 972 973 currentLinkSwitcher2.forEach(link => { 974 const closestLocalItem2 = link.closest('.ouiflow-2_list-item'); 975 if (closestLocalItem2) { 976 closestLocalItem2.style.display = 'none'; 977 } 978 }); 979 980}); 981 982 983 984</script>
984</div></div></div></div></div><div class="w-layout-grid footer1_menu-wrapper"><div class="footer1_link-column"><div class="margin-bottom margin-xsmall"><div class="text-size-medium text-weight-semibold footer">Platform</div></div><div class="footer1_link-list"><a href="/platform-overview" class="footer1_link">Platform Overview</a><a href="/investment-analysis" class="footer1_link">Investment Analysis</a><a href="/live-benchmarking" class="footer1_link">Live Benchmarking</a><a href="/artee" class="footer1_link">ArTee</a></div></div><div class="footer1_link-column"><div class="margin-bottom margin-xsmall"><div class="text-size-medium text-weight-semibold footer">Solutions</div></div><div class="footer1_link-list"><a href="/solutions/project-developers" class="footer1_link">Developers</a><a href="/solutions/asset-owners" class="footer1_link">Asset Owners</a><a href="/solutions/investors-financiers" class="footer1_link">Investors & Financers</a><a href="/solutions/utilities" class="footer1_link">Utilities</a><a href="/solutions/industrial-energy-users" class="footer1_link">Industrial Users</a></div></div><div class="footer1_link-column"><div class="margin-bottom margin-xsmall"><div class="text-size-medium text-weight-semibold footer">Insights</div></div><div class="footer1_link-list"><a href="/blog" class="footer1_link">Blogs</a><a href="https://re-twin.webflow.io/blogs#whitepapers-section" class="footer1_link">White Papers</a><a href="https://re-twin.webflow.io/blogs#webinars-section" class="footer1_link">Webinars</a><a href="https://re-twin.webflow.io/blogs#news-section" class="footer1_link">News</a></div></div><div class="footer1_link-column"><div class="margin-bottom margin-xsmall"><div class="text-size-medium text-weight-semibold footer">Company</div></div><div class="footer1_link-list"><a href="/about-us" class="footer1_link">About</a><a href="/career" class="footer1_link">Careers</a><a href="/contact" class="footer1_link">Contact</a><a href="/pricing" class="footer1_link">Pricing</a><a href="https://docs.re-twin.energy/" class="footer1_link">Docs</a></div></div></div></div></div><div class="padding-top padding-medium"><div class="footer1_bottom-wrapper"><div class="footer1_credit-text">© 2026 Re-Twin Energy GmbH</div><div class="footer_bottom-right"><div class="footer_bottom-right-top"><div class="footer_bottom-right-icons-wrap"><a href="https://www.bves.de/en/" target="_blank" class="footer_bottom-right-icon-wrap first w-inline-block"><img width="Auto" height="Auto" alt="" src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6aba22fb65165b004798be63_BVES_Logo_cropped_400px.png" loading="lazy" class="image-105"/></a><a href="https://re-twin-energy.trust.site/" target="_blank" class="footer_bottom-right-icon-wrap first w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a75b3cba698311098f7840a_PS-Badges-ISO_27001_2%201%201.svg" alt="" class="image-106"/></a><a href="https://re-twin-energy.trust.site/" target="_blank" class="footer_bottom-right-icon-wrap w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/6a75b3d6a338b1f1d5057c37_image%20(14)%201.svg" alt=""/></a></div><div class="devider_footer"></div><div class="footer_bottom-right-icons-wrap"><a href="https://www.bescheinigung-forschungszulage.de/bsfz-siegel" target="_blank" class="footer_bottom-right-icon-wrap w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/69f43087184da6bcfe417e4f_imgi_29_BSFZ.CginBmou%20(1).svg" alt=""/></a><a href="http://kommunaldigital.de/" target="_blank" class="footer_bottom-right-icon-wrap w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/69f43087fc6885e9deaf56bb_imgi_30_WIIIR_Siegel_Partner.CtPfgLPq.png" alt=""/></a></div></div><div class="w-layout-grid footer1_legal-list"><a href="/terms" class="footer1_legal-link">Terms & Conditions</a><a href="/impressum" class="footer1_legal-link">Impressum</a><a href="/privacy" class="footer1_legal-link">Privacy Policy</a></div></div></div></div></div></div></div></section></div>
984<script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=69d32cb2aba469d7fb2a1ab8" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
984<script src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/js/webflow.schunk.01b56ef8c8bd111c.js" type="text/javascript" integrity="sha384-iYCaTaSJwo7SLv+5Fpais23xfjuXE4ZoLekLYLRLibhpj99yMyQiXSRZk4pg0rtX" crossorigin="anonymous"></script>
984<script src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/js/webflow.schunk.e8fcb1564caa5037.js" type="text/javascript" integrity="sha384-51Xc63gRTnBUJXeJL6i13xuNlQ/qRGXZ4TCrDKSrKmzhYonK7CrmfysiFXUw43Ck" crossorigin="anonymous"></script>
984<script src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8/js/webflow.0a399d42.ef07c812325ac923.js" type="text/javascript" integrity="sha384-uqpBo6Z4XUk0V4aGWeXbfdd35CIVyeHNThIH+wAGpObHqVp3EcA2mBu0dEj1hgQ2" crossorigin="anonymous"></script>
984<script src="https://cdn.jsdelivr.net/gh/jeminids/webflow-codes@navbar-on-scroll_v1.1/navbar-on-scroll.min.js"></script>
984 985 986 987<!-- CSS --> 988<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/lenis.css"> 989<!-- JS -->
990<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/lenis.min.js"></script>
vendor: 1 bytes, line 990
990
991<script> 992 // Lenis â run everywhere EXCEPT the Investment Analysis page 993 // (data-wf-page 6a0e91493d687e07dbed6aea), whose accordion needs the 994 // browser's native scroll anchoring that Lenis overrides. 995 if (document.documentElement.getAttribute('data-wf-page') !== '6a0e91493d687e07dbed6aea') { 996 const lenis = new Lenis({ 997 autoRaf: true, 998 }); 999 window.lenis = lenis; 1000 } 1001</script>
1001 1002
1003<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/gsap.min.js"></script>
vendor: 1 bytes, line 1003
1003
1004<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/ScrollTrigger.min.js"></script>
1004 1005
1006<script> 1007 gsap.registerPlugin(ScrollTrigger); 1008 1009function initContentRevealScroll(){ 1010 const prefersReduced = window.matchMedia('(prefers-reduced-motion: reduce)').matches; 1011 1012 const ctx = gsap.context(() => { 1013 1014 document.querySelectorAll('[data-reveal-group]').forEach(groupEl => { 1015 // Config from attributes or defaults (group-level) 1016 const groupStaggerSec = (parseFloat(groupEl.getAttribute('data-stagger')) || 100) / 1000; // ms â sec 1017 const groupDistance = groupEl.getAttribute('data-distance') || '2em'; 1018 const triggerStart = groupEl.getAttribute('data-start') || 'top 90%'; 1019 1020 const animDuration = 0.7; 1021 const animEase = "power4.inOut"; 1022 1023 // Reduced motion: show immediately 1024 if (prefersReduced) { 1025 gsap.set(groupEl, { clearProps: 'all', y: 0, autoAlpha: 1 }); 1026 return; 1027 } 1028 1029 // If no direct children, animate the group element itself 1030 const directChildren = Array.from(groupEl.children).filter(el => el.nodeType === 1); 1031 if (!directChildren.length) { 1032 gsap.set(groupEl, { y: groupDistance, autoAlpha: 0 }); 1033 ScrollTrigger.create({ 1034 trigger: groupEl, 1035 start: triggerStart, 1036 once: true, 1037 onEnter: () => gsap.to(groupEl, { 1038 y: 0, 1039 autoAlpha: 1, 1040 duration: animDuration, 1041 ease: animEase, 1042 onComplete: () => gsap.set(groupEl, { clearProps: 'all' }) 1043 }) 1044 }); 1045 return; 1046 } 1047 // Build animation slots: item or nested (deep layers allowed) 1048 const slots = []; 1049 directChildren.forEach(child => { 1050 const nestedGroup = child.matches('[data-reveal-group-nested]') 1051 ? child 1052 : child.querySelector(':scope [data-reveal-group-nested]'); 1053 1054 if (nestedGroup) { 1055 const includeParent = 1056 child.getAttribute('data-ignore') !== 'true' && 1057 ( 1058 child.getAttribute('data-ignore') === 'false' || 1059 nestedGroup.getAttribute('data-ignore') === 'false' 1060 ); 1061 1062 const nestedChildren = Array.from(nestedGroup.children).filter( 1063 el => el.nodeType === 1 && el.getAttribute('data-ignore') !== 'true' 1064 ); 1065 1066 slots.push({ 1067 type: 'nested', 1068 parentEl: child, 1069 nestedEl: nestedGroup, 1070 includeParent, 1071 nestedChildren 1072 }); 1073 } else { 1074 if (child.getAttribute('data-ignore') === 'true') return; 1075 slots.push({ type: 'item', el: child }); 1076 } 1077 }); 1078 1079 // Initial hidden state 1080 slots.forEach(slot => { 1081 if (slot.type === 'item') { 1082 // If the element itself is a nested group, force group distance (prevents it from using its own data-distance) 1083 const isNestedSelf = slot.el.matches('[data-reveal-group-nested]'); 1084 const d = isNestedSelf ? groupDistance : (slot.el.getAttribute('data-distance') || groupDistance); 1085 gsap.set(slot.el, { y: d, autoAlpha: 0 }); 1086 } else { 1087 // Parent follows the group's distance when included, regardless of nested's data-distance 1088 if (slot.includeParent) gsap.set(slot.parentEl, { y: groupDistance, autoAlpha: 0 }); 1089 // Children use nested group's own distance (fallback to group distance) 1090 const nestedD = slot.nestedEl.getAttribute('data-distance') || groupDistance; 1091 slot.nestedChildren.forEach(target => gsap.set(target, { y: nestedD, autoAlpha: 0 })); 1092 } 1093 }); 1094 1095 // Extra safety: if a nested parent is included, re-assert its distance to the group's value 1096 slots.forEach(slot => { 1097 if (slot.type === 'nested' && slot.includeParent) { 1098 gsap.set(slot.parentEl, { y: groupDistance }); 1099 } 1100 }); 1101 1102 // Reveal sequence 1103 ScrollTrigger.create({ 1104 trigger: groupEl, 1105 start: triggerStart, 1106 once: true, 1107 onEnter: () => { 1108 const tl = gsap.timeline(); 1109 1110 slots.forEach((slot, slotIndex) => { 1111 const slotTime = slotIndex * groupStaggerSec; 1112 1113 if (slot.type === 'item') { 1114 tl.to(slot.el, { 1115 y: 0, 1116 autoAlpha: 1, 1117 duration: animDuration, 1118 ease: animEase, 1119 onComplete: () => gsap.set(slot.el, { clearProps: 'all' }) 1120 }, slotTime); 1121 } else { 1122 // Optionally include the parent at the same slot time (parent uses group distance) 1123 if (slot.includeParent) { 1124 tl.to(slot.parentEl, { 1125 y: 0, 1126 autoAlpha: 1, 1127 duration: animDuration, 1128 ease: animEase, 1129 onComplete: () => gsap.set(slot.parentEl, { clearProps: 'all' }) 1130 }, slotTime); 1131 } 1132 // Nested children use nested stagger (ms â sec); fallback to group stagger 1133 const nestedMs = parseFloat(slot.nestedEl.getAttribute('data-stagger')); 1134 const nestedStaggerSec = isNaN(nestedMs) ? groupStaggerSec : nestedMs / 1000;
1135 slot.nestedChildren.forEach((nestedChild, nestedIndex) => { 1136 tl.to(nestedChild, { 1137 y: 0, 1138 autoAlpha: 1, 1139 duration: animDuration, 1140 ease: animEase, 1141 onComplete: () => gsap.set(nestedChild, { clearProps: 'all' }) 1142 }, slotTime + nestedIndex * nestedStaggerSec); 1143 }); 1144 } 1145 }); 1146 } 1147 }); 1148 }); 1149 1150 }); 1151 1152 return () => ctx.revert(); 1153} 1154 1155// Initialize Elements Reveal on Scroll 1156document.addEventListener("DOMContentLoaded", () => { 1157 initContentRevealScroll(); 1158}); 1159</script>
1159 1160 1161
1162<script> 1163// Function to toggle accordion 1164function toggleAccordion(card) { 1165 var content = card.querySelector('.faq_body'); 1166 var icon = card.querySelector('.faq_icon'); 1167 1168 if (content.style.maxHeight !== '0px') { 1169 // Accordion is open, close it 1170 content.style.maxHeight = '0px'; 1171 icon.textContent = '+'; 1172 card.classList.remove('active'); 1173 } else { 1174 // Accordion is closed, open it 1175 content.style.maxHeight = content.scrollHeight + "px"; 1176 icon.textContent = '-'; 1177 card.classList.add('active'); 1178 } 1179} 1180 1181// Function to close all accordions 1182function closeAllAccordions() { 1183 var allCards = document.querySelectorAll('.faq_accordion'); 1184 allCards.forEach(function(card) { 1185 var content = card.querySelector('.faq_body'); 1186 var icon = card.querySelector('.faq_icon'); 1187 content.style.maxHeight = '0px'; 1188 icon.textContent = '+'; 1189 card.classList.remove('active'); 1190 }); 1191} 1192 1193// Initially set all faq_body to max-height of 0 and open the first item by default 1194window.onload = function() { 1195 var allContents = document.querySelectorAll('.faq_body'); 1196 1197 // Close all first 1198 allContents.forEach(function(content) { 1199 content.style.maxHeight = '0px'; 1200 }); 1201 1202 // Set all icons to + 1203 document.querySelectorAll('.faq_icon').forEach(function(icon) { 1204 icon.textContent = '+'; 1205 }); 1206 1207 // Open the first accordion by default 1208 if (allContents.length > 0) { 1209 var firstCard = document.querySelector('.faq_accordion'); 1210 var firstContent = allContents[0]; 1211 var firstIcon = firstCard.querySelector('.faq_icon'); 1212 1213 firstContent.style.maxHeight = firstContent.scrollHeight + "px"; 1214 firstIcon.textContent = '-'; 1215 firstCard.classList.add('active'); 1216 } 1217}; 1218 1219// Add event listeners 1220document.querySelectorAll('.faq_accordion').forEach(function(card) { 1221 card.addEventListener('click', function() { 1222 if (card.querySelector('.faq_body').style.maxHeight !== '0px') { 1223 toggleAccordion(card); 1224 } else { 1225 closeAllAccordions(); 1226 toggleAccordion(card); 1227 } 1228 }); 1229}); 1230</script>
1230 1231 1232 1233 1234
1235<script> 1236window.addEventListener('pageshow', function (e) { 1237 if (e.persisted) window.location.reload(); // re-runs animations only on bfcache restore 1238}); 1239</script>
1239 1240 1241 1242 1243 1244 1245<!-- intl-tel-input CSS + JS --> 1246<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/build/css/intlTelInput.css">
1247<script src="https://cdn.jsdelivr.net/npm/[email protected]/build/js/intlTelInput.min.js"></script>
1247 1248 1249<!-- reCAPTCHA v3 (TEST key for webflow.io â swap to production key before launch) -->
vendor: 61 bytes, lines 1249-1250
1249 1250<script src="https://www.google.com/recaptcha/api.js?render=
12506LfjDbEqAAAAAB9Kdhq5JNDeklupTt7g3c7qpXCg
vendor: 13 bytes, lines 1250-1251
1250"></script> 1251
1252<script> 1253document.addEventListener("DOMContentLoaded", function () { 1254 1255 /* ================= CONFIG ================= */ 1256 var SITE_KEY = "6LfjDbEqAAAAAB9Kdhq5JNDeklupTt7g3c7qpXCg"; 1257 var ACTION = "sumbit"; // intentional spelling per client spec 1258 var ACCESS_KEY = "c07c6dfa-49d8-487e-957c-e1e46e7f85d1"; 1259 var SKIP_VERIFY = false; 1260 var VERIFY_URL = "https://ca-api-gateway-prod-001.happydune-ff51e933.westeurope.azurecontainerapps.io/primary/verify-recaptcha"; 1261 var SUBMIT_URL = "https://retwinstaticform.azurewebsites.net/api/status"; 1262 /* ========================================== */ 1263 1264 var input = document.querySelector("#phone") || document.querySelector('input[type="tel"]'); 1265 if (!input) return; 1266 1267 /* ---------- phone dial code ---------- */ 1268 var iti = window.intlTelInput(input, { 1269 initialCountry: "auto", 1270 geoIpLookup: function (callback) { 1271 fetch("https://ipapi.co/json") 1272 .then(function (res) { return res.json(); }) 1273 .then(function (data) { callback(data.country_code); }) 1274 .catch(function () { callback("in"); }); 1275 }, 1276 separateDialCode: true, 1277 showFlags: false, 1278 utilsScript: "https://cdn.jsdelivr.net/npm/[email protected]/build/js/utils.js" 1279 }); 1280 1281 /* ---------- populate country select ---------- */ 1282 var countrySelect = document.querySelector('select[name="country"]'); 1283 if (countrySelect && window.intlTelInput.getCountryData) { 1284 var placeholder = document.createElement("option"); 1285 placeholder.value = ""; 1286 placeholder.textContent = "Country"; 1287 placeholder.disabled = true; 1288 placeholder.selected = true; 1289 countrySelect.appendChild(placeholder); 1290 window.intlTelInput.getCountryData().forEach(function (c) { 1291 var opt = document.createElement("option"); 1292 opt.value = c.name; 1293 opt.textContent = c.name; 1294 countrySelect.appendChild(opt); 1295 }); 1296 } 1297 1298 /* ---------- align dial code with input ---------- */ 1299 function alignDialCode() { 1300 var selected = document.querySelector(".iti__selected-country"); 1301 if (!selected) return; 1302 var cs = getComputedStyle(input); 1303 selected.style.paddingTop = cs.paddingTop; 1304 selected.style.paddingBottom = cs.paddingBottom; 1305 selected.style.fontSize = cs.fontSize; 1306 selected.style.lineHeight = cs.lineHeight; 1307 selected.style.alignItems = "center"; 1308 selected.removeAttribute("title"); 1309 } 1310 setTimeout(alignDialCode, 300); 1311 setTimeout(alignDialCode, 1500); 1312 1313 /* ---------- dropdown scroll fix ---------- */ 1314 function fixDropdownScroll() { 1315 var list = document.querySelector(".iti__country-list"); 1316 var content = document.querySelector(".iti__dropdown-content"); 1317 [list, content].forEach(function (el) { 1318 if (!el || el.dataset.scrollFixed) return; 1319 el.dataset.scrollFixed = "true"; 1320 el.setAttribute("data-lenis-prevent", ""); 1321 el.setAttribute("data-scroll-ignore", ""); 1322 el.addEventListener("wheel", function (e) { 1323 e.stopPropagation(); 1324 el.scrollTop += e.deltaY; 1325 e.preventDefault(); 1326 }, { passive: false }); 1327 el.addEventListener("touchmove", function (e) { 1328 e.stopPropagation(); 1329 }, { passive: true }); 1330 }); 1331 } 1332 input.addEventListener("open:countrydropdown", fixDropdownScroll); 1333 document.addEventListener("click", function () { 1334 setTimeout(fixDropdownScroll, 50); 1335 setTimeout(alignDialCode, 100); 1336 }); 1337 1338 /* ---------- custom submission flow ---------- */ 1339 var form = input.closest("form"); 1340 if (!form) return; 1341 1342 var wrapper = form.closest(".w-form"); 1343 var doneMsg = wrapper ? wrapper.querySelector(".w-form-done") : null; 1344 var failMsg = wrapper ? wrapper.querySelector(".w-form-fail") : null; 1345 var submitBtn = form.querySelector('[type="submit"]'); 1346 1347 function showSuccess() { 1348 if (doneMsg) doneMsg.style.display = "block"; 1349 if (failMsg) failMsg.style.display = "none"; 1350 form.reset(); 1351 if (countrySelect) countrySelect.selectedIndex = 0; 1352 } 1353 function showError(msg) { 1354 if (failMsg) { 1355 failMsg.style.display = "block"; 1356 var div = failMsg.querySelector("div"); 1357 if (div && msg) div.textContent = msg; 1358 } 1359 if (doneMsg) doneMsg.style.display = "none"; 1360 } 1361 function setLoading(on) { 1362 if (!submitBtn) return; 1363 submitBtn.disabled = on; 1364 if (on) { 1365 submitBtn.dataset.originalText = submitBtn.value || submitBtn.textContent; 1366 if (submitBtn.value !== undefined) submitBtn.value = "Sending..."; 1367 else submitBtn.textContent = "Sending..."; 1368 } else { 1369 if (submitBtn.value !== undefined) submitBtn.value = submitBtn.dataset.originalText; 1370 else submitBtn.textContent = submitBtn.dataset.originalText; 1371 } 1372 } 1373 1374 function submitFormData() { 1375 var fd = new FormData(form); 1376 fd.set("phone", iti.getNumber()); 1377 fd.append("access_key", ACCESS_KEY); 1378 return fetch(SUBMIT_URL, { 1379 method: "POST", 1380 mode: "no-cors", 1381 body: fd 1382 }); 1383 } 1384 1385 form.addEventListener("submit", function (e) { 1386 e.preventDefault(); 1387 e.stopPropagation(); 1388 1389 input.value = iti.getNumber();
1390 setLoading(true); 1391 1392 if (SKIP_VERIFY) { 1393 submitFormData() 1394 .then(showSuccess) 1395 .catch(function (err) { 1396 console.error(err); 1397 showError("Something went wrong. Please try again."); 1398 }) 1399 .finally(function () { setLoading(false); }); 1400 return; 1401 } 1402 1403 grecaptcha.ready(function () { 1404 grecaptcha.execute(SITE_KEY, { action: ACTION }).then(function (token) { 1405 fetch(VERIFY_URL, { 1406 method: "POST", 1407 headers: { "Content-Type": "application/json" }, 1408 body: JSON.stringify({ 1409 event: { token: token, siteKey: SITE_KEY, expectedAction: ACTION } 1410 }) 1411 }) 1412 .then(function (res) { return res.json(); }) 1413 .then(function (verify) { 1414 if (!verify.success) { 1415 throw new Error(verify.message || "reCAPTCHA verification failed"); 1416 } 1417 return submitFormData(); 1418 }) 1419 .then(showSuccess) 1420 .catch(function (err) { 1421 console.error(err); 1422 showError("Something went wrong. Please try again."); 1423 }) 1424 .finally(function () { setLoading(false); }); 1425 }); 1426 }); 1427 }, true); 1428}); 1429</script>
1429 1430 1431<style> 1432 .iti { width: 100%; } 1433 1434 .iti__country-container { 1435 top: 0 !important; 1436 bottom: 0 !important; 1437 } 1438 .iti__selected-country { 1439 display: flex !important; 1440 background: transparent !important; 1441 border: none !important; 1442 padding-right: 8px !important; 1443 } 1444 .iti__selected-country-primary { 1445 display: flex !important; 1446 align-items: center !important; 1447 gap: 4px; 1448 padding: 0 !important; 1449 } 1450 .iti .iti__selected-dial-code { 1451 color: #9e9e9e !important; 1452 font-size: 1rem !important; 1453 } 1454 .iti .iti__arrow { 1455 border-top-color: #9e9e9e !important; 1456 margin-left: 2px; 1457 } 1458 .iti input[type="tel"] { 1459 font-size: 1rem !important; 1460 } 1461 .iti__flag, 1462 .iti__globe { 1463 display: none !important; 1464 } 1465 .iti__dropdown-content { 1466 max-height: 300px !important; 1467 overflow: hidden !important; 1468 } 1469 .iti__country-list { 1470 max-height: 240px !important; 1471 overflow-y: scroll !important; 1472 overscroll-behavior: contain; 1473 -webkit-overflow-scrolling: touch; 1474 } 1475</style> 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485<style> 1486 @media screen and (max-width: 767px) { 1487 [data-carousel="track"] { 1488 display: flex; 1489 flex-wrap: nowrap; 1490 overflow-x: auto; 1491 scroll-snap-type: x mandatory; 1492 -webkit-overflow-scrolling: touch; 1493 gap: 16px; 1494 padding-bottom: 8px; 1495 scrollbar-width: none; 1496 } 1497 [data-carousel="track"]::-webkit-scrollbar { display: none; } 1498 1499 [data-carousel-card] { 1500 flex: 0 0 100%; 1501 scroll-snap-align: center; 1502 } 1503 1504 [data-carousel-dots] { display: flex !important; } 1505 } 1506 1507 [data-carousel-dots] { 1508 display: none; 1509 justify-content: center; 1510 gap: 8px; 1511 margin-top: 16px; 1512 } 1513 [data-carousel-dot] { 1514 width: 8px; height: 8px; border-radius: 50%; 1515 background: #4b4b4b; transition: background 0.2s; 1516 } 1517 [data-carousel-dot].is-active { background: #7c5cff; } 1518</style> 1519
1520<script> 1521document.addEventListener("DOMContentLoaded", () => { 1522 document.querySelectorAll('[data-carousel="track"]').forEach((track) => { 1523 const dotsWrap = track.parentElement.querySelector('[data-carousel-dots]') 1524 || track.closest("section")?.querySelector('[data-carousel-dots]'); 1525 if (!dotsWrap) return; 1526 const dots = dotsWrap.querySelectorAll('[data-carousel-dot]'); 1527 if (!dots.length) return; 1528 1529 const setActive = (i) => dots.forEach((d, n) => d.classList.toggle("is-active", n === i)); 1530 1531 setActive(0); 1532 1533 track.addEventListener("scroll", () => { 1534 const i = Math.round(track.scrollLeft / (track.scrollWidth / dots.length)); 1535 setActive(i); 1536 }); 1537 }); 1538}); 1539</script>
1539<style> 1540 /* ============================================== */ 1541 /* âï¸ EDIT THESE VALUES TO TWEAK THE SLIDER */ 1542 /* ============================================== */ 1543 1544 /* Side card peek â more % = more overlap = LESS visible */ 1545 .testimonials_section.tswp-on .swiper-slide-prev { transform: scale(0.92) translateX(40%) !important; } 1546 .testimonials_section.tswp-on .swiper-slide-next { transform: scale(0.92) translateX(-40%) !important; } 1547 /* ============================================== */ 1548 .testimonials_section { overflow: hidden !important; } 1549 .testimonials_section .swiper { width: 100%; overflow: visible; padding: 30px 0; } 1550 .testimonials_section .swiper-wrapper { display: flex; align-items: center; } 1551 1552 /* Slides are only hidden AFTER Swiper actually initializes 1553 (.tswp-on is added by JS right before init). Before that, 1554 slides render normally â fixes the blank-on-first-load bug. */ 1555 .testimonials_section.tswp-on .swiper-slide { 1556 flex-shrink: 0 !important; 1557 height: auto !important; 1558 opacity: 0; 1559 transform: scale(0.88); 1560 pointer-events: none; 1561 z-index: 0; 1562 transition: transform 0.5s ease, opacity 0.4s ease, 1563 background-color 0.4s ease, box-shadow 0.4s ease; 1564 } 1565 .testimonials_section.tswp-on .swiper-slide-prev, 1566 .testimonials_section.tswp-on .swiper-slide-next { 1567 opacity: 0.7; 1568 pointer-events: auto; 1569 z-index: 1; 1570 } 1571 .testimonials_section.tswp-on .swiper-slide-active { 1572 transform: scale(1) !important; 1573 background-color: #FFFFFF !important; 1574 opacity: 1; 1575 pointer-events: auto; 1576 box-shadow: 0 16px 48px rgba(15, 15, 25, 0.10); 1577 z-index: 2; 1578 } 1579 .testimonials_section .w-dyn-empty { display: none; } 1580 1581 /* Progress bar â duration auto-synced to autoplay delay via JS */ 1582 @keyframes tswpProgress { from { width: 0%; } to { width: 100%; } } 1583 .testimonials_section.tswp-on .swiper-slide-active .testimonials_progress-bar { 1584 animation: tswpProgress var(--tswp-duration, 7s) linear forwards; 1585 } 1586 1587 /* ===== NAVIGATION ARROWS ===== */ 1588 .testimonials_nav { 1589 width: 100%; 1590 display: flex; 1591 justify-content: center; 1592 align-items: center; 1593 gap: 16px; 1594 margin-top: -8px; 1595 } 1596 .testimonials_arrow { 1597 width: 52px; 1598 height: 52px; 1599 border-radius: 50%; 1600 border: 1px solid rgba(15, 15, 25, 0.12); 1601 background: #FFFFFF; 1602 color: #1a1a2e; 1603 display: flex; 1604 align-items: center; 1605 justify-content: center; 1606 cursor: pointer; 1607 padding: 0; 1608 transition: background-color 0.25s ease, color 0.25s ease, 1609 border-color 0.25s ease, transform 0.15s ease; 1610 } 1611 .testimonials_arrow:hover { 1612 background: #7b52e6; 1613 border-color: #7b52e6; 1614 color: #FFFFFF; 1615 } 1616 .testimonials_arrow:active { transform: scale(0.94); } 1617 .testimonials_arrow svg { display: block; } 1618</style> 1619
1620<script src="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.js"></script>
vendor: 1 bytes, line 1620
1620
1621<script> 1622(function () { 1623 var tries = 0; 1624 var MAX_TRIES = 50; // 50 à 200ms = retries for up to 10 seconds 1625 1626 function initTestimonialsSwiper() { 1627 var section = document.querySelector('.testimonials_section'); 1628 1629 function retry() { 1630 if (tries++ < MAX_TRIES) setTimeout(initTestimonialsSwiper, 200); 1631 else console.warn('[Testimonials] Init gave up â slides left visible as fallback.'); 1632 } 1633 1634 if (!section) return retry(); 1635 if (section.dataset.tswpReady) return; // prevent double-init 1636 if (typeof Swiper === 'undefined') return retry(); 1637 1638 var dynList = section.querySelector('.w-dyn-list'); 1639 if (!dynList) return retry(); 1640 1641 /* ============================================== */ 1642 /* âï¸ TIMING â edit these two */ 1643 var AUTOPLAY_DELAY = 13000; // â how long each slide stays (ms) 1644 var TRANSITION_SPEED = 700; // â slide animation duration (ms) 1645 /* ============================================== */ 1646 1647 var swiperWrapper = dynList.parentElement; 1648 var swiperEl = swiperWrapper.parentElement; 1649 1650 section.style.setProperty('--tswp-duration', (AUTOPLAY_DELAY / 1000) + 's'); 1651 1652 // Move CMS items to be direct children of swiper-wrapper 1653 section.querySelectorAll('.w-dyn-item').forEach(function (item) { 1654 item.classList.add('swiper-slide'); 1655 swiperWrapper.appendChild(item); 1656 }); 1657 swiperWrapper.querySelectorAll('.w-dyn-list, .w-dyn-empty').forEach(function (w) { w.remove(); }); 1658 1659 var slideCount = swiperWrapper.querySelectorAll('.swiper-slide').length; 1660 console.log('[Testimonials] Found ' + slideCount + ' slides'); 1661 if (!slideCount) return retry(); // CMS items not rendered yet â try again 1662 1663 // Build navigation arrows (bottom center) 1664 var nav = document.createElement('div'); 1665 nav.className = 'testimonials_nav'; 1666 nav.innerHTML = 1667 '<button class="testimonials_arrow testimonials_arrow-prev" aria-label="Previous testimonial">' + 1668 '<svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M15 18l-6-6 6-6" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/></svg>' + 1669 '</button>' + 1670 '<button class="testimonials_arrow testimonials_arrow-next" aria-label="Next testimonial">' + 1671 '<svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M9 18l6-6-6-6" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"/></svg>' + 1672 '</button>'; 1673 swiperEl.parentElement.appendChild(nav); 1674 1675 // Turn on "slider mode" CSS only now that init is guaranteed 1676 section.classList.add('tswp-on'); 1677 1678 var swiper = new Swiper(swiperEl, { 1679 slidesPerView: 'auto', 1680 centeredSlides: true, 1681 spaceBetween: 24, 1682 loop: true, 1683 speed: TRANSITION_SPEED, 1684 grabCursor: true, 1685 watchSlidesProgress: true, 1686 observer: true, // re-layout if Webflow changes the DOM 1687 observeParents: true, 1688 navigation: { 1689 prevEl: nav.querySelector('.testimonials_arrow-prev'), 1690 nextEl: nav.querySelector('.testimonials_arrow-next') 1691 }, 1692 autoplay: { 1693 delay: AUTOPLAY_DELAY, 1694 disableOnInteraction: false, 1695 pauseOnMouseEnter: false 1696 } 1697 }); 1698 1699 // Recalculate card widths once images/fonts fully load 1700 if (document.readyState === 'complete') { 1701 swiper.update(); 1702 } else { 1703 window.addEventListener('load', function () { swiper.update(); }); 1704 } 1705 1706 section.dataset.tswpReady = '1'; 1707 } 1708 1709 if (document.readyState === 'loading') { 1710 document.addEventListener('DOMContentLoaded', initTestimonialsSwiper); 1711 } else { 1712 initTestimonialsSwiper(); 1713 } 1714})(); 1715</script>
1715 1716 1717 1718
1719<script> 1720(function () { 1721 if (!document.getElementById('dt-styles')) { 1722 var style = document.createElement('style'); 1723 style.id = 'dt-styles'; 1724 style.textContent = [ 1725 '.digital-twin_step .digital-twin_step-image-wrap { opacity: 0.25; transition: opacity 0.4s ease, outline-color 0.3s ease; outline: 0.75px solid transparent; outline-offset: -0.75px; border-radius: 12px; }', 1726 '.digital-twin_step.is-active .digital-twin_step-image-wrap { opacity: 1 !important; outline-color: #7C5CFF !important; }', 1727 '.digital-twin_step .digital-twin_step-number { opacity: 0.25; transition: opacity 0.4s ease; }', 1728 '.digital-twin_step.is-active .digital-twin_step-number { opacity: 1 !important; }', 1729 '.digital-twin_step .digital-twin_step-title { opacity: 0.25; transition: opacity 0.4s ease, color 0.3s ease; }', 1730 '.digital-twin_step.is-active .digital-twin_step-title { opacity: 1 !important; color: #B45EFA !important; }', 1731 '.digital-twin_step .digital-twin_step-text { opacity: 0.25; transition: opacity 0.4s ease; }', 1732 '.digital-twin_step.is-active .digital-twin_step-text { opacity: 1 !important; }', 1733 1734 /* Marker row: fixed height, dot centered. No z-index on the marker 1735 itself so all dots paint above the line. */ 1736 '.digital-twin_step .digital-twin_step-marker { position: relative !important; z-index: auto !important; height: 16px !important; display: flex !important; align-items: center !important; }', 1737 '.digital-twin_step .digital-twin_step-marker-dot { position: relative !important; z-index: 2 !important; opacity: 1; width: 16px; height: 16px; border-radius: 50%; background-color: #fff; border: 2px solid rgba(15,15,25,0.2); box-sizing: border-box; transition: background-color 0.3s ease, border-color 0.3s ease; }', 1738 '.digital-twin_step.is-active .digital-twin_step-marker-dot { background-color: #B45EFA !important; border-color: #B45EFA !important; }', 1739 1740 /* THE ONLY CHANGE: only the FIRST step draws the line (one single 1741 line = no doubled dashes), same position on the marker row at the 1742 dot centre. Round dots instead of dashes. */ 1743 '.digital-twin_step .digital-twin_step-marker::before { display: none; }', 1744 '.digital-twin_step:first-child .digital-twin_step-marker::before { display: block; content: ""; position: absolute; top: 50%; left: 8px; width: 100vw; height: 3px; transform: translateY(-50%); background-image: radial-gradient(circle, rgba(15,15,25,0.25) 1.5px, transparent 1.5px); background-size: 12px 3px; background-repeat: repeat-x; background-position: left center; z-index: 0; pointer-events: none; }', 1745 1746 /* Clip the overshoot so the line never escapes the steps container */ 1747 '.digital-twin_steps { position: relative !important; overflow: hidden !important; }', 1748 1749 '@media (max-width: 991px) {', 1750 ' .digital-twin_steps { grid-template-columns: 1fr !important; gap: 32px !important; overflow: visible !important; }', 1751 /* Vertical dotted line on mobile: drawn on the whole steps container */ 1752 ' .digital-twin_step:first-child .digital-twin_step-marker::before { display: none !important; }', 1753 ' .digital-twin_steps::before { content: ""; position: absolute; top: 8px; bottom: 8px; left: 6px; width: 3px; background-image: radial-gradient(circle, rgba(15,15,25,0.25) 1.5px, transparent 1.5px); background-size: 3px 12px; background-repeat: repeat-y; background-position: center top; z-index: 0; pointer-events: none; }', 1754 ' .digital-twin_step { display: grid !important; grid-template-columns: 14px 1fr !important; column-gap: 16px !important; row-gap: 16px !important; }', 1755 ' .digital-twin_step .digital-twin_step-image-wrap { grid-column: 1 / -1 !important; display: block !important; width: 100% !important; max-height: 0 !important; opacity: 0 !important; overflow: hidden !important; margin: 0 !important; transition: max-height 0.55s cubic-bezier(0.4,0,0.2,1), opacity 0.4s ease, margin 0.4s ease !important; }', 1756 /* MOBILE IMAGE FIX: no fixed height, generous max-height, contain fit */ 1757 ' .digital-twin_step.is-active .digital-twin_step-image-wrap { max-height: 600px !important; opacity: 1 !important; }', 1758 ' .digital-twin_step .digital-twin_step-image-wrap img { width: 100% !important; height: auto !important; max-height: none !important; object-fit: contain !important; display: block !important; }', 1759 ' .digital-twin_step .digital-twin_step-marker { display: flex !important; grid-column: 1 !important; height: auto !important; width: 14px !important; align-self: start !important; padding-top: 6px !important; justify-content: flex-start !important; }', 1760 ' .digital-twin_step .digital-twin_step-content { grid-column: 2 !important; }', 1761 ' .digital-twin_step .digital-twin_step-text { display: block !important; max-height: 0 !important; opacity: 0 !important; overflow: hidden !important; margin-top: 0 !important; transition: max-height 0.5s cubic-bezier(0.4,0,0.2,1), opacity 0.35s ease, margin 0.4s ease !important; }', 1762 ' .digital-twin_step.is-active .digital-twin_step-text { max-height: 400px !important; opacity: 1 !important; margin-top: 8px !important; }', 1763 '}' 1764 ].join('\n'); 1765 document.head.appendChild(style); 1766 } 1767
1768 function init() { 1769 var steps = document.querySelectorAll('.digital-twin_step'); 1770 if (!steps.length) return; 1771 1772 function setActive(target) { 1773 steps.forEach(function (s) { s.classList.remove('is-active'); }); 1774 target.classList.add('is-active'); 1775 } 1776 setActive(steps[0]); 1777 1778 var isMobile = !window.matchMedia('(hover: hover)').matches; 1779 1780 if (isMobile) { 1781 // Scroll-triggered: whichever step crosses the center band of the 1782 // viewport becomes active, one by one as the user scrolls. 1783 var observer = new IntersectionObserver(function (entries) { 1784 entries.forEach(function (entry) { 1785 if (entry.isIntersecting) { 1786 setActive(entry.target); 1787 } 1788 }); 1789 }, { 1790 root: null, 1791 // Narrow horizontal band around the vertical center of the screen â 1792 // a step "activates" when it crosses that band. 1793 rootMargin: '-45% 0px -45% 0px', 1794 threshold: 0 1795 }); 1796 1797 steps.forEach(function (step) { observer.observe(step); }); 1798 } else { 1799 steps.forEach(function (step) { 1800 step.addEventListener('mouseenter', function () { setActive(step); }); 1801 }); 1802 } 1803 } 1804 1805 if (document.readyState === 'loading') { 1806 document.addEventListener('DOMContentLoaded', init); 1807 } else { 1808 init(); 1809 } 1810})(); 1811</script>
1811 1812 1813 1814<!-- ============================================================ 1815 VCX VALUE-CHAIN CARDS â pure CSS expansion. 1816 Desktop (hover devices): expand on hover, +/à icon HIDDEN, 1817 panel right padding reclaimed (icon space not needed). 1818 Tablet/mobile (touch): tap toggles .is-open, icon visible. 1819 The +/à glyph is drawn with two CSS bars (::before/::after) 1820 so it is always perfectly centered in its circle. 1821 Open card takes 50% of the row (--vcx-grow: 3). 1822 THE WHITE BOX HAS A FIXED HEIGHT (--vcx-panel-h) in REM â 1823 identical on all 4 cards at every screen size. 1824 ============================================================ --> 1825<style> 1826 .vcx-row { align-items: stretch; } 1827 .vcx-card { 1828 --vcx-ease: cubic-bezier(0.33, 1, 0.68, 1); 1829 --vcx-time: 0.7s; 1830 --vcx-grow: 3; /* âï¸ open card width: 3 = 50% of row */ 1831 } 1832 1833 /* ---- FIXED WHITE-BOX HEIGHT (the "X") â âï¸ edit these ---- 1834 In rem so it scales with the text: 12rem = 192px at default. */ 1835 .vcx-card { --vcx-panel-h: 12rem; } /* desktop */ 1836 @media (min-width: 768px) and (max-width: 991px) { 1837 .vcx-card { --vcx-panel-h: 13rem; } /* tablet */ 1838 } 1839 @media (max-width: 767px) { 1840 .vcx-card { --vcx-panel-h: 11rem; } /* mobile */ 1841 } 1842 /* Every expanded panel opens to exactly this height: */ 1843 .vcx-card.is-open .vcx-panel { min-height: var(--vcx-panel-h); } 1844 1845 /* ---- description: hidden state + reveal motion ---- */ 1846 .vcx-desc { 1847 padding-right: 0; 1848 transform: translateY(10px); 1849 transition: 1850 opacity 0.25s ease, 1851 transform 0.45s var(--vcx-ease), 1852 padding var(--vcx-time) var(--vcx-ease); 1853 } 1854 /* Width = final expanded panel inner width, constant at any given 1855 viewport size, so lines never re-wrap during the animation. 1856 Open card = 50% of (container - gaps); container = min(100vw - 4rem, 80rem). */ 1857 @media (min-width: 992px) { 1858 .vcx-desc { width: min(calc(50vw - 114px), 558px); max-width: none; } 1859 } 1860 @media (min-width: 768px) and (max-width: 991px) { 1861 .vcx-desc { width: calc(50vw - 160px); max-width: none; } 1862 } 1863 1864 /* ---- open state (shared by hover + tap) ---- */ 1865 .vcx-card.is-open .vcx-desc { 1866 opacity: 1; 1867 transform: translateY(0); 1868 padding-top: 10px; 1869 transition: 1870 opacity 0.45s ease 0.22s, 1871 transform 0.6s var(--vcx-ease) 0.18s, 1872 padding var(--vcx-time) var(--vcx-ease); 1873 } 1874 .vcx-card.is-open { flex-grow: var(--vcx-grow); } 1875 .vcx-card.is-open .vcx-panel { 1876 grid-template-rows: auto 1fr; 1877 background-color: #ffffff; 1878 background-image: none; 1879 color: #0f0f12; 1880 } 1881 1882 /* Desktop-only hover â scoped to real hover devices so tablets 1883 never get "sticky hover" fighting the tap state. */ 1884 @media (hover: hover) and (pointer: fine) { 1885 /* icon is hidden on desktop â reclaim its reserved space so 1886 the text can use the full panel width */ 1887 .vcx-panel { padding-right: 28px; } 1888 .vcx-icon { display: none !important; } 1889 1890 .vcx-card:hover { flex-grow: var(--vcx-grow); } 1891 .vcx-card:hover .vcx-panel { 1892 min-height: var(--vcx-panel-h); 1893 grid-template-rows: auto 1fr; 1894 background-color: #ffffff; 1895 background-image: none; 1896 color: #0f0f12; 1897 } 1898 .vcx-card:hover .vcx-desc { 1899 opacity: 1; 1900 transform: translateY(0); 1901 padding-top: 10px; 1902 transition: 1903 opacity 0.45s ease 0.22s, 1904 transform 0.6s var(--vcx-ease) 0.18s, 1905 padding var(--vcx-time) var(--vcx-ease); 1906 } 1907 .vcx-card:hover .vcx-panel::before, 1908 .vcx-card:hover .vcx-panel::after { opacity: 1; } 1909 .vcx-card:hover .vcx-img { transform: scale(1.04); } 1910 } 1911 1912 /* inverted corner notches â round the image's bottom corners 1913 where it meets the white panel (12px = card radius) */ 1914 .vcx-panel::before, 1915 .vcx-panel::after { 1916 content: ""; 1917 position: absolute; 1918 top: -12px; 1919 width: 12px; 1920 height: 12px; 1921 opacity: 0; 1922 pointer-events: none; 1923 transition: opacity 0.4s ease; 1924 } 1925 .vcx-panel::before { 1926 left: 0; 1927 background: radial-gradient(circle at 100% 0, rgba(255,255,255,0) 12px, #ffffff 12.5px); 1928 } 1929 .vcx-panel::after { 1930 right: 0; 1931 background: radial-gradient(circle at 0 0, rgba(255,255,255,0) 12px, #ffffff 12.5px); 1932 } 1933 .vcx-card.is-open .vcx-panel::before, 1934 .vcx-card.is-open .vcx-panel::after { opacity: 1; } 1935 1936 /* subtle image zoom â same clock as the card growth */ 1937 .vcx-img { transition: transform var(--vcx-time) var(--vcx-ease); } 1938 .vcx-card.is-open .vcx-img { transform: scale(1.04); } 1939 1940 /* ---- plus icon (touch only) ---- 1941 The +/à is drawn with two centered bars instead of the "+" 1942 text character (the font glyph sits off-center vertically). 1943 The whole circle rotates 45° into an à when open. */ 1944 .vcx-icon { 1945 font-size: 0 !important; /* hide the text "+" glyph */ 1946 transition: 1947 transform 0.5s var(--vcx-ease), 1948 background-color 0.3s ease, 1949 color 0.3s ease, 1950 border-color 0.3s ease; 1951 } 1952 .vcx-icon::before, 1953 .vcx-icon::after { 1954 content: ""; 1955 position: absolute; 1956 left: 50%; 1957 top: 50%; 1958 background-color: currentColor; 1959 border-radius: 1px; 1960 } 1961 .vcx-icon::before { width: 14px; height: 1.5px; transform: translate(-50%, -50%); } 1962 .vcx-icon::after { width: 1.5px; height: 14px; transform: translate(-50%, -50%); } 1963 .vcx-card.is-open .vcx-icon { 1964 transform: rotate(45deg); 1965 color: #0f0f12; 1966 border-color: rgba(15, 15, 18, 0.3); 1967 background-color: rgba(15, 15, 18, 0.06); 1968 } 1969 1970 /* mobile: stacked cards grow taller when opened â 1971 âï¸ 400px = open card height (bigger image area) */ 1972 @media (max-width: 767px) { 1973 .vcx-card.is-open { height: 400px; } 1974 .vcx-desc { width: auto; } 1975 } 1976 1977 @media (prefers-reduced-motion: reduce) { 1978 .vcx-card, .vcx-panel, .vcx-desc, .vcx-img, .vcx-icon, 1979 .vcx-panel::before, .vcx-panel::after { transition: none !important; } 1980 } 1981</style> 1982
1983<script> 1984(function () { 1985 // Touch devices only â desktop is 100% CSS :hover. 1986 if (window.matchMedia('(hover: hover) and (pointer: fine)').matches) return; 1987 var cards = document.querySelectorAll('[data-vcx-card]'); 1988 if (!cards.length) return; 1989 cards.forEach(function (card) { 1990 card.addEventListener('click', function () { 1991 var wasOpen = card.classList.contains('is-open'); 1992 cards.forEach(function (c) { c.classList.remove('is-open'); }); 1993 if (!wasOpen) card.classList.add('is-open'); 1994 }); 1995 }); 1996})(); 1997</script>
1997 1998 1999 2000
2001<script> 2002(function () { 2003 function setup(stage) { 2004 var map = [ 2005 ['vx-circle-top', 'vx-label-top', 'top'], 2006 ['vx-circle-left', 'vx-label-left', 'left'], 2007 ['vx-circle-right', 'vx-label-right', 'right'] 2008 ]; 2009 2010 map.forEach(function (m) { 2011 var c = stage.querySelector('.' + m[0]); 2012 if (c && !c.querySelector('.vx-fill')) { 2013 var f = document.createElement('div'); 2014 f.className = 'vx-fill'; 2015 c.appendChild(f); 2016 } 2017 }); 2018 2019 var mqMobile = window.matchMedia('(max-width: 1100px)'); 2020 2021 /* ---- desktop hover â unchanged from before ---- */ 2022 map.forEach(function (m) { 2023 var c = stage.querySelector('.' + m[0]); 2024 if (!c) return; 2025 c.addEventListener('mouseenter', function () { 2026 if (stage.classList.contains('vx-on')) stage.setAttribute('data-active', m[2]); 2027 }); 2028 c.addEventListener('mouseleave', function () { 2029 if (stage.classList.contains('vx-on')) stage.setAttribute('data-active', 'center'); 2030 }); 2031 }); 2032 2033 /* ---- mobile/tablet: tap a circle (or its label) to reveal its 2034 paragraph below the venn. No-op above 1100px so desktop's 2035 hover behaviour above is completely untouched. ---- */ 2036 map.forEach(function (m) { 2037 var c = stage.querySelector('.' + m[0]); 2038 var l = stage.querySelector('.' + m[1]); 2039 [c, l].forEach(function (el) { 2040 if (!el) return; 2041 el.addEventListener('click', function () { 2042 if (!mqMobile.matches) return; 2043 if (!stage.classList.contains('vx-on')) return; 2044 stage.setAttribute('data-active', m[2]); 2045 }); 2046 }); 2047 }); 2048 2049 /* ---- relocate the panels below the stage on mobile/tablet, 2050 restore them inside the stage (desktop side layout) above 2051 1100px. All three panels get wrapped in a single 2052 .vx-panel-wrap (CSS Grid, all children on the same 2053 grid-area:1/1) so the space is reserved at all times and 2054 tapping only crossfades opacity â no layout shift. Same 2055 physical-move technique used for .hiw_tabs. ---- */ 2056 var panelKeys = ['top', 'left', 'right']; 2057 var panels = {}; 2058 panelKeys.forEach(function (k) { 2059 panels[k] = stage.querySelector('.vx-panel-' + k); 2060 }); 2061 2062 function getWrap() { 2063 var wrap = stage.parentElement.querySelector(':scope > .vx-panel-wrap'); 2064 if (!wrap) { 2065 wrap = document.createElement('div'); 2066 wrap.className = 'vx-panel-wrap'; 2067 stage.parentElement.insertBefore(wrap, stage.nextSibling); 2068 } 2069 return wrap; 2070 } 2071 2072 function placeMobile() { 2073 var wrap = getWrap(); 2074 panelKeys.forEach(function (k) { 2075 var p = panels[k]; 2076 if (!p) return; 2077 p.classList.add('vx-panel-relocated'); 2078 wrap.appendChild(p); 2079 }); 2080 } 2081 2082 function placeDesktop() { 2083 panelKeys.forEach(function (k) { 2084 var p = panels[k]; 2085 if (!p) return; 2086 p.classList.remove('vx-panel-relocated'); 2087 stage.appendChild(p); 2088 }); 2089 } 2090 2091 function syncPanelLayout() { 2092 if (mqMobile.matches) placeMobile(); 2093 else placeDesktop(); 2094 } 2095 syncPanelLayout(); 2096 if (mqMobile.addEventListener) { 2097 mqMobile.addEventListener('change', syncPanelLayout); 2098 } else if (mqMobile.addListener) { 2099 mqMobile.addListener(syncPanelLayout); 2100 } 2101 2102 function activate() { 2103 stage.classList.add('vx-on'); 2104 stage.setAttribute('data-active', 'center'); 2105 } 2106 if (window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches) { 2107 activate(); 2108 return; 2109 } 2110 if ('IntersectionObserver' in window) { 2111 var io = new IntersectionObserver(function (entries) { 2112 entries.forEach(function (e) { 2113 if (e.isIntersecting) { activate(); io.disconnect(); } 2114 }); 2115 }, { threshold: 0.55 }); 2116 io.observe(stage); 2117 } else { 2118 activate(); 2119 } 2120 } 2121 function init() { 2122 document.querySelectorAll('.vx-stage').forEach(setup); 2123 } 2124 document.readyState === 'loading' 2125 ? document.addEventListener('DOMContentLoaded', init) 2126 : init(); 2127})(); 2128</script>
2128 2129 2130 2131 2132 2133
2134<script> 2135(function () { 2136 document.querySelectorAll('.badge-zone').forEach(function (zone) { 2137 var id = zone.getAttribute('data-badge'); 2138 var graph = document.querySelector('.hero-graph[data-badge="' + id + '"]'); 2139 if (!graph) return; 2140 zone.addEventListener('mouseenter', function () { 2141 graph.style.opacity = '1'; 2142 }); 2143 zone.addEventListener('mouseleave', function () { 2144 graph.style.opacity = '0'; 2145 }); 2146 }); 2147})(); 2148</script>
2148 2149 2150 2151 2152
2153<script> 2154(function () { 2155 function I() { 2156 var s = document.querySelector('[data-htw]'); 2157 if (!s) return; 2158 var r = s.querySelector('.htw-row'), 2159 L = s.querySelectorAll('.htw-link'), 2160 P = s.querySelectorAll('.htw-pane'); 2161 if (!r || !L.length || !P.length) return; 2162 2163 P[0].parentElement.style.cssText += ';position:relative;display:grid'; 2164 2165 if (!document.getElementById('htw-x')) { 2166 var st = document.createElement('style'); 2167 st.id = 'htw-x'; 2168 st.textContent = '.htw-row{position:relative}.htw-link{transition:color .3s ease!important;border-bottom-color:transparent!important}.htw-link.htw-on{color:#B45EFA!important}.htw-i{position:absolute;bottom:-1px;left:0;height:2px;background:#B45EFA;pointer-events:none}.htw-pane{display:block!important;grid-area:1/1;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .45s ease-out,transform .45s ease-out}.htw-pane.htw-on{opacity:1;transform:none;pointer-events:auto;transition:opacity .4s ease-out .08s,transform .5s ease-out .08s}'; 2169 document.head.appendChild(st); 2170 } 2171 2172 var i = r.querySelector('.htw-i'); 2173 if (!i) { i = document.createElement('span'); i.className = 'htw-i'; r.appendChild(i); } 2174 var T = 'transform .5s ease-out,width .5s ease-out'; 2175 function M(l, a) { 2176 if (!l) return; 2177 var b = l.getBoundingClientRect(), p = r.getBoundingClientRect(); 2178 i.style.transition = a ? T : 'none'; 2179 i.style.transform = 'translateX(' + (b.left - p.left) + 'px)'; 2180 i.style.width = b.width + 'px'; 2181 if (!a) { void i.offsetWidth; i.style.transition = T; } 2182 } 2183 2184 /* ================= VIDEO AUTO-ADVANCE ================= */ 2185 var cur = 0, inView = false; 2186 var V = []; 2187 P.forEach(function (p, j) { 2188 var v = p.querySelector('video'); 2189 V[j] = v || null; 2190 if (!v) return; 2191 v.removeAttribute('loop'); v.loop = false; /* loop off so "ended" fires */ 2192 v.muted = true; 2193 v.addEventListener('ended', function () { 2194 if (j !== cur || !inView) return; 2195 A((cur + 1) % L.length, true); /* 1â2â3â1 */ 2196 }); 2197 }); 2198 function playOnly(n) { 2199 V.forEach(function (v, j) { 2200 if (!v) return; 2201 if (j === n && inView) { 2202 try { v.currentTime = 0; } catch (e) {} 2203 var pr = v.play(); 2204 if (pr && pr.catch) pr.catch(function () {}); 2205 } else { 2206 v.pause(); 2207 } 2208 }); 2209 } 2210 /* ====================================================== */ 2211 2212 function A(n, anim) { 2213 cur = n; 2214 L.forEach(function (l, j) { l.classList.toggle('htw-on', j === n); }); 2215 P.forEach(function (p, j) { p.classList.toggle('htw-on', j === n); }); 2216 M(L[n], anim !== false); 2217 playOnly(n); 2218 }
2219 L.forEach(function (l, n) { 2220 l.addEventListener('click', function (e) { e.preventDefault(); A(n, true); }); 2221 }); 2222 2223 var k = 0; 2224 for (var n = 0; n < L.length; n++) if (L[n].classList.contains('htw-on')) { k = n; break; } 2225 A(k, false); 2226 2227 /* only play/cycle while the section is actually on screen */ 2228 if ('IntersectionObserver' in window) { 2229 new IntersectionObserver(function (es) { 2230 es.forEach(function (e) { 2231 inView = e.isIntersecting; 2232 playOnly(cur); 2233 }); 2234 }, { threshold: 0.25 }).observe(s); 2235 } else { inView = true; playOnly(cur); } 2236 2237 var t, R = function () { 2238 clearTimeout(t); 2239 t = setTimeout(function () { M(s.querySelector('.htw-link.htw-on') || L[0], 0); }, 80); 2240 }; 2241 addEventListener('resize', R); 2242 addEventListener('load', R); 2243 } 2244 document.readyState === 'loading' ? document.addEventListener('DOMContentLoaded', I) : I(); 2245})(); 2246</script>
2246 2247 2248 2249 2250 2251 2252
2253<script> 2254(function () { 2255 var css = document.createElement('style'); 2256 css.textContent = 2257 '.hiw_tab-link .hiw_tab-top img{display:none!important;flex-shrink:0!important;width:32px!important;height:32px!important;object-fit:contain!important;border-radius:8px!important;background-color:rgba(108,71,230,0.15)!important;padding:4px!important;box-sizing:border-box!important}' + 2258 '.hiw_tab-link.w--current .hiw_tab-top img{display:block!important}' + 2259 '.hiw_tabs-menu::before{display:none!important}' + 2260 '@media(max-width:767px){.hiw_tabs-menu>div{display:none!important}}' + 2261 '@media(min-width:768px){.hiw_sticky-outer{height:200vh!important;position:relative!important}.hiw_sticky-inner{position:sticky!important;top:0!important;height:100vh!important;display:flex!important;flex-direction:column!important;justify-content:center!important}}'; 2262 document.head.appendChild(css); 2263 function init() { 2264 document.querySelectorAll('.hiw_tabs').forEach(function (c) { 2265 var links = c.querySelectorAll('.hiw_tab-link'); 2266 var panes = c.querySelectorAll('.hiw_tab-pane'); 2267 if (!links.length) return; 2268 if (!c.querySelector('.hiw_tab-link.w--current')) links[0].classList.add('w--current'); 2269 if (!c.querySelector('.hiw_tab-pane.w--tab-active') && panes[0]) panes[0].classList.add('w--tab-active'); 2270 function activate(idx) { 2271 links.forEach(function (l) { l.classList.remove('w--current'); }); 2272 panes.forEach(function (p) { p.classList.remove('w--tab-active'); }); 2273 links[idx].classList.add('w--current'); 2274 var t = links[idx].getAttribute('data-w-tab'); 2275 var pane = c.querySelector('.hiw_tab-pane[data-w-tab="' + t + '"]'); 2276 if (pane) pane.classList.add('w--tab-active'); 2277 } 2278 links.forEach(function (link, idx) { 2279 link.addEventListener('click', function (e) { e.preventDefault(); activate(idx); }); 2280 }); 2281 var wrap = document.querySelector('.hiw_sticky-outer'); 2282 if (!wrap) return; 2283 var ticking = false; 2284 function isDesktop() { return window.matchMedia('(min-width:768px)').matches; } 2285 function onScroll() { 2286 ticking = false; 2287 if (!isDesktop()) return; 2288 var rect = wrap.getBoundingClientRect(); 2289 var scrollable = wrap.offsetHeight - window.innerHeight; 2290 var progress = scrollable > 0 ? (-rect.top) / scrollable : 0; 2291 progress = Math.max(0, Math.min(1, progress)); 2292 var idx = Math.min(links.length - 1, Math.floor(progress * links.length)); 2293 if (!links[idx].classList.contains('w--current')) activate(idx); 2294 } 2295 function requestTick() { if (!ticking) { ticking = true; requestAnimationFrame(onScroll); } } 2296 window.addEventListener('scroll', requestTick, { passive: true }); 2297 window.addEventListener('resize', requestTick); 2298 onScroll(); 2299 }); 2300 } 2301 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); 2302 else init(); 2303})(); 2304</script>
2304<script src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8%2F689e5ba67671442434f3ca35%2F69f09b162c877ef8dd22fdb3%2Ftestimonials_swiper_init-1.0.0.js" type="text/javascript"></script>
2304<script src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8%2F689e5ba67671442434f3ca35%2F69f1d4404b3e166791adefe6%2Fhiw_tabs_indicator-1.0.0.js" type="text/javascript"></script>
2304<script src="https://cdn.prod.website-files.com/69d32cb2aba469d7fb2a1ab8%2F689e5ba67671442434f3ca35%2F69f344a6cf4b9649f7be77f8%2Fblog_filter_tabs-1.0.0.js" type="text/javascript"></script>
2304</body></html>
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.