/* VM Energy Saver v1.1 — interactive game */
.vm-es{--green:#2d8057;--dark:#102e22;--mint:#d9f3e2;--text:#eef7f0;--muted:#a9c1b2;--line:rgba(255,255,255,.12);font-family:inherit;color:var(--text);margin:24px auto;max-width:1220px}
.vm-es *{box-sizing:border-box}.vm-es-shell{background:radial-gradient(ellipse at 50% 0%,#1b4935 0%,#0c1d16 65%);border:1px solid #2a4938;border-radius:22px;overflow:hidden;box-shadow:0 22px 65px rgba(9,35,22,.18)}
.vm-es-header{padding:30px 34px 24px;border-bottom:1px solid var(--line)}.vm-es-eyebrow{font-size:11px;font-weight:800;letter-spacing:2.5px;color:#94d5ad}
.vm-es-title-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:8px}.vm-es-title-row h2{color:#fff;font-size:clamp(30px,4vw,43px);line-height:1.1;margin:0;font-weight:750}.vm-es-subtitle{color:#bce4ca;font-size:18px;margin:8px 0 0}.vm-es-level{font-size:10px;font-weight:800;letter-spacing:1.5px;color:#c4e9d0;border:1px solid #477c5b;border-radius:99px;padding:9px 12px;white-space:nowrap}.vm-es-live-dot{display:inline-block;width:7px;height:7px;background:#8de5a8;border-radius:50%;margin-right:7px;box-shadow:0 0 12px #8de5a8}.vm-es-intro{max-width:760px;color:#c1d5c8;font-size:14px;line-height:1.7;margin:17px 0 0}
.vm-es-gamebar{display:grid;grid-template-columns:repeat(3,1fr);background:rgba(0,0,0,.14);border-bottom:1px solid var(--line)}.vm-es-gamebar>div{padding:15px 28px;border-right:1px solid var(--line)}.vm-es-gamebar>div:last-child{border-right:0}.vm-es-gamebar span{display:block;font-size:9px;letter-spacing:1.4px;color:#9fc2ac;font-weight:800}.vm-es-gamebar strong{display:block;font-size:23px;color:#fff;margin-top:5px;font-variant-numeric:tabular-nums}
.vm-es-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(330px,.85fr)}.vm-es-city-panel{padding:24px 25px 25px;border-right:1px solid var(--line);min-width:0}.vm-es-scene-top,.vm-es-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.vm-es-scene-label,.vm-es-info-label{font-size:10px;font-weight:800;letter-spacing:1.4px;color:#a6cbb3}.vm-es-weather{font-size:12px;color:#d3e6d9}
.vm-es-scene{height:365px;position:relative;overflow:hidden;border-radius:15px;margin-top:14px;background:linear-gradient(180deg,#173e30 0%,#24553d 57%,#1c4934 100%);isolation:isolate}.vm-es-scene:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 100%,transparent 30%,rgba(4,20,13,.22));pointer-events:none;z-index:10}
.vm-es-sun{position:absolute;right:15%;top:13%;width:43px;height:43px;border-radius:50%;background:#f5d778;box-shadow:0 0 0 9px rgba(245,215,120,.09),0 0 35px rgba(245,215,120,.3)}.vm-es-cloud{position:absolute;width:48px;height:12px;border-radius:20px;background:rgba(214,240,219,.25);top:19%;left:15%}.vm-es-cloud:before,.vm-es-cloud:after{content:"";position:absolute;bottom:0;background:inherit;border-radius:50%}.vm-es-cloud:before{width:19px;height:19px;left:8px}.vm-es-cloud:after{width:24px;height:23px;left:20px}.vm-es-cloud-two{left:60%;top:28%;transform:scale(.65)}
.vm-es-ground{position:absolute;width:78%;height:59%;left:11%;top:35%;background:#347451;transform:rotate(30deg) skewX(-30deg) scaleY(.78);border:1px solid rgba(175,229,187,.2);box-shadow:0 18px 0 #173f2b;z-index:1}.vm-es-road{position:absolute;z-index:2;width:130%;height:45px;left:-15%;top:67%;transform:rotate(-27deg);background:#49685b;border-top:2px solid #7a9987;border-bottom:2px solid #2e4e40}.vm-es-road:after{content:"";position:absolute;left:0;right:0;top:20px;border-top:2px dashed rgba(239,246,228,.55)}
.vm-es-park{position:absolute;z-index:3;left:11%;top:48%;width:23%;height:25%;background:#2b8051;transform:skewY(-27deg);border:1px solid #4a9a68;box-shadow:0 8px 0 #1b5a39}.vm-es-tree{position:absolute;width:16px;height:28px;background:#765d43;bottom:15%;left:20%;transform:skewY(27deg)}.vm-es-tree:before{content:"";position:absolute;width:33px;height:33px;left:-9px;top:-23px;background:#5ac17c;clip-path:polygon(50% 0,100% 65%,72% 65%,90% 100%,10% 100%,28% 65%,0 65%)}.vm-es-tree.t2{left:52%;bottom:32%;transform:scale(.8) skewY(27deg)}.vm-es-tree.t3{left:72%;bottom:8%;transform:scale(.7) skewY(27deg)}
.vm-es-building{position:absolute;z-index:5;border:0;background:transparent;padding:0;cursor:pointer;filter:drop-shadow(0 5px 2px rgba(0,0,0,.16));transition:filter .2s,transform .2s}.vm-es-building:hover{filter:drop-shadow(0 0 8px rgba(142,236,164,.6))}.vm-es-building.is-selected{filter:drop-shadow(0 0 10px rgba(142,236,164,.8))}.vm-es-building.is-selected:after{content:"";position:absolute;inset:-6px;border:2px solid #91e9a7;border-radius:6px;pointer-events:none}
.vm-es-house{width:110px;height:104px}.vm-es-house-a{left:27%;top:34%}.vm-es-house-b{left:8%;top:29%;transform:scale(.75);transform-origin:top left}.vm-es-roof{position:absolute;left:0;top:0;width:90px;height:50px;background:#a9c6a6;clip-path:polygon(50% 0,100% 40%,50% 80%,0 40%);z-index:4}.vm-es-wall.front{position:absolute;left:0;top:39px;width:60px;height:63px;background:#e4dfc4;clip-path:polygon(0 0,100% 0,100% 100%,0 82%);border-left:1px solid #fff}.vm-es-wall.side{position:absolute;left:59px;top:39px;width:31px;height:63px;background:#a9b99e;clip-path:polygon(0 0,100% -20%,100% 82%,0 100%)}.vm-es-window{position:absolute;z-index:6;top:54px;width:13px;height:17px;background:#65c7d0;border:2px solid #f6f0d7;box-shadow:0 0 8px rgba(101,199,208,.2)}.vm-es-window.w1{left:11px}.vm-es-window.w2{left:37px}.vm-es-door{position:absolute;z-index:6;left:24px;top:78px;width:13px;height:23px;background:#6e7b60;border:2px solid #f6f0d7}
.vm-es-solar{display:none;position:absolute;z-index:8;left:18px;top:4px;width:52px;height:25px;transform:skewY(25deg) rotate(-5deg);grid-template-columns:repeat(3,1fr);gap:2px}.vm-es-solar i,.vm-es-office-solar i{background:#2b6b9c;border:1px solid #8cc5e6}.vm-es-insulation{display:none;position:absolute;z-index:9;left:-4px;top:43px;width:66px;height:58px;border:3px dashed #9fe1a9;pointer-events:none}.vm-es-building[data-has~="solar"] .vm-es-solar,.vm-es-building[data-has~="solar"] .vm-es-office-solar{display:grid}.vm-es-building[data-has~="insulation"] .vm-es-insulation{display:block}.vm-es-building[data-has~="lighting"] .vm-es-window,.vm-es-building[data-has~="lighting"] .vm-es-office-windows i{background:#ffe38b;box-shadow:0 0 12px rgba(255,227,139,.8)}.vm-es-building[data-has~="heatpump"] .vm-es-wall.side:after{content:"";position:absolute;right:3px;top:30px;width:10px;height:15px;background:#4b9ac2;border:2px solid #a9d8ee}
.vm-es-building-name{position:absolute;left:-7px;top:107px;white-space:nowrap;font-size:8px;letter-spacing:1px;font-weight:800;color:#d5efdd;background:rgba(7,28,18,.78);border:1px solid rgba(184,227,193,.25);padding:5px 7px;border-radius:4px}.vm-es-check{display:none;position:absolute;right:4px;top:32px;width:20px;height:20px;border-radius:50%;background:#8de5a8;color:#0b2d1a;font-weight:900;font-size:13px;place-items:center}.vm-es-building[data-has]:not([data-has=""]) .vm-es-check{display:grid}
.vm-es-office{right:16%;top:39%;width:116px;height:145px}.vm-es-office-roof{position:absolute;left:0;top:0;width:116px;height:38px;background:#d4e4d6;clip-path:polygon(25% 0,100% 0,76% 100%,0 100%)}.vm-es-office-front{position:absolute;left:0;top:35px;width:78px;height:107px;background:#9db6a7;clip-path:polygon(0 0,100% 0,100% 100%,0 85%)}.vm-es-office-side{position:absolute;left:77px;top:35px;width:39px;height:107px;background:#698e7b;clip-path:polygon(0 0,100% -10%,100% 86%,0 100%)}.vm-es-office-windows{position:absolute;left:10px;top:47px;display:grid;grid-template-columns:repeat(2,20px);gap:7px;z-index:7}.vm-es-office-windows i{height:20px;background:#6ac8d3;border:2px solid #e5e8d2;box-shadow:0 0 7px rgba(106,200,211,.15)}.vm-es-office-solar{display:none;position:absolute;z-index:8;left:17px;top:4px;width:70px;height:24px;grid-template-columns:repeat(4,1fr);gap:2px;transform:skewY(-12deg)}.vm-es-turbine{position:absolute;z-index:6;right:8%;top:29%;width:38px;height:90px}.vm-es-turbine .mast{position:absolute;left:17px;top:10px;width:4px;height:80px;background:#d6e7d8}.vm-es-turbine .blade{position:absolute;left:18px;top:9px;width:4px;height:39px;background:#e3f0e4;transform-origin:50% 100%;border-radius:5px}.vm-es-turbine .b1{transform:rotate(0deg) translateY(-1px)}.vm-es-turbine .b2{transform:rotate(120deg) translateY(-1px)}.vm-es-turbine .b3{transform:rotate(240deg) translateY(-1px)}
.vm-es-energy-pulse{position:absolute;z-index:4;width:7px;height:7px;background:#9be9b0;border-radius:50%;opacity:0;box-shadow:0 0 12px #9be9b0}.vm-es[data-total-upgrades]:not([data-total-upgrades="0"]) .vm-es-energy-pulse{opacity:1;animation:vmEsPulse 2.3s infinite}.pulse-one{left:41%;top:46%}.pulse-two{right:28%;top:58%;animation-delay:.8s!important}@keyframes vmEsPulse{0%{transform:scale(.5);opacity:.15}50%{transform:scale(1.7);opacity:1}100%{transform:scale(.5);opacity:.15}}
.vm-es-building-info{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:17px;padding:13px 15px;background:rgba(255,255,255,.045);border:1px solid var(--line);border-radius:10px}.vm-es-building-info strong{display:block;color:#fff;font-size:15px;margin-top:4px}.vm-es-building-state{font-size:10px;color:#b8d0c0;text-align:right}.vm-es-scene-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:13px;font-size:10px;color:#abc8b5}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}.legend-dot.green{background:#67d28b}.legend-dot.blue{background:#6ac8d3}.legend-dot.gold{background:#f5d778}
.vm-es-mission{display:flex;align-items:flex-start;gap:12px;margin-top:22px;padding:14px;background:rgba(113,185,131,.09);border:1px solid rgba(125,211,151,.2);border-radius:10px}.vm-es-mission-icon{display:grid;place-items:center;flex:0 0 32px;height:32px;border-radius:9px;background:#285b3c;color:#b7f2c5;font-size:17px}.vm-es-mission strong{font-size:12px;color:#e9f8ed}.vm-es-mission p{font-size:11px;color:#a9c1b2;line-height:1.55;margin:4px 0 0}
.vm-es-controls{padding:25px 24px 23px;min-width:0}.vm-es-control-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.vm-es-control-heading h3{color:#fff;font-size:19px;margin:0}.vm-es-control-heading p{color:#9db9a7;font-size:11px;margin:5px 0 0;line-height:1.5}.vm-es-selected-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#245b3e;color:#b6efc6;font-size:18px}
.vm-es-upgrade{display:flex;align-items:center;gap:11px;width:100%;text-align:left;color:#eaf5ed;background:rgba(255,255,255,.035);border:1px solid #2c4938;border-radius:11px;padding:12px;margin:9px 0;cursor:pointer;transition:background .2s,border-color .2s,transform .2s;font:inherit}.vm-es-upgrade:hover{background:rgba(255,255,255,.075);border-color:#527b5d;transform:translateY(-1px)}.vm-es-upgrade[aria-pressed="true"]{background:rgba(68,151,91,.19);border-color:#73cb8b;box-shadow:inset 3px 0 #73cb8b}.vm-es-upgrade:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(.4)}.vm-es-upgrade-icon{display:grid;place-items:center;flex:0 0 40px;height:40px;border-radius:10px;font-size:23px;font-weight:700}.solar-icon{background:#5b512b;color:#f4d779}.insulation-icon{background:#294d3a;color:#a8e3b5}.lighting-icon{background:#4e4326;color:#f8dc85}.heat-icon{background:#234b5a;color:#9fe3f0}.vm-es-upgrade-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}.vm-es-upgrade-copy strong{font-size:12px;color:#f4fff6}.vm-es-upgrade-copy small{font-size:10px;color:#a9c1b2;line-height:1.35}.vm-es-upgrade-copy em{font-style:normal;font-size:10px;color:#88d9a0}.vm-es-upgrade-cost{font-size:11px;font-weight:800;color:#e0f3e5;white-space:nowrap}
.vm-es-results{margin-top:20px;border-top:1px solid var(--line);padding-top:15px}.vm-es-result{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:10px 0;font-size:12px;color:#b8d0c0}.vm-es-result strong{font-size:15px;color:#fff;font-variant-numeric:tabular-nums}.vm-es-meter{height:8px;background:#294638;border-radius:99px;overflow:hidden;margin:9px 0 15px}.vm-es-meter span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#69d18b,#f0cc6a);transition:width .3s ease}.vm-es-feedback{padding:11px 12px;background:rgba(255,255,255,.045);border-radius:8px;color:#bcd4c4;font-size:11px;line-height:1.6;margin:15px 0 0}.vm-es-feedback.is-success{color:#baf0c8;border:1px solid rgba(125,211,151,.25)}.vm-es-feedback.is-warning{color:#ffdda0;border:1px solid rgba(255,221,160,.25)}.vm-es-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:17px}.vm-es-reset{border:1px solid #466552;background:transparent;color:#c6ddce;border-radius:7px;padding:9px 12px;font-size:11px;cursor:pointer}.vm-es-contact{display:inline-flex;align-items:center;gap:8px;background:#8bdfa1;color:#0d2d1c!important;border-radius:7px;padding:10px 13px;text-decoration:none!important;font-size:11px;font-weight:800;transition:background .2s}.vm-es-contact:hover{background:#b0efbf}.vm-es-footer{display:flex;justify-content:space-between;gap:15px;padding:13px 25px;background:rgba(0,0,0,.13);border-top:1px solid var(--line);font-size:9px;letter-spacing:.4px;color:#769783}.vm-es-footer span:first-child{font-weight:800;letter-spacing:1.4px;color:#94c9a4}
@media(max-width:850px){.vm-es-layout{grid-template-columns:1fr}.vm-es-city-panel{border-right:0;border-bottom:1px solid var(--line)}.vm-es-controls{padding:24px}.vm-es-scene{height:350px}}
@media(max-width:520px){.vm-es{margin:14px auto}.vm-es-shell{border-radius:15px}.vm-es-header{padding:24px 19px 20px}.vm-es-title-row{align-items:flex-start;flex-direction:column;gap:12px}.vm-es-gamebar>div{padding:12px 10px}.vm-es-gamebar span{font-size:8px;letter-spacing:.7px}.vm-es-gamebar strong{font-size:17px}.vm-es-city-panel{padding:18px 14px}.vm-es-scene{height:300px}.vm-es-house-a{left:25%;transform:scale(.82);transform-origin:top left}.vm-es-house-b{left:0;transform:scale(.62)}.vm-es-office{right:12%;transform:scale(.82);transform-origin:top right}.vm-es-turbine{right:3%;transform:scale(.8);transform-origin:top right}.vm-es-controls{padding:20px 14px}.vm-es-footer{flex-direction:column;padding:13px 17px}.vm-es-upgrade{gap:8px;padding:10px}.vm-es-upgrade-icon{flex-basis:35px;height:35px}.vm-es-upgrade-cost{font-size:10px}.vm-es-building-info{align-items:flex-start;flex-direction:column}.vm-es-building-state{text-align:left}}
@media(prefers-reduced-motion:reduce){.vm-es *{transition:none!important;animation:none!important}}

/* v1.2: stronger clickable hit areas and richer architectural details */
.vm-es .vm-es-building{pointer-events:auto!important;z-index:20!important;touch-action:manipulation;cursor:pointer!important}
.vm-es .vm-es-building *{pointer-events:none!important}
.vm-es .vm-es-building.is-selected{z-index:22!important}
.vm-es .vm-es-house-a{left:27%;top:34%;transform:scale(1.02);transform-origin:top left}
.vm-es .vm-es-house-b{left:8%;top:29%;transform:scale(.78);transform-origin:top left}
.vm-es .vm-es-house .vm-es-roof{background:linear-gradient(135deg,#9fb6a0 0%,#d6e2c9 48%,#78987e 49%,#a8c2aa 100%);filter:drop-shadow(2px 3px 0 rgba(0,0,0,.12))}
.vm-es .vm-es-house .vm-es-wall.front{background:linear-gradient(90deg,#e9e3cb,#d4d5bc);box-shadow:inset -4px 0 rgba(112,132,104,.12)}
.vm-es .vm-es-house .vm-es-wall.side{background:linear-gradient(90deg,#9eb49e,#718f7d)}
.vm-es .vm-es-office-roof{background:linear-gradient(135deg,#dce7d8 0%,#a7c4ad 70%,#799c87 71%);filter:drop-shadow(2px 3px 0 rgba(0,0,0,.16))}
.vm-es .vm-es-office-front{background:linear-gradient(90deg,#b4c9ba,#8aa997)}
.vm-es .vm-es-office-side{background:linear-gradient(90deg,#719783,#456d59)}
.vm-es .vm-es-office{z-index:20!important}
.vm-es .vm-es-building-name{pointer-events:none}
.vm-es .vm-es-house-a .vm-es-building-name{left:-1px}
.vm-es .vm-es-house-b .vm-es-building-name{left:-10px}
.vm-es .vm-es-office .vm-es-building-name{left:3px;top:146px}
.vm-es .vm-es-building.is-selected:after{inset:-9px;border:2px solid #a4f4b7;box-shadow:0 0 0 5px rgba(137,231,161,.12);border-radius:8px}
.vm-es .vm-es-building .vm-es-check{pointer-events:none}
.vm-es .vm-es-building[data-has~="solar"] .vm-es-roof,
.vm-es .vm-es-building[data-has~="solar"] .vm-es-office-roof{filter:drop-shadow(0 0 6px rgba(89,190,232,.35))}
.vm-es .vm-es-building[data-has~="insulation"] .vm-es-wall.front,
.vm-es .vm-es-building[data-has~="insulation"] .vm-es-office-front{background:linear-gradient(90deg,#b7e6b7,#8fcf9c)}
@media(max-width:520px){.vm-es .vm-es-house-a{left:25%;transform:scale(.84);transform-origin:top left}.vm-es .vm-es-house-b{left:0;transform:scale(.64);transform-origin:top left}}

/* v1.2.1 interaction hardening */
.vm-es .vm-es-scene .vm-es-building{pointer-events:auto!important;position:absolute!important;z-index:30!important;-webkit-tap-highlight-color:transparent;touch-action:manipulation;}
.vm-es .vm-es-scene:after{pointer-events:none!important;}


/* v1.3.0: visible roof-mounted PV panels and installation feedback */
.vm-es .vm-es-building[data-has~="solar"] .vm-es-solar,
.vm-es .vm-es-building[data-has~="solar"] .vm-es-office-solar{display:grid!important;filter:drop-shadow(0 2px 3px rgba(0,0,0,.38));animation:vmEsSolarInstall .42s ease-out both;}
.vm-es .vm-es-house .vm-es-solar{left:14px;top:1px;width:57px;height:27px;transform:skewY(25deg) rotate(-5deg);grid-template-columns:repeat(3,1fr);gap:2px;}
.vm-es .vm-es-office .vm-es-office-solar{left:17px;top:3px;width:72px;height:25px;transform:skewY(-12deg);grid-template-columns:repeat(4,1fr);gap:2px;}
.vm-es .vm-es-solar i,.vm-es .vm-es-office-solar i{background:linear-gradient(135deg,#397fa9 0%,#174568 100%);border:1px solid #a4d9f0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);}
.vm-es .vm-es-building[data-has~="solar"] .vm-es-roof:before,
.vm-es .vm-es-building[data-has~="solar"] .vm-es-office-roof:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(125,201,238,.14),transparent 55%);pointer-events:none;}
.vm-es .vm-es-building[data-has~="solar"] .vm-es-check{background:#6fd6f0;color:#07324a;box-shadow:0 0 12px rgba(111,214,240,.55);}
@keyframes vmEsSolarInstall{0%{opacity:0;transform:translateY(-5px) scale(.88)}100%{opacity:1}}
@media(prefers-reduced-motion:reduce){.vm-es .vm-es-building[data-has~="solar"] .vm-es-solar,.vm-es .vm-es-building[data-has~="solar"] .vm-es-office-solar{animation:none}}


/* v1.4.0 gameplay parameters, secret bonuses and micro-animations */
.vm-es-extra-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:18px 0 4px}
.vm-es-extra-stats>div{padding:12px;background:rgba(255,255,255,.045);border:1px solid rgba(157,220,174,.15);border-radius:10px;min-width:0}
.vm-es-extra-stats span{display:block;font-size:10px;line-height:1.45;color:#a9c8b4}
.vm-es-extra-stats strong{display:block;margin-top:5px;color:#d7f7df;font-size:17px;font-variant-numeric:tabular-nums}
.vm-es .battery-icon{background:#24485a;color:#9ddcf2}.vm-es .meter-icon{background:#3b4d3a;color:#c8ef9e}.vm-es .greenroof-icon{background:#254f35;color:#a8e6a7}
.vm-es .vm-es-sun{border:0;cursor:pointer;z-index:3;transition:filter .25s,transform .25s}.vm-es .vm-es-sun:hover{filter:brightness(1.18);transform:scale(1.08)}
.vm-es .vm-es-turbine{border:0;padding:0;background:transparent;cursor:pointer;z-index:25;transition:filter .25s}.vm-es .vm-es-turbine:hover{filter:drop-shadow(0 0 8px rgba(155,239,183,.75))}
.vm-es-secret-hit{animation:vmEsSecret .65s ease-out!important}
.vm-es-installing{animation:vmEsInstall .8s ease-out}
.vm-es-pop{animation:vmEsPop .35s ease-out}
.vm-es-scene.vm-es-weather-change{animation:vmEsWeather .55s ease-out}
.vm-es .vm-es-scene[data-weather="cloudy"]{filter:saturate(.78)}
.vm-es .vm-es-scene[data-weather="cloudy"] .vm-es-sun{opacity:.42}
.vm-es .vm-es-scene[data-weather="cloudy"] .vm-es-cloud{opacity:.95}
.vm-es .vm-es-scene[data-weather="windy"] .vm-es-cloud{animation:vmEsCloudDrift 4s ease-in-out infinite alternate}
.vm-es .vm-es-scene[data-weather="windy"] .vm-es-turbine .blade{animation-duration:1.4s}
.vm-es .vm-es-scene[data-weather="sunny"] .vm-es-sun{opacity:1;box-shadow:0 0 0 12px rgba(255,220,115,.08),0 0 28px rgba(255,220,115,.25)}
.vm-es-weather-toggle{border:1px solid #466552;background:rgba(255,255,255,.03);color:#c6ddce;border-radius:7px;padding:9px 12px;font-size:11px;cursor:pointer}
.vm-es-weather-toggle:hover{background:rgba(255,255,255,.08)}
@keyframes vmEsInstall{0%{filter:brightness(1.8);transform:translateY(-3px)}55%{filter:brightness(1.3);transform:translateY(1px)}100%{filter:none;transform:none}}
@keyframes vmEsPop{0%{transform:scale(.96);opacity:.65}70%{transform:scale(1.04)}100%{transform:scale(1);opacity:1}}
@keyframes vmEsSecret{0%{filter:brightness(1)}40%{filter:brightness(1.8) drop-shadow(0 0 12px #baf5bf)}100%{filter:brightness(1)}}
@keyframes vmEsWeather{0%{opacity:.78;transform:scale(.995)}100%{opacity:1;transform:scale(1)}}
@keyframes vmEsCloudDrift{from{translate:-5px 0}to{translate:10px 2px}}
@media(max-width:520px){.vm-es-extra-stats strong{font-size:15px}.vm-es-actions{flex-wrap:wrap}.vm-es-weather-toggle{flex:1}}
@media(prefers-reduced-motion:reduce){.vm-es-installing,.vm-es-pop,.vm-es-secret-hit,.vm-es-scene.vm-es-weather-change{animation:none!important}}


/* v1.5.0 cinematic feedback and visible building transformations */
.vm-es .vm-es-building{transform-origin:50% 85%;transition:filter .35s ease,transform .35s ease}
.vm-es .vm-es-building.is-selected{filter:drop-shadow(0 0 12px rgba(145,239,167,.26))}
.vm-es .vm-es-building[data-has~="greenroof"] .vm-es-roof,
.vm-es .vm-es-building[data-has~="greenroof"] .vm-es-office-roof{background:linear-gradient(135deg,#9edb9c 0%,#3f965d 48%,#276b45 100%);filter:drop-shadow(0 0 5px rgba(104,222,135,.42))}
.vm-es .vm-es-building[data-has~="greenroof"] .vm-es-roof:after,
.vm-es .vm-es-building[data-has~="greenroof"] .vm-es-office-roof:after{content:"";position:absolute;inset:2px;background:radial-gradient(ellipse at 18% 25%,#d3f3a6 0 4%,transparent 5%),radial-gradient(ellipse at 40% 60%,#6cbd70 0 7%,transparent 8%),radial-gradient(ellipse at 68% 30%,#b8e995 0 5%,transparent 6%),radial-gradient(ellipse at 83% 68%,#4fa766 0 8%,transparent 9%);opacity:.98;pointer-events:none;animation:vmEsGardenGrow .65s cubic-bezier(.2,.8,.2,1) both}
.vm-es .vm-es-building[data-has~="battery"]:after{content:"▰";position:absolute;right:-9px;bottom:9px;z-index:12;padding:3px 5px;border-radius:4px;background:#123f50;color:#8ce8fa;border:1px solid #73d9ee;font-size:10px;box-shadow:0 0 12px #3cb8d4;animation:vmEsBatteryPulse 2s ease-in-out infinite}
.vm-es .vm-es-building[data-has~="smartmeter"] .vm-es-wall.side:after,
.vm-es .vm-es-building[data-has~="smartmeter"] .vm-es-office-side:after{content:"⌁";position:absolute;right:4px;top:44px;z-index:12;color:#e5f6a6;background:#25462e;border:1px solid #9ecb83;border-radius:3px;padding:1px 3px;font-size:12px;animation:vmEsMeterBlink 2s ease-in-out infinite}
.vm-es .vm-es-building[data-has~="heatpump"] .vm-es-wall.side:before,
.vm-es .vm-es-building[data-has~="heatpump"] .vm-es-office-side:before{content:"≈";position:absolute;right:3px;top:12px;z-index:12;color:#a9edff;text-shadow:0 0 7px #52c5ee;font-weight:900;font-size:16px;animation:vmEsHeatFlow 1.7s ease-in-out infinite}
.vm-es .vm-es-building[data-has~="lighting"] .vm-es-window,
.vm-es .vm-es-building[data-has~="lighting"] .vm-es-office-windows i{animation:vmEsLightFlicker 3.5s ease-in-out infinite}
.vm-es .vm-es-scene:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(115deg,transparent 35%,rgba(218,255,226,.055) 48%,transparent 60%);transform:translateX(-120%);animation:vmEsSceneSheen 12s ease-in-out infinite}
.vm-es .vm-es-energy-pulse{animation:vmEsEnergyOrbit 4s ease-in-out infinite}
.vm-es .vm-es-energy-pulse.pulse-two{animation-delay:1.8s}
.vm-es .vm-es-turbine .blade{animation:vmEsBladeSpin 5s linear infinite}
.vm-es .vm-es-scene[data-weather="windy"] .vm-es-turbine .blade{animation-duration:1.2s}
.vm-es .vm-es-scene[data-weather="sunny"] .vm-es-cloud{animation:vmEsCloudDrift 9s ease-in-out infinite alternate}
.vm-es .vm-es-scene[data-weather="cloudy"] .vm-es-building[data-has~="solar"] .vm-es-solar{filter:saturate(.65) brightness(.86)}
.vm-es .vm-es-upgrade.is-owned .vm-es-upgrade-icon{animation:vmEsOwnedPulse 2.8s ease-in-out infinite}
.vm-es .vm-es-upgrade:active{transform:scale(.985)}
@keyframes vmEsGardenGrow{0%{opacity:0;transform:scale(.35);transform-origin:center}70%{opacity:1;transform:scale(1.08)}100%{opacity:1;transform:scale(1)}}
@keyframes vmEsBatteryPulse{0%,100%{box-shadow:0 0 4px rgba(60,184,212,.35)}50%{box-shadow:0 0 15px rgba(60,184,212,.85)}}
@keyframes vmEsMeterBlink{0%,100%{opacity:.65}50%{opacity:1;filter:drop-shadow(0 0 5px #b9ec85)}}
@keyframes vmEsHeatFlow{0%,100%{transform:translateY(2px);opacity:.55}50%{transform:translateY(-4px);opacity:1}}
@keyframes vmEsLightFlicker{0%,90%,100%{filter:brightness(1)}94%{filter:brightness(1.45)}}
@keyframes vmEsSceneSheen{0%,68%{transform:translateX(-120%)}85%,100%{transform:translateX(120%)}}
@keyframes vmEsEnergyOrbit{0%,100%{opacity:.2;transform:translateY(0) scale(.85)}50%{opacity:.85;transform:translateY(-8px) scale(1.12)}}
@keyframes vmEsBladeSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes vmEsOwnedPulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.18) drop-shadow(0 0 5px rgba(140,226,161,.3))}}
@media(prefers-reduced-motion:reduce){.vm-es .vm-es-scene:after,.vm-es .vm-es-energy-pulse,.vm-es .vm-es-turbine .blade,.vm-es .vm-es-building[data-has~="greenroof"] .vm-es-roof:after,.vm-es .vm-es-building[data-has~="greenroof"] .vm-es-office-roof:after,.vm-es .vm-es-building[data-has~="battery"]:after,.vm-es .vm-es-building[data-has~="smartmeter"] .vm-es-wall.side:after,.vm-es .vm-es-building[data-has~="heatpump"] .vm-es-wall.side:before{animation:none!important}}
