:root{--paper: #f2f3ec;--surface: #fafbf6;--ink: #1c2620;--ink-2: #4c5a50;--ink-3: #6d7a70;--rule: #cdd3c6;--moss: #35603f;--moss-wash: #e1e8da;--pin: #0f5257;--label: #fffef9;--glm: #1f6fb2;--rf: #b07a12;--ok: #2f6b3a;--bad: #a3322a;--serif: "Spectral", Georgia, serif;--sans: "Source Sans 3", system-ui, sans-serif;color-scheme:light}@media (prefers-color-scheme: dark){:root{--paper: #18201b;--surface: #1e2822;--ink: #e7ece4;--ink-2: #b4c0b6;--ink-3: #8c998f;--rule: #33423a;--moss: #8fc19a;--moss-wash: #24342a;--pin: #6fd0c8;--label: #212c25;--glm: #4a90d9;--rf: #bf8a22;--ok: #8fc19a;--bad: #f08b80;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--paper);color:var(--ink);font:16px/1.55 var(--sans)}a{color:var(--moss);text-underline-offset:3px}:focus-visible{outline:2px solid var(--moss);outline-offset:2px}code{font-size:.92em;background:var(--moss-wash);padding:0 4px;border-radius:3px}em{font-family:var(--serif);font-style:italic}button,select,input,textarea{font:inherit;color:inherit}.shell{min-height:100vh;display:flex;flex-direction:column}.shell-map{height:100vh}.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 20px;border-bottom:1px solid var(--rule);background:var(--paper)}.brand{display:flex;align-items:center;gap:9px;font:600 21px/1 var(--serif);color:var(--ink);text-decoration:none}.brand svg{width:22px;height:22px;fill:none;stroke:var(--moss);stroke-width:2}.brand svg circle:last-child{fill:var(--moss);stroke:none}.top nav{display:flex;gap:2px;flex-wrap:wrap}.top nav a{color:var(--ink-2);text-decoration:none;padding:7px 11px;border-radius:6px;font-size:15px}.top nav a:hover{color:var(--ink);background:var(--moss-wash)}.top nav a[aria-current=page]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--moss);border-radius:0}.project-popup{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:7px 16px;font-size:14.5px;background:var(--moss-wash);color:var(--ink);border-bottom:1px solid var(--rule)}.project-popup a{font-weight:700;color:var(--moss)}.main-map{flex:1;min-height:0}.main-page{flex:1}.loading,.page-error{padding:40px 24px;color:var(--ink-2)}.atlas{display:grid;grid-template-columns:290px minmax(0,1fr) 380px;height:100%}.drawer{position:relative;overflow-y:auto;padding:16px 14px 24px;border-right:1px solid var(--rule);background:var(--paper)}.drawer-intro{margin:0 4px 14px;color:var(--ink-2);font-size:14.5px}.family h2{font:600 15px/1.3 var(--serif);color:var(--ink-2);margin:18px 4px 8px}.family:first-of-type h2{margin-top:4px}.family ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.label{position:relative;display:grid;width:100%;text-align:left;cursor:pointer;padding:9px 12px 9px 28px;background:var(--label);border:1px solid var(--rule);border-radius:2px;box-shadow:0 1px 0 var(--rule)}.label em{font-size:17px;line-height:1.25}.label .common{font-size:13.5px;color:var(--ink-2)}.label .counts{font-size:12.5px;color:var(--ink-3);margin-top:3px;font-variant-numeric:tabular-nums}.label .pin{position:absolute;left:10px;top:14px;width:9px;height:9px;border-radius:50%;border:1.5px solid var(--rule)}.label:hover{border-color:var(--ink-3)}.label[aria-pressed=true]{border-color:var(--moss);box-shadow:0 0 0 1px var(--moss)}.label[aria-pressed=true] .pin{background:var(--pin);border-color:var(--pin);box-shadow:0 0 0 3px color-mix(in srgb,var(--pin) 25%,transparent)}.stage{position:relative;min-height:0}.stage .map{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--paper)}.controls{position:absolute;z-index:2;top:12px;left:12px;display:flex;flex-wrap:wrap;align-items:end;gap:10px 16px;padding:10px 12px;background:var(--surface);border:1px solid var(--rule);border-radius:6px;max-width:calc(100% - 70px)}.controls label{display:grid;gap:3px;font-size:13px;color:var(--ink-2)}.controls select{font-size:15px;color:var(--ink);padding:6px 8px;border:1px solid var(--rule);border-radius:4px;background:var(--paper);max-width:300px}.controls .check{display:flex;align-items:center;gap:7px;font-size:15px;color:var(--ink);padding-bottom:6px}.controls input[type=checkbox]{width:17px;height:17px;accent-color:var(--moss)}.map-key{position:absolute;z-index:2;left:12px;bottom:28px;display:grid;gap:10px;padding:10px 12px;min-width:210px;max-width:280px;background:var(--surface);border:1px solid var(--rule);border-radius:6px;font-size:13px;color:var(--ink-2)}.map-key:empty{display:none}.map-key>div{display:grid;gap:4px}.map-key .ramp{display:block;height:10px;border-radius:2px}.map-key .ends{display:flex;justify-content:space-between;font-variant-numeric:tabular-nums}.key-points{display:flex!important;align-items:center;gap:8px}.key-points em{font-size:14px;color:var(--ink)}.key-points i{flex:none;width:10px;height:10px;border-radius:50%;background:var(--pin);box-shadow:0 0 0 1.5px var(--surface)}.key-note{margin:0}.maplibregl-popup-content{background:var(--surface);color:var(--ink);font:14px/1.45 var(--sans);border-radius:6px;padding:10px 26px 10px 12px}.maplibregl-popup-tip{border-top-color:var(--surface)!important;border-bottom-color:var(--surface)!important}.maplibregl-popup-close-button{color:var(--ink-2);font-size:18px}.card{overflow-y:auto;padding:18px 20px 32px;border-left:1px solid var(--rule);background:var(--surface)}.card header h2{font:400 26px/1.15 var(--serif);margin:0 0 4px}.card header p{margin:0 0 14px;color:var(--ink-2);font-size:14.5px}.card h3{font:600 16px/1.3 var(--serif);margin:22px 0 8px}.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:10px 0}.facts dt{font-size:12.5px;color:var(--ink-2)}.facts dd{margin:0;font:600 20px/1.2 var(--serif);font-variant-numeric:tabular-nums}.card-note{font-size:13.5px;color:var(--ink-2);margin:8px 0 0}.scores{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}.scores th,.scores td{text-align:left;padding:6px 4px;border-bottom:1px solid var(--rule)}.scores thead th{font-weight:400;color:var(--ink-2);font-size:13px}.scores tbody th{font-weight:400;white-space:nowrap}.swatch{display:inline-block;width:14px;height:3px;border-radius:2px;vertical-align:middle;margin-right:7px}.swatch.glm{background:var(--glm)}.swatch.rf{background:var(--rf)}.legend-models{display:flex;gap:16px;font-size:13px;color:var(--ink-2);margin-bottom:8px}.importance{display:grid;gap:6px}.imp-row{position:relative;display:grid;grid-template-columns:150px 1fr;align-items:center;gap:10px;font-size:13.5px}.imp-name{color:var(--ink)}.imp-bars{display:grid;gap:2px}.imp-bars .bar{display:block;height:7px;border-radius:0 4px 4px 0;min-width:2px}.bar.glm{background:var(--glm)}.bar.rf{background:var(--rf)}.imp-tip{position:absolute;right:0;top:-26px;z-index:3;background:var(--ink);color:var(--paper);font-size:12.5px;padding:3px 8px;border-radius:4px;white-space:nowrap;pointer-events:none}.curves{display:grid;grid-template-columns:1fr;gap:6px}.curve{position:relative;margin:0}.curve figcaption{font-size:13.5px;color:var(--ink)}.curve svg{width:100%;height:auto;display:block;overflow:visible;touch-action:none}.curve .grid{stroke:var(--rule);stroke-width:1}.curve .tick{fill:var(--ink-3);font:10px var(--sans)}.curve .line{fill:none;stroke-width:2;stroke-linejoin:round}.curve .line.glm{stroke:var(--glm)}.curve .line.rf{stroke:var(--rf)}.curve .crosshair{stroke:var(--ink-3);stroke-dasharray:2 3}.curve .dot{stroke:var(--surface);stroke-width:2}.curve .dot.glm{fill:var(--glm)}.curve .dot.rf{fill:var(--rf)}.curve .tip{position:absolute;top:18px;transform:translate(-50%);display:grid;gap:1px;background:var(--ink);color:var(--paper);font-size:12px;padding:4px 8px;border-radius:4px;pointer-events:none;white-space:nowrap}.page{max-width:980px;margin:0 auto;padding:32px 24px 64px}.page-head{padding-bottom:20px;border-bottom:1px solid var(--rule);margin-bottom:24px}.page-head h1{font:400 clamp(32px,5vw,46px)/1.08 var(--serif);letter-spacing:-.01em;margin:0 0 12px}.page-head p{margin:0;max-width:68ch;color:var(--ink-2);font-size:17px}.page h2{font:600 22px/1.25 var(--serif);margin:36px 0 12px}.aside{color:var(--ink-2);font-size:14.5px;max-width:70ch}.prose{max-width:70ch}.prose ul,.prose ol{padding-left:1.2em}.prose li{margin-bottom:8px}.prose ol.steps li::marker{font-family:var(--serif);font-weight:600;color:var(--moss)}.sources li{font-size:15px}.link-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.button,button.primary{display:inline-block;padding:9px 15px;border-radius:6px;border:1.5px solid var(--moss);color:var(--moss);background:transparent;font-weight:700;font-size:15px;text-decoration:none;cursor:pointer}.button.primary,button.primary{background:var(--moss);color:var(--paper)}button.primary:disabled{opacity:.55;cursor:wait}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:14.5px;font-variant-numeric:tabular-nums}.table th,.table td{text-align:left;padding:7px 10px 7px 0;border-bottom:1px solid var(--rule);vertical-align:top}.table thead th{font-weight:400;color:var(--ink-2);font-size:13.5px;border-bottom-color:var(--ink-3)}.table .num{text-align:right}.licences{display:flex;flex-wrap:wrap;gap:8px 22px;list-style:none;padding:0;margin:0 0 16px}.runs{list-style:none;padding:0;margin:0;display:grid;gap:10px}.run details{border:1px solid var(--rule);border-radius:6px;background:var(--surface)}.run summary{display:grid;grid-template-columns:100px 1fr auto;gap:4px 14px;align-items:baseline;padding:12px 14px;cursor:pointer}.run summary .how{grid-column:2;color:var(--ink-2);font-size:14px}.run summary .took{grid-row:1;grid-column:3;color:var(--ink-2);font-variant-numeric:tabular-nums}.status{font-weight:700;font-size:14px}.status.succeeded{color:var(--ok)}.status.failed{color:var(--bad)}.status.running,.status.queued{color:var(--rf)}.steps{margin:0;padding:4px 14px 14px;list-style:none;display:grid;gap:12px}.steps li{position:relative;padding-bottom:8px}.steps .step-head{display:flex;justify-content:space-between;gap:12px}.steps .step-head span{color:var(--ink-2);font-variant-numeric:tabular-nums}.steps p{margin:2px 0 0;color:var(--ink-2);font-size:14px}.steps .error{color:var(--bad)}.steps .bar{position:absolute;left:0;bottom:0;height:3px;background:var(--moss);border-radius:2px;opacity:.6}.steps li.failed .bar{background:var(--bad)}.live .start{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.live select{padding:8px;border:1px solid var(--rule);border-radius:6px;background:var(--surface)}.notice{color:var(--ink-2)}.examples{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.examples button{padding:6px 12px;border:1px solid var(--rule);background:var(--surface);border-radius:99px;cursor:pointer;font-size:14px}.examples button:hover:not(:disabled){border-color:var(--moss)}.sql-label{display:block;font-size:13.5px;color:var(--ink-2);margin-bottom:4px}.sql{width:100%;min-height:150px;padding:12px;font:14px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;border:1px solid var(--rule);border-radius:6px;background:var(--surface);resize:vertical}.run-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:10px 0 18px}.hint{color:var(--ink-2);font-size:14px}.error-box{color:var(--bad);background:color-mix(in srgb,var(--bad) 10%,transparent);padding:10px 12px;border-radius:6px;white-space:pre-wrap}@media (max-width: 1180px){.atlas{grid-template-columns:260px minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}.card{grid-column:1 / -1;border-left:0;border-top:1px solid var(--rule);max-height:none}.shell-map,.main-map .atlas{height:auto}.stage{height:calc(100vh - 110px);min-height:480px}.drawer{max-height:calc(100vh - 110px)}.curves{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 24px}}@media (max-width: 760px){.top{flex-direction:column;align-items:flex-start;padding:10px 16px;gap:8px}.top nav{gap:0;margin-left:-10px}.top nav a{padding:6px 10px;font-size:14.5px}.atlas{display:flex;flex-direction:column}.stage{order:1;height:62vh;min-height:380px}.drawer{order:2;max-height:none;border-right:0;border-top:1px solid var(--rule)}.family ul{grid-template-columns:1fr 1fr}.card{order:3}.controls{left:8px;right:52px;top:8px;max-width:none;padding:8px}.controls select{max-width:100%}.map-key{left:8px;bottom:24px;min-width:0;max-width:60%}.page{padding:24px 16px 48px}.imp-row{grid-template-columns:120px 1fr}.run summary{grid-template-columns:1fr auto}.run summary .how{grid-column:1 / -1}.run summary .took{grid-column:2}}@media (max-width: 420px){.family ul{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){*{scroll-behavior:auto!important;transition:none!important}}
