:root{--ink:#182d35;--muted:#63767c;--teal:#0c706d;--teal-dark:#075854;--paper:#f4f6f3;--line:#dce4e1;--orange:#cb6d36;--blue:#3868a3;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 "Segoe UI",Arial,sans-serif}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}a{color:var(--teal);text-decoration:none}button{cursor:pointer}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid #e7a44e;outline-offset:3px}[hidden]{display:none!important}.masthead{background:#fff;border-bottom:1px solid var(--line);padding:19px 3.5%;display:flex;align-items:center;gap:30px;min-height:87px}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);font-size:19px;white-space:nowrap}.brand-icon{background:var(--teal);color:#fff;font-weight:700;font-size:17px;line-height:1;border-radius:10px;display:flex;align-items:baseline;justify-content:center;width:54px;height:49px;padding-top:15px}.brand-icon>span{font-size:10px;margin-left:1px}.brand strong{font-weight:650}.masthead nav{display:flex;align-self:stretch;gap:22px;margin-left:18px}.masthead nav a{display:flex;align-items:center;font-size:14px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent}.masthead nav a.active{color:var(--teal);border-color:var(--teal)}.private-label{margin-left:auto;color:var(--muted);font-size:12px;display:flex;gap:8px;align-items:center}.private-label i{width:7px;height:7px;background:#409889;border-radius:50%}main{max-width:1900px;margin:auto;padding:36px 3.5% 0}.intro{display:flex;justify-content:space-between;align-items:center;gap:40px;margin-bottom:32px}.eyebrow{color:var(--teal);font-size:11px;font-weight:750;letter-spacing:1.6px;margin:0 0 8px}h1{font-size:clamp(29px,3vw,43px);font-weight:630;line-height:1.18;letter-spacing:-1.3px;margin:0 0 12px}h2{font-size:22px;line-height:1.3;font-weight:620;margin:0}h3{font-size:17px;font-weight:650;line-height:1.35;margin:0}h4{font-size:14px;font-weight:650;margin:0 0 10px}.lede{font-size:16px;max-width:730px;margin:0;color:var(--muted)}.domain{border-left:2px solid #bfd3cb;padding-left:22px;min-width:255px}.domain strong,.domain span,.domain small{display:block}.domain strong{font-size:20px;font-weight:620}.domain span{font-size:13px;color:var(--muted);margin-top:3px}.domain small{font-size:12px;color:var(--muted);margin-top:3px}.workspace{display:grid;grid-template-columns:285px minmax(0,1fr);gap:26px;align-items:start}.panel{background:#fff;border:1px solid var(--line);border-radius:11px;padding:22px}.panel-title,.section-heading{display:flex;justify-content:space-between;gap:16px;align-items:center}.panel-title h2{font-size:18px}.text-button{background:none;border:0;padding:0;color:var(--teal);font-size:13px;font-weight:650}.small{font-size:13px}.muted{color:var(--muted)}.control{padding:19px 0;border-top:1px solid #edf0ed}.control>div{display:flex;justify-content:space-between;align-items:center;gap:6px}.control label{font-size:14px;font-weight:650}.control output{font-size:13px;font-weight:650;color:var(--teal);white-space:nowrap}.control p{font-size:12px;line-height:1.45;color:var(--muted);margin:7px 0 13px}input[type=range]{display:block;width:100%;margin:0;accent-color:var(--teal);cursor:pointer}.range-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-top:4px}.primary{width:100%;display:flex;align-items:center;justify-content:space-between;background:var(--teal);color:#fff;border:0;border-radius:7px;padding:13px 16px;font-weight:620}.primary:hover{background:var(--teal-dark)}.primary span{font-size:20px}.presets{display:flex;flex-wrap:wrap;gap:6px;margin:17px 0}.presets button{color:var(--teal);font-size:11px;background:#f0f7f3;border:1px solid #dce9e1;border-radius:5px;padding:5px 7px}.note{background:#f1f6f2;border-left:3px solid #85b5a4;padding:12px 13px;margin-top:19px;font-size:12px;line-height:1.5;color:#4f6565}.note strong{font-size:13px;color:var(--ink)}.note p{margin:5px 0 0}.reference-panel{margin-top:17px}.reference-panel h3{overflow-wrap:anywhere;font-size:15px}.reference-panel p:last-child{margin-bottom:0}.comparison-guide p{font-size:14px}.comparison-guide h2{font-size:21px}.definitions{font-size:13px}.definitions dt{font-weight:650;margin-top:17px}.definitions dd{margin:3px 0 0;color:var(--muted)}.block-link{display:block!important;text-align:center;margin-top:20px}.results{min-width:0}.results-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 15px}.height-picker{display:flex;gap:10px;align-items:center;white-space:nowrap}.height-picker label{font-size:13px;color:var(--muted)}select{border:1px solid #c7d6d0;padding:8px 30px 8px 12px;border-radius:7px;background:#fff;color:var(--ink);font-size:14px}.height-picker select{font-weight:600}.status{display:flex;align-items:center;gap:10px;min-height:40px;padding:9px 14px;background:#e8f1ec;color:#35645b;border:1px solid #d7e5dc;border-radius:7px;font-size:13px}.status.error{background:#fff0e9;color:#9b4424;border-color:#ecc5b5}.spinner{width:13px;height:13px;border:2px solid #b8d4c9;border-top-color:var(--teal);border-radius:50%;animation:spin 1s linear infinite;flex:none}.status.ready .spinner{animation:none;background:var(--teal);width:7px;height:7px;border:0}@keyframes spin{to{transform:rotate(360deg)}}.applied{font-size:12px;margin:10px 0 17px;color:var(--muted);min-height:18px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:21px}.metrics article{background:#fff;padding:16px 16px 14px;border:1px solid var(--line);border-radius:8px}.metrics article span,.metrics strong,.metrics small{display:block}.metrics article>span{font-size:12px;color:var(--muted)}.metrics strong{font-size:28px;line-height:1.25;font-weight:620;letter-spacing:-.8px;margin:7px 0 2px}.metrics small{color:var(--muted);font-size:10px}.metrics .accent{background:#edf5ef;border-color:#cfe0d3}.metrics .accent strong{color:var(--teal)}.map-tools{display:flex;align-items:center;gap:12px;margin:0 0 13px}.map-tools p{font-size:12px;line-height:1.5;color:var(--muted);margin:0 auto 0 0;max-width:520px}.map-tools label{white-space:nowrap;font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px}.map-tools select{font-size:12px;padding:7px 20px 7px 7px}.secondary{display:inline-flex;align-items:center;justify-content:center;color:var(--teal);background:#fff;border:1px solid #cbdad2;border-radius:6px;padding:8px 11px;font-size:12px;font-weight:600;white-space:nowrap}.secondary:hover{background:#f1f7f1}.secondary.disabled{opacity:.45;pointer-events:none}.maps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;align-items:start}.map-card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:13px;min-width:0}.map-heading{display:flex;gap:5px;flex-wrap:wrap;justify-content:space-between;align-items:center;min-height:31px;margin-bottom:8px}.map-heading h3{font-size:16px}.map-heading>span{font-size:10px;color:var(--muted)}.map-wrap{position:relative;aspect-ratio:1;background:#edf0eb;border:1px solid #e3e8e3}.map-wrap canvas{display:block;width:100%;height:100%;cursor:crosshair}.north{position:absolute;right:8px;top:7px;font-size:11px;color:#354b4c;background:#fff9;padding:1px 5px;pointer-events:none}.axis-label{display:flex;justify-content:space-between;font-size:9px;color:var(--muted);margin-top:5px}.axis-label span:nth-child(2){font-size:8px}.legend{margin-top:12px}.gradient{height:7px;border-radius:3px}.gradient.concentration{background:linear-gradient(90deg,#440154,#3b528b,#21918c,#5ec962,#fde725)}.gradient.difference{background:linear-gradient(90deg,#2166ac,#67a9cf,#f7f7f7,#ef8a62,#b2182b)}.legend>div:last-child{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:4px}.maps.focus-difference{grid-template-columns:1fr 1fr}.maps.focus-difference .difference-card{grid-column:1/-1;width:70%;justify-self:center}.map-footnote{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:10px;margin-top:11px}.map-footnote i{display:inline-block;width:10px;height:10px;background:#edf0eb;border:1px solid #dce1dc;margin-right:5px}.inspection{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 0;display:flex;justify-content:space-between;gap:20px;margin:18px 0}.inspection strong{font-size:13px;font-weight:600}.inspection>span{font-size:11px;color:var(--muted);text-align:right}.profile-panel,.performance-panel,.table-panel,.method{margin-top:19px}.section-heading p{margin:5px 0 0}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px;margin-top:22px}.profile-grid canvas{width:100%;height:auto}.profile-grid h4{margin-left:12px}.chart-key{display:flex;gap:20px;justify-content:center;font-size:11px;color:var(--muted)}.chart-key>span{display:flex;align-items:center;gap:6px}.chart-key i{width:20px;height:3px;display:inline-block}.first-line{background:var(--blue)}.second-line{background:var(--orange)}.performance-content{display:grid;grid-template-columns:1fr .8fr;gap:30px;align-items:center;margin-top:15px}.performance-content canvas{width:100%;height:auto}.performance-content p{font-size:13px;color:var(--muted)}.pill{font-size:11px;padding:5px 9px;background:#f0f5f0;border:1px solid #dde7dd;border-radius:20px;white-space:nowrap;color:var(--muted)}.timings{font-size:12px;display:grid;grid-template-columns:1fr auto;gap:4px 15px}.timings dd{margin:0;font-weight:600}.timings dt{color:var(--muted)}.table-scroll{overflow-x:auto;margin-top:17px}table{border-collapse:collapse;width:100%;font-size:12px;text-align:right;white-space:nowrap}th{font-size:10px;font-weight:650;color:var(--muted);background:#f5f7f3}td,th{padding:10px 13px;border-bottom:1px solid #edf0eb}td:first-child,th:first-child{text-align:left}tbody tr{cursor:pointer}tbody tr:hover{background:#f4f8f4}tbody tr.selected{background:#e8f3ec;color:var(--teal);font-weight:600}.export-row{display:flex;justify-content:space-between;align-items:center;gap:17px;margin:18px 0}.export-row>div{display:flex;gap:8px}.method{font-size:13px;color:var(--muted);padding:18px 22px}.method>summary{font-size:14px;color:var(--ink);cursor:pointer;font-weight:600}.method p{max-width:1100px}.method details{margin-top:15px}.method pre{white-space:pre-wrap;word-break:break-word;font:11px/1.55 Consolas,monospace;padding:12px;background:#f5f7f4;max-height:400px;overflow:auto}.method details summary{cursor:pointer}footer{border-top:1px solid var(--line);padding:23px 0 28px;margin-top:35px;display:flex;justify-content:space-between;color:var(--muted);font-size:11px;gap:18px}@media(min-width:1600px){.workspace{grid-template-columns:310px minmax(0,1fr)}.map-heading>span{font-size:11px}.map-heading h3{font-size:17px}}@media(max-width:1200px){.masthead{gap:20px}.private-label{display:none}.workspace{grid-template-columns:255px minmax(0,1fr);gap:19px}.panel{padding:18px}.metrics{gap:8px}.metrics article{padding:13px 11px}.metrics strong{font-size:24px}.map-tools{flex-wrap:wrap}.map-tools p{flex-basis:100%;max-width:none}.maps{gap:8px}.map-card{padding:9px}.map-heading{min-height:44px;align-content:center}.map-heading h3{font-size:14px}.map-heading>span{font-size:9px}.domain{min-width:220px}.domain strong{font-size:18px}.profile-grid{gap:5px}.performance-content{grid-template-columns:1fr .8fr;gap:12px}}@media(max-width:950px){.workspace{grid-template-columns:1fr}.workspace aside{display:grid;grid-template-columns:1fr 1fr;gap:16px}.controls{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:0 18px}.controls .panel-title,.controls>.small,.controls>.primary,.controls>.presets,.controls>.note{grid-column:1/-1}.control{min-width:0}.control>div{flex-wrap:wrap}.reference-panel{margin-top:0;grid-column:1/-1}.comparison-guide{grid-column:1/-1}.comparison-guide .definitions{display:grid;grid-template-columns:repeat(3,1fr);gap:5px 20px}.definitions dt{margin-top:8px}.definitions dd{grid-row:2}.intro{gap:22px}.domain{min-width:210px}.masthead nav{margin-left:auto}.metrics strong{font-size:28px}.map-heading{min-height:31px}.map-heading>span{font-size:10px}.map-heading h3{font-size:16px}.profile-grid{gap:25px}.map-tools p{flex-basis:auto}}@media(max-width:650px){body{font-size:14px}.masthead{padding:15px 5%;gap:15px;flex-wrap:wrap}.brand{font-size:18px}.brand-icon{width:44px;height:40px;font-size:14px;padding-top:12px;border-radius:8px}.masthead nav{width:100%;margin:0;gap:23px}.masthead nav a{font-size:12px;padding:7px 0}main{padding:27px 5% 0}.intro{display:block;margin-bottom:24px}h1{font-size:33px;letter-spacing:-1px}.lede{font-size:14px}.domain{border-left:0;border-top:1px solid #d6e1d9;margin-top:20px;padding:13px 0 0}.domain strong{font-size:16px}.domain span,.domain small{display:inline;font-size:11px;margin-right:8px}.controls{grid-template-columns:1fr 1fr;gap:0 15px}.control{padding:16px 0}.control label{font-size:12px}.control output{font-size:12px}.control p{font-size:11px;min-height:43px}.results-heading h2{font-size:19px}.results-heading{align-items:flex-end}.height-picker{display:block}.height-picker label{display:block;font-size:11px;margin-bottom:4px}.height-picker select{font-size:12px}.metrics{grid-template-columns:1fr 1fr}.metrics article{padding:12px}.metrics strong{font-size:26px}.map-tools p{flex-basis:100%}.maps{grid-template-columns:1fr}.map-card{padding:14px}.map-heading{min-height:23px}.map-heading h3{font-size:17px}.map-heading>span{font-size:11px}.maps.focus-difference{grid-template-columns:1fr}.maps.focus-difference .difference-card{width:100%}.map-card:not(:last-child){margin-bottom:7px}.axis-label{font-size:10px}.axis-label span:nth-child(2){font-size:10px}.legend>div:last-child{font-size:11px}.map-footnote{display:block}.map-footnote>span{display:block;margin:4px 0}.inspection{display:block}.inspection>span{display:block;text-align:left;margin-top:5px}.section-heading{align-items:flex-start}.section-heading h3{font-size:16px}.section-heading .secondary{font-size:10px;padding:7px}.profile-grid{grid-template-columns:1fr;gap:23px}.performance-content{grid-template-columns:1fr;gap:8px}.export-row{align-items:flex-start;flex-direction:column}.export-row>div{width:100%;flex-wrap:wrap}.export-row .secondary{flex:1}footer{display:block;font-size:10px}footer span{display:block;margin:4px 0}}

/* Keep labels legible when the app is viewed in a narrow browser panel. */
body { font-size: 18px; }
.lede { font-size: 19px; }
.masthead nav { flex-wrap: wrap; }
.masthead nav a, .control label, .control output, select, .height-picker select,
.comparison-guide p, .method > summary { font-size: 17px; }
.small, .control p, .note, .definitions, .height-picker label,
.status, .applied, .secondary, .section-heading .secondary, .map-tools p, .performance-content p,
.inspection strong, .method, .text-button, .reference-panel h3,
.domain span, table { font-size: 16px; }
.eyebrow, .private-label, .domain small, .range-labels, .presets button,
.map-tools label, .map-tools select, .map-heading > span, .north,
.axis-label, .axis-label span:nth-child(2), .legend > div:last-child,
.map-footnote, .inspection > span, .chart-key, .pill, .timings,
.metrics article > span, .metrics small, th, footer { font-size: 14px; }
.note strong, .method pre { font-size: 15px; }
.map-heading h3, .section-heading h3 { font-size: 20px; }
h4 { font-size: 17px; }
.metrics strong, #correlation-value { font-size: 32px; }
.correlation-summary, .map-tools, .map-footnote, .export-row > div,
.section-heading, .profile-grid, .performance-content { min-width: 0; }
.correlation-summary { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 18px; }
.map-tools, .map-footnote, .section-heading, .export-row > div { flex-wrap: wrap; }
.axis-label { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 5px; }
.axis-label span:nth-child(2) { grid-column: 1 / -1; grid-row: 2; text-align: center; }
.axis-label span:last-child { text-align: right; }
.legend > div:last-child { flex-wrap: wrap; gap: 2px 5px; }
.profile-grid > div, .performance-content > div { min-width: 0; }
.profile-grid canvas { aspect-ratio: 720 / 540; }
.performance-content canvas { aspect-ratio: 640 / 530; min-width: 0; }
@media (max-width: 1200px) {
  .metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 740px) {
  .maps, .maps.focus-difference, .profile-grid, .performance-content { grid-template-columns: 1fr; }
  .maps.focus-difference .difference-card { width: 100%; }
  .controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .control p { min-height: 0; }
  .results-heading { flex-wrap: wrap; }
}
