
/* Energy Management — additive styles, V19 visual system preserved */
body{overflow-x:hidden}.header nav{gap:24px}.header nav a{white-space:nowrap}.em-hero{display:grid;grid-template-columns:1.02fr .98fr;align-items:center;gap:30px;min-height:690px;padding-top:74px;padding-bottom:100px}.em-hero-copy{z-index:2;position:relative}.em-kicker{color:#9ac2ff !important}.em-hero h1{color:#f7faff;font-size:clamp(47px,5.1vw,72px);letter-spacing:-.056em;line-height:1.05}.em-hero h1 em,.em-section h2 em,.em-cta h2 em{color:#8ab8ff;font-style:normal}.em-lead{font-size:18px;color:#d1deed;line-height:1.72;max-width:590px}.em-proof{color:#95accb;font-size:14px;max-width:560px}.em-hero .text-link{color:#9bc5ff}.em-hero-art{position:relative;max-width:570px;isolation:isolate}.em-hero-art svg{width:100%;height:auto;filter:drop-shadow(0 22px 38px rgba(0,0,0,.25))}.em-grid{position:absolute;inset:4%;background-image:linear-gradient(rgba(158,189,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(158,189,255,.06) 1px,transparent 1px);background-size:22px 22px;mask-image:radial-gradient(ellipse,#000,transparent 75%);z-index:-1}.em-art-note{color:#86a3c4;text-align:center;font-size:9px;letter-spacing:.15em}.em-band{border-top:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07);background:rgba(8,17,31,.4)}.em-band-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding:30px 0 36px}.em-band-grid>div{border-right:1px solid rgba(157,189,255,.14);padding-right:34px}.em-band-grid>div:last-child{border:0}.em-stat{color:#73a8ff;font-size:12px;display:block;margin-bottom:12px;font-weight:800}.em-band-grid strong{display:block;color:#fff;font-size:17px}.em-band-grid p{font-size:13px;color:#abbbd0;margin:8px 0 0}.em-section{padding-top:110px;padding-bottom:110px}.em-section-heading{max-width:810px}.em-section h2,.em-cta h2{font-size:clamp(38px,4.7vw,60px);line-height:1.1;letter-spacing:-.048em;color:#fff}.em-section-heading>p:not(.eyebrow){font-size:17px;line-height:1.72;color:#b9c9dc}.em-opportunities{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:34px}.em-opportunities article,.em-tech>div{background:rgba(255,255,255,.035);border:1px solid rgba(154,191,255,.15);padding:29px;border-radius:14px;backdrop-filter:blur(3px)}.em-opportunities article>span{font-size:10px;color:#91baff;letter-spacing:.15em;font-weight:700}.em-opportunities h3,.em-steps h3{color:#fff;font-size:19px;line-height:1.35;margin:15px 0 9px}.em-opportunities p,.em-tech p,.em-steps p{color:#bbcadc;font-size:14px;line-height:1.65;margin:0}.em-section-shaded{background:rgba(2,10,19,.24);border-top:1px solid rgba(255,255,255,.04);border-bottom:1px solid rgba(255,255,255,.04)}.em-approach{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:start}.em-steps{display:grid;gap:12px}.em-steps>div{display:grid;grid-template-columns:50px 1fr;column-gap:14px;padding:20px;border-bottom:1px solid rgba(154,191,255,.16)}.em-steps b{grid-row:span 2;display:flex;align-items:center;justify-content:center;background:rgba(58,105,192,.20);color:#9dc3ff;border-radius:10px;height:45px;font-size:12px}.em-steps h3{margin:0 0 5px}.em-tech{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:36px}.em-tech strong{display:block;color:white;font-size:16px;line-height:1.4;margin-bottom:12px}.em-cta{padding:85px 0 95px;background:rgba(4,11,22,.36);border-top:1px solid rgba(154,191,255,.1)}.em-cta .wrap{max-width:1152px}.em-cta h2{max-width:770px}.em-cta p:not(.eyebrow){color:#b7c8dd;font-size:17px;max-width:650px}.em-cta .em-fine{font-size:11px!important;opacity:.7;margin-top:24px}.energy-detail-link{display:inline-flex;align-items:center;gap:8px;margin:5px 0 22px;color:#a4c9ff;font-weight:700;font-size:14px}.energy-detail-link:hover{color:#fff}
@media(max-width:990px){.em-hero{grid-template-columns:1fr;gap:10px;padding-top:55px}.em-hero-art{max-width:550px;margin:0 auto}.em-approach{grid-template-columns:1fr;gap:28px}.em-tech{grid-template-columns:repeat(2,1fr)}.header nav{gap:12px}}
@media(max-width:640px){.em-hero{padding-top:30px;padding-bottom:65px;min-height:0}.em-hero h1{font-size:clamp(41px,10vw,58px)}.em-band-grid,.em-opportunities,.em-tech{grid-template-columns:1fr}.em-band-grid{gap:20px}.em-band-grid>div{border:0;border-bottom:1px solid rgba(157,189,255,.13);padding:0 0 18px}.em-section{padding-top:70px;padding-bottom:75px}.em-steps>div{padding:17px 4px}.em-cta{padding:60px 0}}


/* V2 service-page differentiation: charts, metrics, primary accents */
:root{--accent-green:#49d39f;--accent-yellow:#f2bf59;--accent-red:#ff7575;--accent-blue:#72b3ff;--card-bg:rgba(255,255,255,.04);--card-border:rgba(154,191,255,.15)}
.em-analytics-grid,.pp-dashboard-grid,.cbm-systems-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:18px;margin-top:38px;align-items:stretch}
.data-card,.metric-card,.risk-card,.status-card,.sys-card,.chart-card,.pie-card,.flow-card,.stack-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;padding:24px;backdrop-filter:blur(3px);box-shadow:0 12px 28px rgba(0,0,0,.12)}
.chart-header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:18px}.chart-header h3,.metric-cluster h3,.pie-card h3,.flow-card h3,.stack-card h3,.risk-card h3,.status-card h3,.sys-card h3{margin:0;color:#fff;font-size:18px;letter-spacing:-.02em}.chart-header p,.metric-cluster p,.pie-card p,.flow-card p,.stack-card p,.risk-card p,.status-card p,.sys-card p{margin:6px 0 0;color:#afc0d4;font-size:13px;line-height:1.55}.chart-tag{font-size:10px;font-weight:800;letter-spacing:.14em;color:#8eb9ff}
.trend-chart{height:280px;border-radius:12px;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.015));position:relative;overflow:hidden;border:1px solid rgba(154,191,255,.08)}
.trend-chart .gridline{position:absolute;left:18px;right:18px;height:1px;background:rgba(255,255,255,.08)}
.trend-chart .gridline.g1{top:22%}.trend-chart .gridline.g2{top:44%}.trend-chart .gridline.g3{top:66%}.trend-chart .gridline.g4{top:88%}
.trend-chart svg{position:absolute;inset:24px 20px 36px 20px;width:calc(100% - 40px);height:calc(100% - 60px)}
.trend-chart .legend{position:absolute;left:20px;bottom:12px;display:flex;gap:16px;flex-wrap:wrap;font-size:11px;color:#b8cada}.trend-chart .legend span:before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:-1px}.trend-chart .legend .l1:before{background:var(--accent-blue)}.trend-chart .legend .l2:before{background:var(--accent-yellow)}.trend-chart .legend .l3:before{background:var(--accent-green)}
.bar-series{display:flex;gap:9px;align-items:flex-end;height:160px;margin-top:18px;padding:6px 4px 0}.bar-series i{flex:1;border-radius:6px 6px 0 0;background:linear-gradient(180deg,#8eb9ff,#286af1);height:40%}.bar-series i:nth-child(2){height:52%}.bar-series i:nth-child(3){height:45%}.bar-series i:nth-child(4){height:76%}.bar-series i:nth-child(5){height:63%}.bar-series i:nth-child(6){height:84%;background:linear-gradient(180deg,#f5d06b,#c08d1c)}.bar-series i:nth-child(7){height:71%}.bar-labels{display:grid;grid-template-columns:repeat(7,1fr);gap:9px;font-size:11px;color:#91a8c6;margin-top:10px;text-align:center}
.metric-cluster{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.metric-card,.status-card{min-height:116px;display:flex;flex-direction:column;justify-content:space-between}.metric-card small,.status-card small{display:block;font-size:10px;letter-spacing:.14em;color:#8eb9ff;font-weight:800}.metric-card strong,.status-card strong{display:block;color:#fff;font-size:30px;letter-spacing:-.03em;line-height:1.05;margin:10px 0 4px}.metric-card p,.status-card p{font-size:12px;color:#afc0d4;margin:0}.metric-card.green strong{color:var(--accent-green)}.metric-card.yellow strong{color:var(--accent-yellow)}.metric-card.red strong{color:var(--accent-red)}
.pie-wrap{display:grid;grid-template-columns:170px 1fr;gap:20px;align-items:center}.pie{width:170px;height:170px;border-radius:50%;position:relative;background:conic-gradient(var(--accent-blue) 0 38%, var(--accent-yellow) 38% 62%, var(--accent-green) 62% 84%, var(--accent-red) 84% 100%)}.pie:after{content:"";position:absolute;inset:26px;background:#0f1a2c;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.05)}.pie span{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:13px;font-weight:700;z-index:1;text-align:center;line-height:1.3}
.legend-list{display:grid;gap:12px}.legend-item{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;color:#c8d6e6;font-size:13px}.legend-swatch{width:11px;height:11px;border-radius:50%}.legend-item b{color:#fff;font-size:13px}.legend-item em{font-style:normal;color:#9fb1c8;font-size:12px}
.flow-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:start;margin-top:18px}.flow-node{padding:16px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid rgba(154,191,255,.12);position:relative;min-height:118px}.flow-node:not(:last-child):after{content:"→";position:absolute;right:-18px;top:38%;color:#87b6ff;font-size:22px}.flow-node strong{display:block;color:#fff;font-size:15px;margin-bottom:10px}.flow-node p{font-size:12px;color:#afc0d4;margin:0}
.risk-bars{display:grid;gap:12px;margin-top:18px}.risk-row{display:grid;grid-template-columns:110px 1fr 40px;gap:12px;align-items:center;color:#d4dfeb;font-size:13px}.risk-row .track{height:10px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}.risk-row .fill{height:100%;border-radius:999px}.fill.blue{background:linear-gradient(90deg,#6caeff,#2f76ff)}.fill.yellow{background:linear-gradient(90deg,#f5d06b,#c89618)}.fill.green{background:linear-gradient(90deg,#72e3b9,#25c38d)}.fill.red{background:linear-gradient(90deg,#ff9b9b,#ff5f5f)}
.stack-chart{height:220px;display:flex;align-items:flex-end;gap:14px;margin-top:24px}.stack-col{flex:1;display:flex;flex-direction:column-reverse;height:100%;border-radius:8px;overflow:hidden;background:rgba(255,255,255,.04);border:1px solid rgba(154,191,255,.08)}.seg-hvac{background:#6caeff}.seg-water{background:#46ccb9}.seg-security{background:#f5b55a}.seg-power{background:#ff8d7d}.seg-env{background:#c096ff}.stack-labels{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:10px;text-align:center;color:#91a8c6;font-size:11px}
.spark-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.spark{padding:16px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid rgba(154,191,255,.12)}.spark small{display:block;font-size:10px;letter-spacing:.14em;color:#8eb9ff;font-weight:800}.spark strong{display:block;color:#fff;font-size:26px;line-height:1.1;margin:8px 0}.spark svg{width:100%;height:34px}.spark p{font-size:11px;color:#afc0d4;margin:6px 0 0}
.kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:26px}.kpi-strip .kpi{padding:16px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid rgba(154,191,255,.12)}.kpi b{display:block;color:#fff;font-size:24px;margin-bottom:6px}.kpi span{font-size:12px;color:#abc0d7}
.chart-accent-blue{color:var(--accent-blue)}.chart-accent-green{color:var(--accent-green)}.chart-accent-yellow{color:var(--accent-yellow)}.chart-accent-red{color:var(--accent-red)}
@media(max-width:990px){.em-analytics-grid,.pp-dashboard-grid,.cbm-systems-grid,.pie-wrap{grid-template-columns:1fr}.flow-steps,.spark-row,.kpi-strip{grid-template-columns:repeat(2,1fr)}.metric-cluster{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.metric-cluster,.flow-steps,.spark-row,.kpi-strip{grid-template-columns:1fr}.pie-wrap{gap:16px}.pie{width:148px;height:148px}.bar-series{height:120px}.trend-chart{height:240px}}


/* V3: scroll-driven section reveals and colorful data visualization activation */
/* Always visible until JS explicitly opts in: resilient to blocked scripts. */
body.motion-ready main section:not(.em-hero):not(.hero){opacity:.38;transform:translateY(22px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1)}
body.motion-ready main section.in-view{opacity:1;transform:none}
/* More architectural wallpaper shines through the semi-transparent content */
.em-section-shaded,.em-band,.em-cta{background:rgba(4,12,24,.16)!important}
.chart-card,.metric-card,.risk-card,.status-card,.pie-card,.flow-card,.stack-card,.spark,.kpi-strip .kpi,.sys-card,.em-opportunities article,.em-tech>div{background:rgba(13,24,42,.46)!important;border-color:rgba(155,191,255,.11);backdrop-filter:blur(3px)}
body.motion-ready .viz-reveal{opacity:.35;transform:translateY(17px) scale(.975);transition:opacity .65s ease,transform .7s cubic-bezier(.2,.8,.2,1),border-color .9s ease,box-shadow .9s ease}
body.motion-ready .viz-reveal.viz-on{opacity:1;transform:none;border-color:rgba(125,178,255,.32);box-shadow:0 0 0 1px rgba(126,180,255,.06),0 18px 44px rgba(0,0,0,.16),inset 0 0 28px rgba(51,125,253,.035)}
body.motion-ready .bar-series i{transform:scaleY(.015);transform-origin:center bottom;filter:saturate(.6);transition:transform .95s cubic-bezier(.16,.9,.24,1),filter .8s ease,box-shadow .8s ease}
body.motion-ready .viz-on .bar-series i{transform:scaleY(1);filter:saturate(1.45);box-shadow:0 0 18px rgba(77,147,255,.2)}
body.motion-ready .bar-series i:nth-child(2){transition-delay:.08s}body.motion-ready .bar-series i:nth-child(3){transition-delay:.15s}body.motion-ready .bar-series i:nth-child(4){transition-delay:.23s}body.motion-ready .bar-series i:nth-child(5){transition-delay:.31s}body.motion-ready .bar-series i:nth-child(6){transition-delay:.39s}body.motion-ready .bar-series i:nth-child(7){transition-delay:.47s}
body.motion-ready .trend-chart svg path,body.motion-ready .spark svg path{stroke-dasharray:110;stroke-dashoffset:110;transition:stroke-dashoffset 1.8s cubic-bezier(.22,.72,.25,1),filter 1.2s ease,stroke-width 1s ease}
body.motion-ready .viz-on .trend-chart svg path,body.motion-ready .viz-on .spark svg path{stroke-dashoffset:0;filter:drop-shadow(0 0 2px currentColor)}
body.motion-ready .pie{--pie-reveal:0%;-webkit-mask-image:conic-gradient(#000 0 var(--pie-reveal),transparent var(--pie-reveal) 100%);mask-image:conic-gradient(#000 0 var(--pie-reveal),transparent var(--pie-reveal) 100%);transition:filter .9s ease,transform 1.1s cubic-bezier(.19,.75,.22,1);transform:rotate(-32deg) scale(.85);filter:brightness(.65)}
body.motion-ready .viz-on .pie{animation:pie-sweep 1.25s ease-out both;transform:rotate(0deg) scale(1);filter:brightness(1.14) drop-shadow(0 0 18px rgba(73,150,255,.16))}
@keyframes pie-sweep{0%{-webkit-mask-image:conic-gradient(#000 0 0%,transparent 0% 100%);mask-image:conic-gradient(#000 0 0%,transparent 0% 100%)}20%{-webkit-mask-image:conic-gradient(#000 0 20%,transparent 20% 100%);mask-image:conic-gradient(#000 0 20%,transparent 20% 100%)}45%{-webkit-mask-image:conic-gradient(#000 0 45%,transparent 45% 100%);mask-image:conic-gradient(#000 0 45%,transparent 45% 100%)}70%{-webkit-mask-image:conic-gradient(#000 0 70%,transparent 70% 100%);mask-image:conic-gradient(#000 0 70%,transparent 70% 100%)}100%{-webkit-mask-image:conic-gradient(#000 0 100%,transparent 100% 100%);mask-image:conic-gradient(#000 0 100%,transparent 100% 100%)}}
body.motion-ready .risk-row .fill{transform:scaleX(.02);transform-origin:left;transition:transform 1.1s cubic-bezier(.17,.8,.2,1),filter .85s ease}
body.motion-ready .viz-on .risk-row .fill{transform:scaleX(1);filter:brightness(1.3) drop-shadow(0 0 4px currentColor)}
body.motion-ready .stack-col{transform:scaleY(.02);transform-origin:bottom;transition:transform 1.15s cubic-bezier(.2,.8,.2,1),filter 1s ease}
body.motion-ready .viz-on .stack-col{transform:scaleY(1);filter:saturate(1.22) brightness(1.12)}
body.motion-ready .stack-col:nth-child(2){transition-delay:.1s}body.motion-ready .stack-col:nth-child(3){transition-delay:.2s}body.motion-ready .stack-col:nth-child(4){transition-delay:.3s}body.motion-ready .stack-col:nth-child(5){transition-delay:.4s}
body.motion-ready .metric-card strong,body.motion-ready .status-card strong,body.motion-ready .spark strong{transition:color .8s ease,text-shadow .8s ease}
body.motion-ready .viz-on.metric-card.green strong{color:#49d39f;text-shadow:0 0 17px rgba(73,211,159,.28)}
body.motion-ready .viz-on.metric-card.yellow strong{color:#f2bf59;text-shadow:0 0 17px rgba(242,191,89,.28)}
body.motion-ready .viz-on.metric-card.red strong,body.motion-ready .viz-on.status-card.red strong{color:#ff7575;text-shadow:0 0 17px rgba(255,117,117,.28)}
body.motion-ready .viz-on.metric-card:not(.green):not(.yellow):not(.red) strong{color:#a3c8ff;text-shadow:0 0 17px rgba(114,179,255,.24)}
body.motion-ready .flow-node{transition:border-color .5s ease,background .5s ease,box-shadow .5s ease}
body.motion-ready .viz-on .flow-node{border-color:rgba(106,172,255,.32);background:rgba(37,77,124,.12);box-shadow:inset 0 0 20px rgba(60,127,229,.07)}
@media(prefers-reduced-motion:reduce){body.motion-ready main section:not(.em-hero):not(.hero),body.motion-ready .viz-reveal,body.motion-ready .bar-series i,body.motion-ready .trend-chart svg path,body.motion-ready .spark svg path,body.motion-ready .pie,body.motion-ready .risk-row .fill,body.motion-ready .stack-col{opacity:1!important;transform:none!important;transition:none!important;animation:none!important;filter:none!important;stroke-dashoffset:0!important;-webkit-mask-image:none!important;mask-image:none!important}}


/* V2 correction: no dimming, no blur; every graphic fully legible before and after activation */
body.motion-ready main section:not(.em-hero):not(.hero),
body.motion-ready main section.in-view{opacity:1 !important;filter:none !important;transform:none !important;}
body.motion-ready .viz-reveal,body.motion-ready .viz-reveal.viz-on{opacity:1 !important;filter:none !important;}
.chart-card,.metric-card,.risk-card,.status-card,.pie-card,.flow-card,.stack-card,.spark,.kpi-strip .kpi,.sys-card,.em-opportunities article,.em-tech>div,
body.motion-ready .chart-card,body.motion-ready .metric-card,body.motion-ready .risk-card,body.motion-ready .status-card,body.motion-ready .pie-card,body.motion-ready .flow-card,body.motion-ready .stack-card,body.motion-ready .spark,body.motion-ready .kpi-strip .kpi,body.motion-ready .sys-card,body.motion-ready .em-opportunities article,body.motion-ready .em-tech>div{
 background:rgba(17,31,52,.94) !important;border-color:rgba(155,191,255,.24) !important;
 backdrop-filter:none !important;-webkit-backdrop-filter:none !important;
}
body.motion-ready .viz-reveal{transform:translateY(12px) scale(.995);}
body.motion-ready .viz-reveal.viz-on{transform:none;}
body.motion-ready .viz-on .trend-chart svg path,body.motion-ready .viz-on .spark svg path{filter:none !important;}
body.motion-ready .viz-on .pie{filter:none !important;}
body.motion-ready .viz-on .stack-col{filter:none !important;}
body.motion-ready .viz-on .bar-series i{filter:none !important;}
body.motion-ready .viz-on .risk-row .fill{filter:none !important;}
@media(prefers-reduced-motion:reduce){body.motion-ready .viz-reveal{transform:none !important;}}

/* Targeted SEO/GEO information sections — preserve V19 visuals */
.si-faq-section{padding:76px 0 92px;background:rgba(2,10,19,.22);border-top:1px solid rgba(154,191,255,.09)}.si-faq-section h2{font-size:clamp(30px,4vw,48px);color:#fff;letter-spacing:-.04em;margin:0 0 14px}.si-faq-intro{color:#b9c9dc;font-size:15px;max-width:640px}.si-faq-grid{display:grid;gap:12px;margin-top:26px;max-width:900px}.si-faq-item{border:1px solid rgba(154,191,255,.18);background:rgba(9,25,44,.72);border-radius:12px;padding:20px 24px}.si-faq-item summary{cursor:pointer;color:#f1f6ff;font-weight:700;font-size:16px;padding-right:22px}.si-faq-item p{color:#bacbdd;margin:14px 0 0;font-size:14px;line-height:1.7}.si-context-links{margin:32px 0 0;color:#aebfd3;font-size:13px;line-height:1.8}.si-context-links a{color:#a4c9ff;text-decoration:underline;text-underline-offset:3px}.si-region-mark{min-height:330px;border:1px solid rgba(126,174,239,.2);background:rgba(7,18,34,.66);border-radius:18px;display:flex;flex-direction:column;justify-content:space-around;padding:38px;position:relative;overflow:hidden}.si-region-mark:before{content:"";position:absolute;inset:0;opacity:.2;background:repeating-linear-gradient(90deg,transparent 0 32px,#72b3ff 33px 34px),repeating-linear-gradient(0deg,transparent 0 32px,#72b3ff 33px 34px)}.si-region-mark span{position:relative;color:#b7d2f4;font-size:clamp(16px,2vw,28px);font-weight:800;letter-spacing:.09em}.si-region-mark span:nth-child(2){color:#49d39f}.si-region-mark span:nth-child(3){color:#f2bf59}
