:root{color-scheme:dark;--paper:#11110f;--panel:rgba(17,17,15,.93);--ink:#eee8df;--muted:#9a958c;--dim:#6e6a64;--line:rgba(238,232,223,.18);--heat:#ef6548;--amber:#efb45e;--blue:#85a9c5;--ease:cubic-bezier(.22,.74,.18,1)}
*{box-sizing:border-box}html,body,#app,#map{width:100%;height:100%;margin:0;overflow:hidden}body{background:var(--paper);font-family:"Space Grotesk",sans-serif;color:var(--ink)}button,input{font:inherit}.sr-only{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden}
#app{position:relative;background:#080808}.mapboxgl-canvas{outline:0}.mapboxgl-ctrl-logo{opacity:.65}.mapboxgl-ctrl-attrib{background:rgba(15,15,14,.64)!important;color:#999!important}.mapboxgl-ctrl-attrib a{color:#aaa!important}.mapboxgl-ctrl-group{border-radius:0!important;background:rgba(17,17,15,.86)!important;box-shadow:0 0 0 .5px var(--line)!important}.mapboxgl-ctrl button+button{border-top:.5px solid var(--line)!important}.mapboxgl-ctrl-icon{filter:invert(1);opacity:.72}.map-vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 44%,transparent 44%,rgba(0,0,0,.14) 74%,rgba(0,0,0,.36) 120%);z-index:2}
.masthead{position:absolute;z-index:10;top:0;left:0;right:0;height:82px;padding:0 26px;display:grid;grid-template-columns:1fr minmax(260px,480px) 1fr;align-items:center;border-bottom:.5px solid var(--line);background:linear-gradient(180deg,rgba(12,12,11,.93),rgba(12,12,11,.72) 75%,transparent);pointer-events:none}.masthead>*{pointer-events:auto}.brand{width:max-content;display:flex;align-items:center;gap:13px;color:inherit;text-decoration:none}.brand-mark{position:relative;width:35px;height:35px;border-radius:50%;background:radial-gradient(circle at 65% 35%,#ffd36f 0 3%,#ee6d4e 28%,#bb3c33 70%,#512023);box-shadow:0 0 30px rgba(239,101,72,.22)}.brand-mark:before,.brand-mark:after,.brand-mark i{content:"";position:absolute;border-radius:50%;background:rgba(80,17,20,.24)}.brand-mark:before{width:6px;height:6px;left:9px;top:8px}.brand-mark:after{width:3px;height:3px;right:8px;bottom:10px}.brand-mark i{width:4px;height:4px;right:7px;top:8px}.brand b{display:block;font:500 20px/1 "Playfair Display",serif;letter-spacing:-.02em}.brand small{display:block;margin-top:4px;color:var(--muted);font-size:8px;letter-spacing:.15em;text-transform:uppercase}.search{position:relative}.search input{width:100%;height:40px;padding:0 42px 0 14px;border:.5px solid rgba(238,232,223,.32);border-radius:0;background:rgba(20,20,19,.74);backdrop-filter:blur(12px);color:var(--ink);outline:0;font-size:11px}.search input:focus{border-color:rgba(239,180,94,.82);background:rgba(20,20,19,.92)}.search button{position:absolute;right:0;top:0;width:40px;height:40px;border:0;background:transparent;color:var(--muted);font-size:22px;cursor:pointer}.mast-actions{justify-self:end;display:flex;gap:8px}.icon-button{height:34px;padding:0 12px;border:.5px solid var(--line);background:rgba(18,18,17,.72);color:#b7b1a8;font-size:9px;letter-spacing:.1em;cursor:pointer}.icon-button:hover,.icon-button[aria-expanded=true]{border-color:rgba(239,180,94,.72);color:#fff}.icon-button.accent{color:var(--amber)}.layer-glyph{display:inline-grid;width:12px;height:10px;margin-right:7px;vertical-align:-1px;border-top:1px solid currentColor;border-bottom:1px solid currentColor;position:relative}.layer-glyph:after{content:"";position:absolute;left:2px;right:2px;top:4px;border-top:1px solid currentColor}
.welcome{position:absolute;z-index:8;left:7.5vw;top:50%;transform:translateY(-48%);width:min(500px,42vw);padding:34px 38px;border:.5px solid rgba(238,232,223,.32);background:rgba(16,16,15,.84);backdrop-filter:blur(18px);box-shadow:0 28px 80px rgba(0,0,0,.28);transition:opacity .45s var(--ease),transform .55s var(--ease),visibility .45s}.welcome.dismissed{opacity:0;visibility:hidden;transform:translateY(-44%) scale(.98)}.welcome-close{position:absolute;right:14px;top:10px;border:0;background:none;color:#aaa;font-size:22px;cursor:pointer}.eyebrow{margin:0 0 12px;color:var(--amber);font:600 10px/1 "Cormorant SC",serif;letter-spacing:.2em}.welcome h1{margin:0;font:500 clamp(36px,4.1vw,62px)/.98 "Playfair Display",serif;letter-spacing:-.048em}.welcome h1 em{color:#d5cec4;font-weight:500}.welcome>p:not(.eyebrow){max-width:410px;margin:22px 0;color:#b2aca3;font-size:13px;line-height:1.65}.welcome-actions{display:flex;align-items:center;gap:18px}.primary{height:40px;padding:0 16px;border:.5px solid rgba(239,101,72,.8);background:rgba(239,101,72,.09);color:#f28a73;font-size:9px;font-weight:600;letter-spacing:.1em;cursor:pointer}.primary:hover{background:rgba(239,101,72,.2)}.welcome-actions span{max-width:150px;color:var(--dim);font-size:8px;line-height:1.4}
.layers-panel{position:absolute;z-index:14;right:26px;top:70px;width:320px;max-height:calc(100vh - 100px);overflow:auto;border:.5px solid var(--line);background:var(--panel);backdrop-filter:blur(20px);box-shadow:0 28px 80px rgba(0,0,0,.36);animation:panel-in .28s var(--ease) both}.layers-panel[hidden]{display:none}@keyframes panel-in{from{opacity:0;transform:translateY(-8px)}}.panel-heading{height:66px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:.5px solid var(--line)}.panel-heading span,.layer-section>span{display:block;color:var(--amber);font:600 9px "Cormorant SC",serif;letter-spacing:.18em}.panel-heading b{display:block;margin-top:4px;font:500 18px "Playfair Display",serif}.panel-heading button{border:0;background:none;color:var(--muted);font-size:22px;cursor:pointer}.layer-options{margin:0;padding:14px 14px 8px;border:0;border-bottom:.5px solid var(--line)}.layer-options legend{padding:0 4px 7px;color:var(--dim);font-size:8px;text-transform:uppercase;letter-spacing:.1em}.layer-options label{min-height:51px;padding:8px;display:grid;grid-template-columns:14px 8px 1fr auto;gap:9px;align-items:center;cursor:pointer;border-left:2px solid transparent}.layer-options label:hover{background:rgba(255,255,255,.025)}.layer-options label:has(input:checked){border-left-color:var(--heat);background:linear-gradient(90deg,rgba(239,101,72,.11),transparent)}.layer-options input{position:absolute;opacity:0}.swatch{width:7px;height:7px;border-radius:50%;box-shadow:0 0 8px currentColor}.swatch.heatwave{color:#e95d47;background:#e95d47}.swatch.air{color:#85a9c5;background:#85a9c5}.swatch.surface{color:#ef9d55;background:#ef9d55}.swatch.modis{color:#d87b8e;background:#d87b8e}.layer-options b,.switch-row b{display:block;font-size:10px;font-weight:500}.layer-options small,.switch-row small{display:block;margin-top:3px;color:var(--dim);font-size:8px}.layer-options em{color:var(--muted);font-size:8px;font-style:normal}.layer-section{padding:16px 18px;border-bottom:.5px solid var(--line)}.switch-row{padding:10px 0;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.switch-row input{position:absolute;opacity:0}.switch-row i{width:28px;height:14px;border:.5px solid #4f4c47;position:relative}.switch-row i:after{content:"";position:absolute;width:8px;height:8px;left:3px;top:2px;background:#65615b;transition:.2s}.switch-row input:checked+i{border-color:rgba(239,101,72,.68)}.switch-row input:checked+i:after{left:15px;background:var(--heat)}.layer-note{margin:0;padding:14px 18px;color:var(--dim);font-size:8px;line-height:1.5}
.scale-indicator{position:absolute;z-index:6;left:26px;top:104px;padding:9px 11px;display:grid;grid-template-columns:8px auto;column-gap:8px;border:.5px solid var(--line);background:rgba(17,17,15,.72);backdrop-filter:blur(10px);pointer-events:none}.scale-indicator i{grid-row:1/3;width:6px;height:6px;margin-top:3px;border-radius:50%;background:var(--heat);box-shadow:0 0 12px var(--heat)}.scale-indicator span{font-size:9px;letter-spacing:.11em}.scale-indicator small{margin-top:2px;color:var(--dim);font-size:7px;letter-spacing:.1em}.legend{position:absolute;z-index:6;left:26px;bottom:28px;width:236px;padding:12px 13px;border:.5px solid var(--line);background:rgba(17,17,15,.78);backdrop-filter:blur(12px)}.legend-title{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:9px}.legend-title span{color:#c8c1b8;font-size:8px;letter-spacing:.1em}.legend-title b{color:var(--amber);font-size:8px;font-weight:500}.temperature-ramp{height:6px;background:linear-gradient(90deg,#283f8f,#5d55aa,#a65491,#df5a59,#f39a50,#ffe07a)}.legend-ticks{display:flex;justify-content:space-between;margin-top:5px;color:#aaa39a;font-size:7px}.legend>small{display:block;margin-top:8px;color:var(--dim);font-size:7px;letter-spacing:.12em}.city-rank{position:absolute;z-index:6;left:26px;bottom:134px;width:236px;border:.5px solid var(--line);background:rgba(17,17,15,.78);backdrop-filter:blur(12px);transition:opacity .35s,transform .35s}.city-rank.hidden{opacity:0;pointer-events:none;transform:translateY(8px)}.rank-head{padding:10px 12px;border-bottom:.5px solid var(--line)}.rank-head span{display:block;color:var(--amber);font:600 8px "Cormorant SC",serif;letter-spacing:.14em}.rank-head small{color:var(--dim);font-size:7px}.rank-item{width:100%;height:34px;padding:0 12px;display:grid;grid-template-columns:17px 1fr auto;align-items:center;border:0;border-bottom:.5px solid rgba(238,232,223,.08);background:transparent;color:var(--ink);text-align:left;cursor:pointer}.rank-item:hover{background:rgba(255,255,255,.04)}.rank-item i{color:var(--dim);font-size:8px;font-style:normal}.rank-item b{font-size:9px;font-weight:500}.rank-item span{color:#f08970;font-size:9px}.timeline{position:absolute;z-index:7;left:50%;bottom:28px;transform:translateX(-50%);width:min(620px,52vw);height:67px;padding:0 16px;display:grid;grid-template-columns:36px 104px 1fr;align-items:center;gap:12px;border:.5px solid var(--line);background:rgba(17,17,15,.86);backdrop-filter:blur(16px);box-shadow:0 16px 50px rgba(0,0,0,.22)}.play{width:32px;height:32px;border:.5px solid rgba(239,101,72,.62);background:rgba(239,101,72,.09);color:#f08068;cursor:pointer}.play.playing span{display:inline-block;transform:rotate(90deg)}.time-copy span{display:block;color:var(--dim);font-size:7px;letter-spacing:.1em}.time-copy b{display:block;margin-top:4px;font:500 12px "Playfair Display",serif}.timeline input{width:100%;height:16px;accent-color:var(--heat);cursor:pointer}.time-ends{grid-column:3;display:flex;justify-content:space-between;margin-top:-10px;color:var(--dim);font-size:7px}
.analysis{position:absolute;z-index:12;right:0;top:0;width:390px;height:100%;padding:105px 30px 24px;border-left:.5px solid var(--line);background:rgba(15,15,14,.94);backdrop-filter:blur(22px);box-shadow:-24px 0 80px rgba(0,0,0,.25);transform:translateX(102%);transition:transform .55s var(--ease);overflow:auto}.analysis.open{transform:translateX(0)}.analysis-close{position:absolute;top:99px;right:24px;border:0;background:none;color:#aaa;font-size:23px;cursor:pointer}.analysis h2{margin:0;font:500 36px/1 "Playfair Display",serif;letter-spacing:-.035em}.analysis-place{margin:8px 0 18px;color:var(--muted);font-size:9px}.metric-grid{display:grid;grid-template-columns:1fr 1fr;border:.5px solid var(--line);background:var(--line);gap:1px}.metric-grid>div{min-height:72px;padding:12px;background:#151514}.metric-grid span{display:block;color:var(--dim);font-size:7px;letter-spacing:.08em}.metric-grid b{display:block;margin-top:8px;font:500 19px "Playfair Display",serif}.chart-title{display:flex;justify-content:space-between;align-items:baseline;margin:24px 0 8px}.chart-title b{font:500 16px "Playfair Display",serif}.chart-title span{color:var(--dim);font-size:7px}.analysis svg{display:block;width:100%;height:148px}.chart-grid{stroke:rgba(238,232,223,.1);stroke-width:.6}.chart-at{fill:none;stroke:var(--blue);stroke-width:2}.chart-lst{fill:none;stroke:var(--heat);stroke-width:2}.chart-at-dot{fill:var(--blue)}.chart-lst-dot{fill:var(--heat)}.chart-key{display:flex;gap:18px;color:var(--muted);font-size:8px}.chart-key i{display:inline-block;width:14px;height:2px;margin-right:5px;vertical-align:middle}.chart-key .lst-line{background:var(--heat)}.chart-key .at-line{background:var(--blue)}.analysis-story{margin-top:22px;padding:15px 0;border-top:.5px solid var(--line);border-bottom:.5px solid var(--line)}.analysis-story span{color:var(--amber);font:600 8px "Cormorant SC",serif;letter-spacing:.16em}.analysis-story p{margin:8px 0 0;color:#b4aea5;font-size:10px;line-height:1.5}.data-note{color:var(--dim);font-size:8px;line-height:1.5}
.map-loading{position:absolute;z-index:30;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0e0e0d;transition:opacity .55s,visibility .55s}.map-loading.done{opacity:0;visibility:hidden}.map-loading span{width:42px;height:42px;margin-bottom:18px;border:1px solid rgba(239,101,72,.25);border-top-color:var(--heat);border-radius:50%;animation:spin 1s linear infinite}.map-loading b{font:500 20px "Playfair Display",serif}.map-loading small{margin-top:7px;color:var(--dim);font-size:8px;letter-spacing:.1em}@keyframes spin{to{transform:rotate(360deg)}}.map-error{position:absolute;z-index:31;left:50%;top:50%;transform:translate(-50%,-50%);padding:24px 28px;border:.5px solid rgba(239,101,72,.5);background:#171514}.map-error b{display:block;font:500 20px "Playfair Display",serif}.map-error span{display:block;margin-top:8px;color:var(--muted);font-size:10px}
@media(max-width:1000px){.masthead{grid-template-columns:1fr minmax(230px,360px) auto}.icon-button:not(.accent){display:none}.welcome{width:min(500px,52vw)}.analysis{width:360px}.city-rank{display:none}.timeline{width:min(560px,58vw)}}
@media(max-width:700px){.masthead{height:68px;padding:0 14px;grid-template-columns:1fr 42px}.brand small,.mast-actions .icon-button:not(.accent){display:none}.brand b{font-size:18px}.search{justify-self:end;width:38px}.search input{position:absolute;right:0;width:min(82vw,360px);opacity:0;pointer-events:none}.search:focus-within input{opacity:1;pointer-events:auto}.search button{border:.5px solid var(--line)}.mast-actions{position:absolute;right:14px;top:76px}.welcome{left:12px;right:12px;top:auto;bottom:100px;width:auto;transform:none;padding:24px}.welcome.dismissed{transform:translateY(12px)}.welcome h1{font-size:38px}.welcome-actions span{display:none}.scale-indicator{left:12px;top:76px}.legend{left:12px;bottom:90px;width:190px}.timeline{left:12px;right:12px;bottom:12px;transform:none;width:auto;grid-template-columns:34px 82px 1fr;padding:0 10px}.layers-panel{right:12px;left:12px;top:116px;width:auto}.analysis{top:auto;bottom:0;width:100%;height:min(74vh,650px);padding:30px 20px 92px;border-left:0;border-top:.5px solid var(--line);transform:translateY(102%)}.analysis.open{transform:translateY(0)}.analysis-close{top:20px}.analysis h2{font-size:30px}.mapboxgl-ctrl-top-right{top:125px}}

/* v1.1 palettes, guided tour and reserved story entry */
.icon-button:disabled{cursor:default;opacity:.66}.story-button small{margin-left:5px;color:var(--heat);font-size:6px;letter-spacing:.08em}
.text-button{height:36px;padding:0 4px;border:0;border-bottom:.5px solid rgba(238,232,223,.28);background:transparent;color:#aaa39a;font-size:8px;letter-spacing:.14em;cursor:pointer}.text-button:hover{color:#fff;border-bottom-color:var(--amber)}
.swatch{width:18px;height:5px;border-radius:0;box-shadow:none}.swatch.heatwave{color:#d73027;background:linear-gradient(90deg,#1a9850,#91cf60,#fee08b,#fc8d59,#d73027)}.swatch.air{color:#a50026;background:linear-gradient(90deg,#313695,#74add1,#ffffbf,#f46d43,#a50026)}.swatch.surface{color:#d7191c;background:linear-gradient(90deg,#2b83ba,#abdda4,#ffffbf,#fdae61,#d7191c)}.swatch.modis{color:#d7191c;background:linear-gradient(90deg,#001b7a,#0067ff,#00d5d5,#73d055,#fde725,#f98e09,#d7191c)}
.layer-options label{grid-template-columns:14px 18px minmax(0,1fr) auto}
.temperature-ramp{background:linear-gradient(90deg,#1a9850,#66bd63,#a6d96a,#d9ef8b,#fee08b,#fdae61,#f46d43,#d73027,#7f0000)}.legend[data-field=modis] .temperature-ramp{background:linear-gradient(90deg,#001b7a,#004cff,#00b7ff,#00dfbd,#65d35f,#d9e21a,#ffd429,#ff8c16,#ef3b24,#8b0000)}.legend[data-field=at] .temperature-ramp{background:linear-gradient(90deg,#313695,#4575b4,#74add1,#abd9e9,#e0f3f8,#ffffbf,#fee090,#f46d43,#d73027,#a50026)}.legend[data-field=lst] .temperature-ramp{background:linear-gradient(90deg,#2b83ba,#80bfac,#c7e9ad,#ffffbf,#fdae61,#f46d43,#d7191c)}
.tour{position:absolute;inset:0;z-index:40;pointer-events:none}.tour[hidden]{display:none}.tour-popover{position:fixed;width:min(320px,calc(100vw - 24px));padding:20px 22px;border:.5px solid rgba(239,180,94,.62);background:rgba(15,15,14,.96);backdrop-filter:blur(20px);box-shadow:0 24px 70px rgba(0,0,0,.48);pointer-events:auto;opacity:0;transform:translateY(8px) scale(.98);transition:opacity .28s var(--ease),transform .32s var(--ease),left .36s var(--ease),top .36s var(--ease)}.tour-popover.is-visible{opacity:1;transform:none}.tour-count{display:block;color:var(--amber);font:600 9px "Cormorant SC",serif;letter-spacing:.18em}.tour-popover h2{margin:10px 0 8px;font:500 24px/1.08 "Playfair Display",serif}.tour-popover p{margin:0;color:#b7b1a8;font-size:10px;line-height:1.6}.tour-actions{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.tour-actions .primary{height:34px}.tour-focus{outline:1px solid rgba(255,194,96,.92)!important;outline-offset:5px;box-shadow:0 0 0 7px rgba(239,180,94,.12),0 0 36px rgba(239,101,72,.24)!important;transition:outline-color .3s,box-shadow .3s!important}
@media(max-width:1000px){.mast-actions #about-toggle,.mast-actions .story-button{display:block}.tour-popover{width:min(300px,calc(100vw - 24px))}}
@media(max-width:700px){.mast-actions #about-toggle{display:none}.story-button{display:none!important}.tour-popover{padding:17px 18px}.tour-popover h2{font-size:21px}}

/* v1.2 London Landsat city raster */
.city-data-callout{padding:16px 18px;border-bottom:.5px solid var(--line);background:linear-gradient(115deg,rgba(239,101,72,.1),transparent 70%)}.city-data-callout>span,.urban-raster>span{display:block;color:var(--amber);font:600 9px "Cormorant SC",serif;letter-spacing:.16em}.city-data-callout b{display:block;margin-top:6px;font:500 16px "Playfair Display",serif}.city-data-callout small{display:block;margin-top:3px;color:var(--dim);font-size:8px}.city-data-callout button{margin-top:12px;padding:7px 10px;border:.5px solid rgba(239,101,72,.65);background:rgba(239,101,72,.08);color:#e8d9cc;font-size:8px;letter-spacing:.12em;cursor:pointer}.city-data-callout button:hover{background:var(--heat);color:#130d0b}
.urban-raster{margin-top:16px;padding:14px;border:.5px solid rgba(239,180,94,.32);background:linear-gradient(120deg,rgba(239,101,72,.09),rgba(8,8,8,.16))}.urban-raster[hidden]{display:none}.urban-raster b{display:block;margin-top:6px;font-size:11px;font-weight:500}.urban-raster small{display:block;margin-top:4px;color:var(--dim);font-size:8px;line-height:1.45}.scene-switch{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:12px}.scene-switch button{min-height:31px;padding:5px;border:.5px solid #393632;background:#151412;color:#8e8981;font-size:7px;line-height:1.2;letter-spacing:.08em;cursor:pointer}.scene-switch button.active{border-color:var(--heat);background:rgba(239,101,72,.14);color:#f0ddd1}.legend[data-field=landsat] .temperature-ramp{background:linear-gradient(90deg,#313695,#4575b4,#74add1,#abd9e9,#ffffbf,#fdae61,#f46d43,#d73027,#7f0000)}
.timeline.city-raster-active{opacity:.2;pointer-events:none;transform:translateX(-50%) translateY(12px)}
@media(max-width:700px){.city-data-callout{padding:14px}.urban-raster{margin-top:12px}.timeline.city-raster-active{display:none}}

/* v1.8 London research dossier and event story */
.story-button:not(:disabled){border-color:rgba(239,180,94,.42);color:#e6d6c8}.story-button:not(:disabled):hover{border-color:var(--amber);color:#fff}.story-button small{color:var(--amber)}
.london-research{margin-top:16px;border-top:.5px solid var(--line)}.london-research[hidden]{display:none}.research-heading{padding:18px 0 12px}.research-heading>span,.research-chart-head span{display:block;color:var(--amber);font:600 8px "Cormorant SC",serif;letter-spacing:.16em}.research-heading>b{display:block;margin-top:6px;font:500 18px "Playfair Display",serif}.research-heading>small{display:block;margin-top:6px;color:var(--dim);font-size:8px;line-height:1.5}
.analysis.london-mode>.chart-title,.analysis.london-mode>#point-chart,.analysis.london-mode>.chart-key{display:none}
.research-layers{display:grid;grid-template-columns:1fr 1fr;gap:5px}.research-layers button{min-height:48px;padding:8px;display:grid;grid-template-columns:9px 1fr;gap:8px;align-items:center;text-align:left;border:.5px solid #36332f;background:#151412;color:#aaa49b;cursor:pointer}.research-layers button:hover{border-color:#6d665e}.research-layers button.active{border-color:rgba(239,180,94,.76);background:rgba(239,101,72,.1);color:#f0e4db}.research-layers b{display:block;font-size:8px;font-weight:500}.research-layers small{display:block;margin-top:3px;color:var(--dim);font-size:7px}.research-swatch{width:8px;height:22px;background:#666}.research-swatch.lst-summer{background:linear-gradient(#d73027,#ffffbf,#4575b4)}.research-swatch.ndvi{background:linear-gradient(#1d5f37,#dcd88e,#76563d)}.research-swatch.ndwi{background:linear-gradient(#235b93,#e2e1d5,#68503d)}.research-swatch.elevation{background:linear-gradient(#e0dccf,#9b8b5b,#2e4942)}.research-swatch.aef{background:linear-gradient(#f41f91,#00d4b0,#5b35ef)}.research-swatch.none{border:.5px solid #80534a;background:linear-gradient(#d73027,#fdae61,#313695)}
.research-stations{margin-top:7px;padding:10px 11px;display:flex;align-items:center;justify-content:space-between;border:.5px solid #36332f;background:#151412;cursor:pointer}.research-stations span>b{display:block;font-size:8px;font-weight:500}.research-stations span>small{display:block;margin-top:3px;color:var(--dim);font-size:7px}.research-stations em{color:var(--amber);font-style:normal}.research-stations input{position:absolute;opacity:0}.research-stations>i{width:28px;height:14px;border:.5px solid #4f4c47;position:relative}.research-stations>i:after{content:"";position:absolute;width:8px;height:8px;left:3px;top:2px;background:#65615b;transition:.2s}.research-stations input:checked+i{border-color:rgba(239,101,72,.68)}.research-stations input:checked+i:after{left:15px;background:var(--heat)}.research-layer-note{min-height:48px;padding:10px 11px;color:#9b958c;font-size:8px;line-height:1.5;border:0 solid var(--line);border-width:0 .5px .5px}
.research-weather{margin-top:20px}.research-chart-head{display:flex;align-items:end;justify-content:space-between}.research-chart-head b{font:500 14px "Playfair Display",serif}.research-weather svg{height:154px}.weather-grid{stroke:rgba(238,232,223,.1);stroke-width:.6}.weather-area{fill:url(#weather-fill)}.weather-mean{fill:none;stroke:var(--amber);stroke-width:2}.weather-max{fill:none;stroke:var(--heat);stroke-width:1.2;stroke-dasharray:3 3}.weather-dot{fill:var(--amber)}.research-chart-key{display:flex;gap:14px;color:var(--dim);font-size:7px}.research-chart-key i{display:inline-block;width:13px;height:2px;margin-right:5px;vertical-align:middle;background:var(--amber)}.research-chart-key span+span i{height:1px;background:var(--heat)}
.research-pipeline{margin-top:20px;border-top:.5px solid var(--line)}.pipeline-title{padding:14px 0 8px;color:var(--amber);font:600 8px "Cormorant SC",serif;letter-spacing:.16em}.pipeline-card{padding:11px 0;display:grid;grid-template-columns:24px 1fr auto;gap:8px;border-bottom:.5px solid var(--line)}.pipeline-card>i{color:#625d56;font:500 12px "Playfair Display",serif}.pipeline-card b{display:block;font-size:8px;font-weight:500}.pipeline-card small{display:block;margin-top:4px;color:var(--dim);font-size:7px;line-height:1.45}.pipeline-card em{align-self:start;padding:3px 5px;border:.5px solid #45413c;color:#7f7971;font-size:6px;font-style:normal;letter-spacing:.08em}.research-source{margin:14px 0 0;color:#625e58;font-size:7px;line-height:1.5}
.heat-story{position:absolute;z-index:36;inset:0;pointer-events:none}.heat-story[hidden]{display:none}.story-card{position:absolute;left:26px;bottom:92px;width:min(370px,calc(100vw - 52px));padding:22px 24px;border:.5px solid rgba(239,180,94,.56);background:rgba(15,15,14,.96);backdrop-filter:blur(22px);box-shadow:0 26px 80px rgba(0,0,0,.48);pointer-events:auto;animation:story-in .38s var(--ease) both}@keyframes story-in{from{opacity:0;transform:translateY(12px)}}.story-kicker{display:flex;align-items:center;justify-content:space-between;color:var(--amber);font:600 8px "Cormorant SC",serif;letter-spacing:.18em}.story-kicker button{border:0;background:transparent;color:var(--muted);font-size:20px;cursor:pointer}.story-progress{height:1px;margin:10px 0 18px;background:#38342f}.story-progress i{display:block;width:16.66%;height:1px;background:var(--heat);transition:width .35s var(--ease)}.story-card h2{margin:8px 0 10px;font:500 29px/1.06 "Playfair Display",serif;letter-spacing:-.025em}.story-card>p:not(.eyebrow){margin:0;color:#b7b1a8;font-size:10px;line-height:1.65}.story-fact{margin-top:14px;padding:11px 12px;border-left:2px solid var(--heat);background:rgba(239,101,72,.08);color:#d7c9bd;font-size:8px;line-height:1.5}.story-actions{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.story-actions .primary{height:34px}.story-actions .text-button:disabled{opacity:.3;cursor:default}
.legend[data-field=lst-summer] .temperature-ramp{background:linear-gradient(90deg,#313695,#4575b4,#abd9e9,#ffffbf,#fdae61,#d73027)}.legend[data-field=ndvi] .temperature-ramp{background:linear-gradient(90deg,#76563d,#c59c59,#dcd88e,#6fa64f,#1d5f37)}.legend[data-field=ndwi] .temperature-ramp{background:linear-gradient(90deg,#68503d,#d4be8b,#e2e1d5,#70abbf,#235b93)}.legend[data-field=elevation] .temperature-ramp{background:linear-gradient(90deg,#2e4942,#5b744d,#9b8b5b,#af8f74,#e0dccf)}.legend[data-field=aef] .temperature-ramp{background:linear-gradient(90deg,#f41f91,#5b35ef,#00d4b0,#ffd62e,#ff5d45)}.mapboxgl-popup.research-popup .mapboxgl-popup-content{padding:8px 10px;border:.5px solid var(--line);border-radius:0;background:#171614;color:#ded8cf;font:8px "Space Grotesk",sans-serif}.mapboxgl-popup.research-popup .mapboxgl-popup-tip{border-top-color:#171614}
@media(max-width:1000px){.analysis{width:390px}.story-card{left:18px;bottom:86px}}
@media(max-width:700px){.story-button{display:block!important}.mast-actions{gap:5px}.story-button{position:absolute;right:76px;top:0}.heat-story{z-index:34}.story-card{left:12px;right:12px;bottom:88px;width:auto;padding:18px 19px}.story-card h2{font-size:25px}.london-research{margin-top:12px}.research-layers{grid-template-columns:1fr 1fr}}
.play{display:grid;place-items:center}.play span{line-height:1}.play.playing span{width:10px;height:12px;font-size:0;transform:none;background:linear-gradient(90deg,currentColor 0 3px,transparent 3px 7px,currentColor 7px 10px)}
.scene-switch{grid-template-columns:repeat(3,1fr)}.wow-panel{margin:10px 0;padding:12px;border:1px solid #34515a;background:linear-gradient(145deg,#11252b,#121617)}.wow-panel[hidden]{display:none}.wow-panel header{display:flex;justify-content:space-between;align-items:center;color:#7ddae6;font-size:8px;letter-spacing:.1em}.wow-panel button{background:none;border:0;color:#a5dce4;font-size:20px;cursor:pointer}.wow-panel h3{font:500 17px "Playfair Display",serif;margin:8px 0}.wow-panel p,.wow-panel>small{font-size:8px;line-height:1.6;color:#99a9ad}.wow-panel select{margin:6px;background:#15252a;color:#cce6e9;border:1px solid #34515a;font:9px inherit}.wow-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.wow-fields label{display:flex;align-items:center;font-size:8px;color:#bfd3d6}.wow-fields input{accent-color:#72dfea;margin:0 5px 0 0}.wow-panel details{padding:10px 0;border-top:1px solid #2b4147;font-size:9px}.wow-panel summary{cursor:pointer;color:#bddde2}.wow-panel svg{width:100%;margin-top:8px;overflow:visible}.wow-panel svg text{fill:#92a7ad;font-size:8px}
.research-swatch.lst-summer,.research-swatch.lst-landsat{background:linear-gradient(#fcffa4,#fca50a,#dd513a,#932667,#420a68,#000004)}.research-swatch.ndvi{background:linear-gradient(#004529,#31a354,#addd8e,#ffffe5)}.research-swatch.ndwi{background:linear-gradient(#01665e,#80cdc1,#f5f5f5,#dfc27d,#8c510a)}.research-swatch.mndwi{background:linear-gradient(#014636,#02818a,#67a9cf,#d0d1e6,#fff7fb)}.research-swatch.emissivity{background:linear-gradient(#fde725,#35b779,#21918c,#31688e,#440154)}.research-swatch.elevation{background:linear-gradient(#ffffff,#806655,#ffff99,#33cc66,#00cccc,#333399)}

.exposure-options{padding-bottom:10px}
.exposure-options>span{margin-bottom:7px}
.exposure-options button{width:100%;display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;border:0;border-left:2px solid transparent;padding:10px 7px;background:transparent;color:var(--ink);font:inherit;cursor:pointer;transition:background .22s,border-color .22s}
.exposure-options button:is(:hover,:focus-visible,[aria-pressed=true]){background:linear-gradient(90deg,rgba(239,101,72,.15),rgba(239,101,72,.025));border-left-color:var(--heat)}
.exposure-options b,.exposure-options small{display:block}
.exposure-options b{font-size:11px;font-weight:500}
.exposure-options small{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.3}
.exposure-options em{color:var(--dim);font-size:8px;font-style:normal;letter-spacing:.07em}
.exposure-swatch{height:6px;background:linear-gradient(90deg,#9c3e48,#cf5545,#ed784b,#f49954,#ffbc6d)}
.navigation-stage :is(.legend,.timeline){visibility:hidden;opacity:0;pointer-events:none}
.welcome.dismissed{pointer-events:none}
#exposure-guide{grid-column:2;justify-self:start;margin-top:7px;padding:4px 0 1px;border:0;border-bottom:1px solid transparent;background:none;color:var(--amber);font-family:inherit;font-size:8px;font-weight:500;letter-spacing:.1em;cursor:pointer;pointer-events:auto;transition:border-color .2s,color .2s}
#exposure-guide:is(:hover,:focus-visible,[aria-expanded=true]){border-color:currentColor;color:var(--ink)}
.exposure-story .story-card{top:188px;bottom:auto;max-height:calc(100dvh - 370px);overflow:auto}
@media (max-height:690px) and (min-width:701px){.exposure-story .story-card{top:auto;left:auto;right:26px;bottom:28px;max-height:calc(100dvh - 125px)}}
@media (max-width:700px){.exposure-story .story-card{top:auto;bottom:30px;max-height:calc(100dvh - 165px)}
#app:has(.exposure-story:not([hidden])) .legend{visibility:hidden}}
