:root{--fg: #1a1a1a;--bg: #fff;--muted: #555;--accent: #0b5d3b;--border: #c9c9c9;--surface: #f6f8f7;--focus: #b45309;--chart-cholsey: #0b5d3b;--chart-district: #1b4f9c;--chart-national: #222;--chart-comparator: #6b6b6b}html{-webkit-text-size-adjust:100%}*{box-sizing:border-box}body{margin:0;color:var(--fg);background:var(--bg);font:1.0625rem/1.6 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}header,main,footer{max-width:72rem;margin:0 auto;padding:1rem}a{color:var(--accent)}.skip-link{position:absolute;left:-999px}.skip-link:focus{left:.5rem;top:.5rem;background:var(--bg);padding:.5rem;z-index:10}nav ul,.tiles{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem 1rem}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem}.tile{border:1px solid var(--border);border-radius:.5rem;padding:1rem}.reference-points,.side-by-side{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem}.value-block{display:flex;flex-direction:column;gap:.15rem;margin-bottom:.5rem}.value{font-size:1.5rem}.year,.value-label,.unit,.slot{color:var(--muted);font-size:.9rem}.flag{font-size:.8rem;font-weight:600}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{border:1px solid var(--border);padding:.4rem;text-align:left;vertical-align:top}.provenance summary{cursor:pointer;font-size:.85rem;color:var(--accent)}.provenance dl{font-size:.85rem;margin:.25rem 0}.provenance dt{font-weight:600}.provenance dd{margin:0 0 .25rem}dd,dt,a{overflow-wrap:anywhere}.chart{margin:1rem 0}.chart svg{width:100%;height:auto;max-width:36rem}.chart figcaption span{display:block;color:var(--muted);font-size:.9rem}.chart .mark:focus{outline:3px solid #f5a300;outline-offset:2px}.chart-detail{min-height:3rem;border-left:4px solid var(--border);padding-left:.75rem;font-size:.9rem}.legend{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.25rem 1rem;font-size:.85rem}.sparkline{width:7.5rem;height:auto;color:var(--accent)}.indicators{list-style:none;padding:0;margin:.5rem 0;font-size:.9rem}.indicator{font-weight:600}.indicator-better{color:#0b5d3b}.indicator-worse{color:#9b1c1c}.indicator-similar,.indicator-not_rated{color:#444}.chart .legend svg{width:28px;height:10px;flex:none}.legend li{display:flex;align-items:center;gap:.4rem}.draft-notice{display:inline-block;background:#fff3cd;color:#4d3b00;border:1px solid #e0c36a;padding:.25rem .6rem;font-size:.9rem}.opportunities{padding-left:1.2rem}.provider{color:var(--muted)}h1,h2,h3{line-height:1.25;font-weight:700}h1{font-size:1.9rem;margin:1rem 0}h2{font-size:1.45rem;margin:1.75rem 0 .5rem}h3{font-size:1.15rem;margin:1.25rem 0 .4rem}main>p,.prose,.summary{max-width:44rem}header{border-bottom:1px solid var(--border)}.site-name{margin:.25rem 0;font-size:1.15rem;font-weight:700}.site-name a{text-decoration:none}nav a,footer a,.opportunities a,.tile h2 a{display:inline-block;min-height:44px;line-height:44px;padding:0 .5rem}.opportunities a{line-height:1.4;padding:.6rem 0}footer a{min-height:0;line-height:inherit;padding:.6rem .25rem}.tile h2 a{line-height:1.3;padding:.5rem 0}nav ul{gap:0 .25rem}summary{padding:.7rem 0;min-height:44px;cursor:pointer}select{min-height:44px;font-size:1rem;padding:0 .5rem}.tile{background:var(--surface)}footer{border-top:1px solid var(--border);margin-top:2rem;font-size:.95rem}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}@media (max-width: 30rem){h1{font-size:1.6rem}header,main,footer{padding:.75rem}.value{font-size:1.35rem}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media print{.skip-link,nav,.chart-detail,.js-only{display:none!important}body{font-size:11pt}a{color:inherit}.tile,.chart,tr{break-inside:avoid}details>summary{list-style:none}}.map-island{margin:1.5rem 0 2rem}.map-head h2{margin-top:0}.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}.chip{min-height:44px;padding:0 1rem;border:1px solid var(--border);border-radius:999px;background:var(--bg);color:var(--fg);font:inherit;font-size:.95rem;cursor:pointer}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.map-stage{position:relative;width:100%;aspect-ratio:4 / 3;max-height:80vh;border-radius:1rem;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#fff 0%,var(--surface) 70%);box-shadow:0 1px #0000000a,0 12px 40px -16px #0f281e40}@media (max-width: 40rem){.map-stage{aspect-ratio:4 / 5}}.map-poster,.map-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;max-width:none}.map-poster{padding:4%;transition:opacity .6s ease}.poster-parish{fill:#eef1f0;stroke:#94a3b8;stroke-width:2}.poster-cholsey{fill:#0b5d3b2e;stroke:var(--accent);stroke-width:5}.map-canvas{opacity:0;transition:opacity .8s ease;cursor:grab;touch-action:none}.map-canvas:active{cursor:grabbing}.map-island[data-state=ready] .map-canvas{opacity:1}.map-island[data-state=ready] .map-poster{opacity:0}.map-pins{position:absolute;inset:0;pointer-events:none}.map-pins[hidden]{display:none}.map-pin{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;display:inline-flex;flex-direction:column;align-items:center;min-width:44px;min-height:44px;padding:.25rem .6rem;border:0;border-radius:.75rem;background:#ffffffeb;color:var(--fg);font:inherit;font-size:.8rem;line-height:1.2;box-shadow:0 4px 14px #0f281e38;cursor:pointer}.map-pin:after{content:"";position:absolute;left:50%;bottom:-5px;width:10px;height:10px;background:inherit;transform:translate(-50%) rotate(45deg)}.map-pin-subject{background:var(--accent);color:#fff}.pin-value{font-weight:700;font-size:.95rem}.pin-none{font-weight:400;opacity:.7;font-size:.75rem}.map-card{position:absolute;z-index:3;width:min(18rem,calc(100% - 1rem));padding:1rem;border-radius:.9rem;background:#fffffff7;box-shadow:0 10px 40px #0f281e4d;font-size:.92rem;max-height:calc(100% - 1rem);overflow:auto}.map-card[hidden]{display:none}.map-card h3{margin:0 1.5rem .25rem 0}.card-close{position:absolute;top:.25rem;right:.25rem;min-width:44px;min-height:44px;border:0;background:none;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--muted)}.card-link{display:inline-block;padding:.6rem 0;font-weight:600}.map-status{position:absolute;left:0;right:0;bottom:.5rem;margin:0;text-align:center;font-size:.85rem;color:var(--muted);pointer-events:none}.map-island[data-state=ready] .map-status:empty{display:none}.map-attribution{font-size:.8rem;color:var(--muted);margin:.5rem 0 0}.map-legend{position:absolute;left:.75rem;top:.6rem;margin:0;padding:.2rem .6rem;border-radius:999px;background:#ffffffe6;font-size:.8rem;font-weight:600;pointer-events:none}.map-legend:empty{display:none}.js [data-reveal]{opacity:0;transform:translateY(14px)}.js [data-reveal].in{opacity:1;transform:none;transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}.js .reveal-rect,.js .bar{transform-box:fill-box;transform-origin:left center;transform:scaleX(0)}.js .in .reveal-rect,.js .in .bar{transform:scaleX(1);transition:transform 1.3s cubic-bezier(.2,.7,.2,1)}.js .in .bar{transition-duration:.9s;transition-delay:calc(var(--i, 0) * 70ms)}@media (prefers-reduced-motion: reduce){.js [data-reveal],.js .reveal-rect,.js .bar{opacity:1;transform:none}}.hero{padding:2.5rem 0 .5rem}.eyebrow{margin:0 0 .5rem;font-size:.85rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.hero h1{font-size:clamp(2.2rem,6vw,3.8rem);letter-spacing:-.02em;margin:0 0 .75rem;max-width:18ch}.lede{font-size:clamp(1.1rem,2.4vw,1.4rem);color:var(--muted);max-width:38rem;margin:0 0 1rem}.beat{margin:4rem 0}.beat>h2{font-size:clamp(1.6rem,4vw,2.3rem);letter-spacing:-.015em;margin:0 0 .25rem}.beat-text{color:var(--muted);max-width:40rem;margin:0 0 1.5rem}.sub{margin-top:2rem}.tile{border:0;border-radius:1.1rem;box-shadow:0 1px #0000000a,0 10px 30px -18px #0f281e59}.tile h3{margin:0 0 .5rem;font-size:1.1rem}.tile h4{margin:.75rem 0 .25rem;font-size:.95rem}.value [data-countup]{font-variant-numeric:tabular-nums}.strips{display:grid;gap:1.5rem}.strip{padding:1rem 1.25rem;border-radius:1rem;background:var(--surface)}.strip-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;align-items:baseline}.strip-head h3{margin:0;font-size:1.05rem}.strip-head .indicators{display:flex;flex-wrap:wrap;gap:.25rem 1rem;margin:0}.strip-track{position:relative;height:2.4rem;margin:.75rem 0 .5rem}.strip-track:before{content:"";position:absolute;left:0;right:0;top:50%;height:4px;border-radius:2px;background:var(--border);transform:translateY(-50%)}.marker{position:absolute;top:50%;left:var(--pos);width:1.2rem;height:1.2rem;transform:translate(-50%,-50%);background:var(--chart-cholsey);border-radius:50%}.marker-cholsey{width:1.5rem;height:1.5rem;box-shadow:0 0 0 4px #0b5d3b33}.marker-district{background:var(--bg);border:3px solid var(--chart-district)}.marker-national{background:var(--chart-national);border-radius:2px;transform:translate(-50%,-50%) rotate(45deg)}.js .strip:not(.in) .marker{left:0}.js .strip.in .marker{transition:left 1.1s cubic-bezier(.2,.8,.2,1)}.strip-legend{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;font-size:.9rem}.swatch{position:static;display:inline-block;width:.8rem;height:.8rem;margin-right:.35rem;transform:none;box-shadow:none;vertical-align:baseline}.swatch.marker-national{transform:rotate(45deg) scale(.85)}.changing,.actions{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem}.changing li,.actions li{padding:1.1rem 1.25rem;border-radius:1rem;background:var(--surface)}.changing h3{margin:0 0 .5rem;font-size:1.05rem}.sparkline-big .sparkline{width:100%;max-width:22rem}.actions li{display:flex;flex-direction:column;gap:.15rem}.actions li>a:first-of-type{font-weight:600;font-size:1.05rem}.actions .more{margin-top:.5rem;font-size:.9rem}header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.25rem 1.5rem}.site-name{margin:0}.site-name a{display:inline-flex;align-items:center;gap:.6rem;color:var(--accent);font-size:1.2rem;font-weight:700;min-height:44px;text-decoration:none}.site-name small{display:block;font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.logo{width:2rem;height:2rem;flex:none}nav a{text-decoration:none;color:var(--fg);font-size:.95rem;border-radius:999px;padding:0 .8rem}nav a:hover{background:var(--surface)}nav a[aria-current=page]{background:var(--accent);color:#fff}@media (min-width: 64rem){.tiles{grid-template-columns:repeat(4,1fr)}.tile[data-tile=home_energy],.tile[data-tile=solar_pv],.tile[data-tile=heat_pump]{grid-column:span 2}.tile[data-tile=home_energy]{display:grid;grid-template-columns:1fr 1fr;column-gap:1.5rem;align-content:start}.tile[data-tile=home_energy]>h3{grid-column:1 / -1}}.swatch.marker-cholsey{width:.8rem;height:.8rem;background:var(--chart-cholsey);box-shadow:none}.strip-legend strong{margin-left:.3rem}.unit-suffix{font-size:.6em;font-weight:600;color:var(--muted);margin-left:.1em}.hero .draft-notice{display:table}.scrub{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin:.5rem 0}.scrub[hidden]{display:none}.play{min-width:44px;min-height:44px;padding:0 1.1rem;border:0;border-radius:999px;background:var(--accent);color:#fff;font:inherit;font-weight:600;cursor:pointer}.scrub label{display:flex;align-items:center;gap:.5rem;flex:1 1 12rem}.scrub input[type=range]{flex:1;min-height:44px;accent-color:var(--accent)}.readout{flex-basis:100%;margin:0;font-size:.9rem}.readout-item{margin-left:.8rem;font-variant-numeric:tabular-nums}.cursor{stroke:var(--fg);stroke-width:1.5;stroke-dasharray:3 3;pointer-events:none}.map-start{position:absolute;left:50%;bottom:1.25rem;transform:translate(-50%);z-index:2;min-height:44px;padding:0 1.4rem;border:0;border-radius:999px;background:var(--accent);color:#fff;font:inherit;font-weight:600;box-shadow:0 6px 20px #0b5d3b66;cursor:pointer}.map-start[hidden]{display:none}.unit-long{display:block;margin:.1rem 0 0;font-size:.7em}.reveal-failsafe [data-reveal]{opacity:1!important;transform:none!important}.map-canvas{visibility:hidden}.map-island[data-state=ready] .map-canvas{visibility:visible}.map-island:not([data-state=ready]) .map-poster,.map-island:not([data-state=ready]) .map-pins{inset:50% auto auto 50%;height:92%;width:auto;aspect-ratio:var(--poster-ratio);transform:translate(-50%,-50%);padding:0}@media print{[data-reveal],.js [data-reveal]{opacity:1!important;transform:none!important}.js .reveal-rect,.js .bar{transform:none!important}.js .strip .marker{left:var(--pos)!important}.map-start,.chips{display:none!important}}
