.maplibregl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgb(0 0 0/0)}.maplibregl-canvas{left:0;position:absolute;top:0}.maplibregl-map:fullscreen{height:100%;width:100%}.maplibregl-ctrl-group button.maplibregl-ctrl-compass{touch-action:none}.maplibregl-canvas-container.maplibregl-interactive,.maplibregl-ctrl-group button.maplibregl-ctrl-compass{cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.maplibregl-canvas-container.maplibregl-interactive.maplibregl-track-pointer{cursor:pointer}.maplibregl-canvas-container.maplibregl-interactive:active,.maplibregl-ctrl-group button.maplibregl-ctrl-compass:active{cursor:grabbing}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-canvas-container.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:pinch-zoom}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:none}.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures,.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-top-left,.maplibregl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.maplibregl-ctrl-top-left{left:0;top:0}.maplibregl-ctrl-top-right{right:0;top:0}.maplibregl-ctrl-bottom-left{bottom:0;left:0}.maplibregl-ctrl-bottom-right{bottom:0;right:0}.maplibregl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.maplibregl-ctrl-top-left .maplibregl-ctrl{float:left;margin:10px 0 0 10px}.maplibregl-ctrl-top-right .maplibregl-ctrl{float:right;margin:10px 10px 0 0}.maplibregl-ctrl-bottom-left .maplibregl-ctrl{float:left;margin:0 0 10px 10px}.maplibregl-ctrl-bottom-right .maplibregl-ctrl{float:right;margin:0 10px 10px 0}.maplibregl-ctrl-group{background:#fff;border-radius:4px}.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px rgba(0,0,0,.1)}@media (forced-colors:active){.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.maplibregl-ctrl-group button{background-color:transparent;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:none;padding:0;width:29px}.maplibregl-ctrl-group button+button{border-top:1px solid #ddd}.maplibregl-ctrl button .maplibregl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media (forced-colors:active){.maplibregl-ctrl-icon{background-color:transparent}.maplibregl-ctrl-group button+button{border-top:1px solid ButtonText}}.maplibregl-ctrl button::-moz-focus-inner{border:0;padding:0}.maplibregl-ctrl-attrib-button:focus,.maplibregl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl button:disabled{cursor:not-allowed}.maplibregl-ctrl button:disabled .maplibregl-ctrl-icon{opacity:.25}.maplibregl-ctrl button:not(:disabled):hover{background-color:rgb(0 0 0/5%)}.maplibregl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.maplibregl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.maplibregl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.maplibregl-ctrl-group button:focus:only-child{border-radius:inherit}.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-terrain .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%23333' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-terrain-enabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%2333b5e5' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23aaa' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-waiting .maplibregl-ctrl-icon{animation:maplibregl-spin 2s linear infinite}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23999' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23666' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}}@keyframes maplibregl-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.maplibregl-ctrl-logo.maplibregl-compact{width:14px}@media (forced-colors:active){a.maplibregl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}.maplibregl-ctrl.maplibregl-ctrl-attrib{background-color:hsla(0,0%,100%,.5);margin:0;padding:0 5px}@media screen{.maplibregl-ctrl-attrib.maplibregl-compact{background-color:#fff;border-radius:12px;box-sizing:content-box;color:#000;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.maplibregl-ctrl-attrib.maplibregl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact-show,.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-inner{display:none}.maplibregl-ctrl-attrib-button{background-color:hsla(0,0%,100%,.5);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;list-style:none}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button::-webkit-details-marker{display:none}.maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button{left:0}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner{display:block}.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button{background-color:rgb(0 0 0/5%)}.maplibregl-ctrl-bottom-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;right:0}.maplibregl-ctrl-top-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{right:0;top:0}.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{left:0;top:0}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;left:0}}@media screen and (forced-colors:active){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23fff' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.maplibregl-ctrl-attrib a{color:rgba(0,0,0,.75);text-decoration:none}.maplibregl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.maplibregl-attrib-empty{display:none}.maplibregl-ctrl-scale{background-color:hsla(0,0%,100%,.75);border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px}.maplibregl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.maplibregl-popup-anchor-top,.maplibregl-popup-anchor-top-left,.maplibregl-popup-anchor-top-right{flex-direction:column}.maplibregl-popup-anchor-bottom,.maplibregl-popup-anchor-bottom-left,.maplibregl-popup-anchor-bottom-right{flex-direction:column-reverse}.maplibregl-popup-anchor-left{flex-direction:row}.maplibregl-popup-anchor-right{flex-direction:row-reverse}.maplibregl-popup-tip{border:10px solid transparent;height:0;width:0;z-index:1}.maplibregl-popup-anchor-top .maplibregl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.maplibregl-popup-anchor-top-left .maplibregl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.maplibregl-popup-anchor-left .maplibregl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.maplibregl-popup-anchor-right .maplibregl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.maplibregl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.maplibregl-popup-close-button:hover{background-color:rgb(0 0 0/5%)}.maplibregl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.1);padding:15px 10px;pointer-events:auto;position:relative}.maplibregl-popup-anchor-top-left .maplibregl-popup-content{border-top-left-radius:0}.maplibregl-popup-anchor-top-right .maplibregl-popup-content{border-top-right-radius:0}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-content{border-bottom-left-radius:0}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-content{border-bottom-right-radius:0}.maplibregl-popup-track-pointer{display:none}.maplibregl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.maplibregl-map:hover .maplibregl-popup-track-pointer{display:flex}.maplibregl-map:active .maplibregl-popup-track-pointer{display:none}.maplibregl-marker{left:0;position:absolute;top:0;transition:opacity .2s;will-change:transform}.maplibregl-user-location-dot,.maplibregl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.maplibregl-user-location-dot:before{animation:maplibregl-user-location-dot-pulse 2s infinite;content:"";position:absolute}.maplibregl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px rgba(0,0,0,.35);box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}@keyframes maplibregl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.maplibregl-user-location-dot-stale{background-color:#aaa}.maplibregl-user-location-dot-stale:after{display:none}.maplibregl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.maplibregl-crosshair,.maplibregl-crosshair .maplibregl-interactive,.maplibregl-crosshair .maplibregl-interactive:active{cursor:crosshair}.maplibregl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}.maplibregl-cooperative-gesture-screen{align-items:center;background:rgba(0,0,0,.4);color:#fff;display:flex;font-size:1.4em;inset:0;justify-content:center;line-height:1.2;opacity:0;padding:1rem;pointer-events:none;position:absolute;transition:opacity 1s ease 1s;z-index:99999}.maplibregl-cooperative-gesture-screen.maplibregl-show{opacity:1;transition:opacity .05s}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:none}@media (hover:none),(width <= 480px){.maplibregl-cooperative-gesture-screen .maplibregl-desktop-message{display:none}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:block}}.maplibregl-pseudo-fullscreen{height:100%!important;left:0!important;position:fixed!important;top:0!important;width:100%!important;z-index:99999}
:root{--bg:#0d0f0d;--ink:#e9e7e1;--dim:#98a09a;--line:#2a302a;--card:#161a15;--panel:#121512;--chip:#1b201a;--btn:#20261f;--docket:#181d18;--gap:#1b1710;--riskbg:#1a1610;--barbg:#262c24;--edge:#343d33;--accent:#e2c07a;--quiet:#cfe3da;--warn:#d9b46a;--auth:#a89c88;--code:#8cae9a;--leg:#c3cac3;--changed:#f2ead8;--badge:#c79a55;--badgeink:#12100a;--griz:#c1583e;--on:#54897d;--onink:#04100c;--sel:#e2c07a;--selink:#12100a;--ring:#0b0d0c;--ringhalo:#dfe3dd;--scrim:#0d0f0d;--serif:ui-serif, Georgia, 'Iowan Old Style', 'Palatino Linotype', 'Times New Roman', serif;--sans:ui-sans-serif, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;--md-sys-color-primary:#e2c07a;--md-sys-color-on-primary:#12100a;--md-sys-color-primary-container:#54897d;--md-sys-color-on-primary-container:#04100c;--md-sys-color-secondary:#cfe3da;--md-sys-color-on-secondary:#0d0f0d;--md-sys-color-secondary-container:#1b201a;--md-sys-color-on-secondary-container:#e9e7e1;--md-sys-color-tertiary:#c79a55;--md-sys-color-on-tertiary:#12100a;--md-sys-color-tertiary-container:#20261f;--md-sys-color-on-tertiary-container:#e9e7e1;--md-sys-color-error:#c1583e;--md-sys-color-on-error:#12100a;--md-sys-color-error-container:#1a1610;--md-sys-color-on-error-container:#e9e7e1;--md-sys-color-background:#0d0f0d;--md-sys-color-on-background:#e9e7e1;--md-sys-color-surface:#121512;--md-sys-color-on-surface:#e9e7e1;--md-sys-color-surface-dim:#0d0f0d;--md-sys-color-surface-bright:#161a15;--md-sys-color-surface-container-lowest:#0d0f0d;--md-sys-color-surface-container-low:#121512;--md-sys-color-surface-container:#1b201a;--md-sys-color-surface-container-high:#20261f;--md-sys-color-surface-container-highest:#262c24;--md-sys-color-surface-variant:#20261f;--md-sys-color-on-surface-variant:#98a09a;--md-sys-color-inverse-surface:#e9e7e1;--md-sys-color-inverse-on-surface:#0d0f0d;--md-sys-color-inverse-primary:#e2c07a;--md-sys-color-outline:#343d33;--md-sys-color-outline-variant:#2a302a;--md-sys-color-shadow:#0d0f0d;--md-sys-color-scrim:#0d0f0d;--md-sys-color-surface-tint:#e2c07a;color-scheme:dark light}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);
  font:15px/1.5 var(--sans)}
/* ★ FORM CONTROLS DO NOT INHERIT A FAMILY, AND THE FIRST READ CAUGHT IT.
   With the type pair in tokens, the bar's buttons computed to `Arial` - the
   browser's own default - while the body computed to the sans, because a
   `button` element takes the user-agent font unless it is told otherwise. The
   recipe says a plain sans for controls and labels; that is the whole set of
   things this line is for. */
button,input,select,textarea{font-family:inherit}
#map{position:absolute;inset:0}
/* ** THE POINTER'S COORDINATES, ON THE MAP AND NOT IN A BOX (office edition
   375 §111.56(1), the founder on the deployed site: *"it displays over top of
   map controls, it should just be on a single horizontal line in the bottom
   middle of the map just above the date slider with no box, text only."*)

   TWO DEFECTS IN ONE PLACEMENT, and only one of them was a choice. THE BOX
   said nothing - chrome around a fact, which is what §34 strikes from a
   caption, wearing a border instead of words. THE SECOND LINE was never asked
   for: the element was appended INTO the bottom-right control column, so it
   wrapped at that column's width rather than at its own. A surface takes the
   shape of the box it is put in, and this one was put in a box built for
   buttons.

   IT SITS ABOVE THE DATE SLIDER'S TRACK - `2.9rem` is the bar's own offset and
   `26px` its track's height, both read from the rules below rather than
   guessed, so the readout moves if the bar ever does.

   THE HALO IS NOT A BOX. Text on a satellite basemap has no contrast it can
   count on, and a halo is part of the glyph rather than a panel behind it -
   the same treatment the district labels already wear on this map. */
.llread{position:absolute;transform:translateX(-50%);
  bottom:calc(100% + .25rem);
  z-index:9;font-size:.68rem;color:var(--ink);
  font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;
  text-shadow:0 0 2px var(--bg),0 0 4px var(--bg),0 0 6px var(--bg)}
/* ** THE BOX HUGS THE TEXT, AND THE FIRST READ IS WHY (office edition 375
   §111.56(1)). Written `left:0;right:0;text-align:center` the element is the
   full width of the map, so its RECTANGLE overlaps the zoom control at every
   width while the ink does not - and an overlap test on that box can only ever
   report a collision. A measurement that cannot come back clean is not a
   measurement. Centred by translation, the box IS the text, and the read below
   is about the pixels the reader sees. */
.corner{position:absolute;z-index:8;display:flex;flex-direction:column;gap:.3rem}
/* ★ THE CORNER IS THE RIGHT EDGE'S ONE COLUMN (office edition 375
   §106.2). Menu, the Quartermaster, the on-layers strip and the two
   destinations are one stack now, so "under Menu" is the flex order and not
   a number somebody has to keep true.

   `align-items:flex-end` is what keeps the buttons their own size: a column
   STRETCHES its children by default and the strip is the widest child, so
   without it Menu and the Quartermaster would grow to the strip's width.

   AND THE COLUMN IS NOT A SURFACE. Its box is now as wide as the strip and
   as tall as the stack, and that is map the reader still has to be able to
   drag; the pointer goes to the controls and the box itself is transparent
   to it. Same shape as the lane's own rule below, for the same reason. */
.corner.tr{top:.5rem;right:.5rem;align-items:flex-end;pointer-events:none}
.corner.tr > button{pointer-events:auto}
.corner button{background:var(--panel);color:var(--ink);
  border:1px solid var(--edge);border-radius:9px;padding:.32rem .55rem;
  font-size:.72rem;cursor:pointer}
.corner button[aria-pressed=true]{background:var(--chip)}
.brand{padding:.2rem 0 .35rem;font-size:.9rem;font-weight:600;
  font-family:var(--serif);letter-spacing:.01em}
.brand small{display:block;font-weight:400;font-size:.68rem;color:var(--dim)}
/* ★★ THE TWO DESTINATIONS, PLAIN ON THE RIGHT EDGE (office edition 375
   §106.1, §106.2(a), §106.4, the founder: *"no box or rail"*, and his
   done-test: *"nothing on the map has a box except Menu, Quartermaster and
   the map button"*).

   THIS RULE REPLACES `.bar`. The four-word bottom bar and the rail were the
   same two destinations in two postures, both below Material's own floor for
   the forms they were wearing, and §106 rules one posture for both tiers.
   Neither class is emitted any more and neither has a rule.

   THE 32-PIXEL STEP IS THE FAMILY'S (§106.1). The standard icon button is a
   32 px target with a 24 px glyph inside it and NO container - the container
   is what the founder struck - so the button carries no background, no
   border, no radius and no shadow at rest.

   THE PRESSED STATE IS AN INDICATOR, NOT A BOX, and it is the rail's own
   treatment carried over rather than a new invention: a filled shape behind
   the glyph while the destination's pane is open, gone the moment it closes.
   A state that appears only while a surface is open is not a box on the map.

   THE GLYPH WEARS A HALO AND NOT A GROUND. Unframed ink over an aerial
   photograph disappears over snow; the halo is the treatment the district
   labels, the coordinate readout and the walk-time glyph already use, and it
   frames nothing.

   SPECIFICITY IS DELIBERATE. These buttons live inside `.corner.tr` now, and
   `.corner button` gives every child of that corner a panel, a border and a
   radius - the box. `.edge .eb` outranks it; written as `.eb` alone it would
   lose, and the founder's own done-test is what would have failed. */
.edge.er{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem;
  pointer-events:none}
.edge .eb{width:32px;height:32px;padding:0;background:none;border:0;
  border-radius:16px;color:var(--ink);cursor:pointer;display:flex;
  align-items:center;justify-content:center;pointer-events:auto;
  box-shadow:none}
.edge .eb .msym{font-size:24px;color:var(--ink);
  text-shadow:0 0 2px var(--bg),0 0 4px var(--bg),0 0 6px var(--bg)}
.edge .eb[aria-pressed=true]{background:var(--edge)}
.edge .eb[aria-pressed=true] .msym{text-shadow:none}
.edge .eb:focus-visible{outline:2px solid var(--ink);outline-offset:1px}
/* `.rail` and `.palist` both stood here and are gone with §106.2(a) -
   nothing emits either, so nothing styles either. */
.badge{display:inline-block;min-width:1.05rem;padding:0 .25rem;margin-left:.2rem;
  border-radius:999px;background:var(--badge);color:var(--badgeink);
  font-size:.62rem;font-weight:700;vertical-align:top}
/* RULING 2. ONE SURFACE, not a panel and a sheet. At rest the map is
   full-bleed and nothing covers it; a pill or a corner summons this, one at a
   time, and a tap on the map dismisses it. On a phone it rises from the
   bottom; past 900px it is the shared left pane every popover and every tap
   sheet renders into, so there is one place to look rather than two. */
.pane{position:absolute;left:0;right:0;bottom:0;z-index:12;
  background:var(--panel);border-top:1px solid var(--edge);
  border-radius:14px 14px 0 0;padding:.1rem .8rem 1rem;max-height:76vh;
  overflow-y:auto;
  /* ★ A CLOSED SHEET IS HIDDEN BY A DISTANCE, NOT BY A PERCENTAGE (office
     edition 365 §10.4, the founder: *"The layers and info pop up from bottom
     is open by default, should be closed, and it often randomly opens itself
     ... it happens every time I reload the page."*).

     MEASURED, phone frame, every condition driven - bare, his own address, a
     seeded store, and after the viewport shortens under it: the pane reads
     CLOSED and its box sits at y 846 in an 844-high viewport. TWO PIXELS. The
     old hide was `translateY(102%)` - two per cent of the pane's OWN height,
     which is 94 to 116 pixels here - so the whole concealment was a 2 px
     margin measured from the containing block's bottom.

     A MARGIN THAT SMALL IS NOT A DESIGN, IT IS AN ACCIDENT OF ARITHMETIC. On
     Safari the containing block's bottom and the visible bottom are not the
     same edge while the address bar is collapsing, and any disagreement of
     three pixels puts a closed sheet on screen. It also leaves a closed
     control in the hit-test, one swipe from the edge.

     SO: the pane's own height PLUS a fixed distance no viewport arithmetic can
     close, and `visibility` withdrawn when shut - held through the close
     transition so the sheet still slides rather than vanishing.

     THE SYMPTOM IS NOT REPRODUCED HERE and this is not claimed as its cure:
     the shop's WebKit reads the pane closed in all four conditions
     (`data/enumeration/sheet-at-load.txt`). What is cured is a measured
     2-pixel concealment, which is worth curing whether or not it is his. */
  transform:translateY(calc(100% + 24px));visibility:hidden;
  transition:transform .18s ease, visibility 0s linear .18s;
  box-shadow:0 -12px 32px rgba(0,0,0,.35)}
.pane.open{transform:translateY(0);visibility:visible;
  transition:transform .18s ease, visibility 0s}
.pane .grip{padding:.45rem 0 .2rem;width:100%;background:none;border:0;
  cursor:pointer}
.pane .grip i{display:block;width:38px;height:4px;background:var(--edge);
  border-radius:2px;margin:0 auto}
/* THE SECOND TIER. A popover is anchored to the pill that opened it, sits
   above the bar, and leaves the map visible - which is the entire reason it
   exists, because effort and date are adjusted BY WATCHING the ground move.
   It carries a tail so there is never a question which pill it belongs to. */
.pop{position:absolute;bottom:3.15rem;z-index:13;display:none;
  width:min(23rem,calc(100vw - 1rem));background:var(--panel);
  border:1px solid var(--edge);border-radius:12px;
  box-shadow:0 10px 30px rgba(0,0,0,.42)}
.pop.open{display:block}
.pop .ctl{border-bottom:0;padding:.5rem .8rem .65rem}
.pop .readout{padding-top:.35rem}
.poptail{position:absolute;bottom:-7px;left:var(--tail,50%);
  margin-left:-7px;width:12px;height:12px;padding:0;background:var(--panel);
  border:1px solid var(--edge);border-top:0;border-left:0;
  transform:rotate(45deg);pointer-events:none}
/* A10. FIXED LANE: the tray reserves its height whether or not it holds
   anything, so switching a layer never moves the map under a reader's finger.
   A row that appeared and pushed the canvas down would make every toggle cost
   a re-orientation. */
a.q.nav{display:block;text-decoration:none;text-align:inherit}
.tray{position:relative;
  /* ★ THE BOUND IS THE BOX, NOT A CAP ON A SHRUNKEN ONE (office edition 375
     §33.3a). `left:50%;transform:translateX(-50%)` with `width` auto is
     shrink-to-fit, and a `max-width` only caps a box that is already sized:
     measured at a 500 px viewport, the lane was 107 px holding 594 px of
     chips, with no chip clipped inside. Setting `width` on the same rule did
     not take either - the used width stayed 107 - so the lane is bounded the
     way the arithmetic above always described it: four rem clear of each
     corner, and `margin:auto` centres it between them, which is what an
     absolutely positioned box with both offsets set does.

     ★ AND THE AUTO MARGINS CAME STRAIGHT BACK OFF, MEASURED. With `left`,
     `right` AND `margin:auto`, the box solved width as shrink-to-fit and gave
     the slack to the margins: 101.5 + 107 + 101.5 = 310 at a 430 px frame, so
     the lane was still 107 px and now centred in its own emptiness. The
     offsets alone define the box; there is nothing left to centre. The
     `max-width:40rem` cap went with them - with both offsets set it makes the
     box over-constrained again, and a lane that spans between the two corner
     buttons IS the ruled bound at every width. */
  /* ★ THE STRIP LIVES ON THE MAP, NOT OVER THE PANE (office edition 375
     §48.3b and §48.3c). Its left edge is the MAP's left edge whatever the
     pane is doing, and its right edge stops clear of the Quartermaster /
     Menu column - so on the phone the lane runs the whole width it has,
     which is what §48.3c asks for, and on the wide window it starts right of
     the rail and the sheet instead of lying across them.

     THE THREE OFFSETS MIRROR `#map`'s OWN, below and at the same breakpoint.
     One fact in two places is how they would drift, so they are written
     together: the map's inset IS the lane's inset. */
  /* ★★ THE LANE IS IN THE COLUMN NOW (office edition 375 §106.2(b), the
     founder: *"shift the top left of map layers glyphs from the left to the
     right so everything is in one area and nothing has a box"*).

     IT WAS `position:absolute;left:0;right:3.5rem;top:.5rem` - a lane pinned
     across the top of the map, bounded away from a corner button it had to
     know the width of. It is a child of that corner now, so its right edge IS
     the column's and the arithmetic above is retired rather than re-derived:
     nothing can slide under Menu, because the lane starts where Menu ends.

     THE BOUND IS A MAX-WIDTH BECAUSE A FLEX ITEM IS SIZED BY ITS CONTENT.
     An empty lane is a few pixels wide and takes no space beside the column;
     a full one grows leftward across the map until the cap, and then scrolls
     inside itself exactly as it did before. The cap leaves the map's left
     half clear at every width the product supports. */
  max-width:min(22rem,calc(100vw - 4.5rem));
  /* THE LANE CONTAINS ITS CHIPS RATHER THAN CLIPPING THEM. This was a fixed
     `height:1.6rem`, sized when the marks were 13px. The marks were ruled to 20
     and the lane did not follow, so 28px chips sat in a 24px lane - measured,
     not guessed. A min-height keeps the old floor for an empty or one-chip lane
     and lets a taller mark push it, which is the only direction that cannot
     make the ruled size a lie.

     HORIZONTAL OVERFLOW STILL SCROLLS INSIDE, per the note below: the lane may
     grow to fit the HEIGHT of its contents and never to fit their WIDTH, because
     width is what would slide it under a corner button. */
  /* ★ THE LANE'S HEIGHT IS ITS BUTTONS' HEIGHT (office edition 375 §57.4).
     `min-height:1.6rem` was 24 px, set when the marks were smaller; the
     standard's icon button is 32 and the content was taller than the box, so
     the lane had a pixel of vertical give even with `overflow-y:hidden`.
     The height follows the control, which is the only number that cannot be
     stale the next time a token moves. */
  z-index:8;min-height:32px;display:flex;gap:.3rem;align-items:center;
  /* SHORT OF THE CORNERS. Layers sits left, Settings and Yours sit right,
     and they are always there - so the lane is bounded away from both and a
     full tray can never slide under a button. Overflow scrolls INSIDE the
     lane; it never grows it. */
  /* ★ THE LANE WAS RESERVING A CORNER THAT NO LONGER EXISTS (office edition
     365 §10.24, the founder on the phone with six layers on: *"the active
     layers chips at the top of the screen get cut off in mobile view"* - the
     sixth chip reading "Pri..." under the Menu button).

     16rem reserved BOTH top corners. The top-left corner was retired with
     §18.1 - nothing emits it - so on a 390 px phone the lane was 134 px wide
     while 262 were free. Half the reserve was for a button that is not there.

     THE BOUND STILL CANNOT SLIDE UNDER MENU, and the arithmetic is written
     down rather than trusted: the lane is centred, so its right edge sits at
     50vw + (50vw - 4rem) = 100vw - 64 px, and the Menu button's left edge is
     at 100vw - 54 px. Ten pixels of clearance, at every width. */
  /* ★ THE LANE TAKES ITS BOUND, IT DOES NOT SHRINK TO ITS CHIPS (office
     edition 375 §33.3a, the founder with four rows on: one chip, clipped
     mid-word - "Roads and ga..." - at the strip's edge).

     MEASURED BEFORE IT WAS CHANGED: at a 500 px viewport the lane's own box
     was 107 px holding 594 px of chips, and no chip was clipped INSIDE - the
     labels' scrollWidth equalled their width. The chips were whole and the
     lane was small. `max-width` bounds a box that is already sized, and an
     absolutely positioned flex box with `left` set and `right` auto is
     shrink-to-fit: its width came from the available space beside its own
     offset, not from the arithmetic written above.

     SO IT IS `width`, WHICH IS WHAT THAT ARITHMETIC ALWAYS MEANT. The lane
     spans its ruled bound at every viewport and the overflow scrolls inside
     it, which is the behaviour the note above describes and the box did not
     have. The clearance from Menu is unchanged - same expression, same ten
     pixels. */
  /* ★ AND NO CHIP IS EVER CUT. Scrolling alone leaves a chip sliced at the
     lane's edge, which is what a reader calls "cut off"; snapping means a
     scroll comes to rest on a chip boundary, so a partial chip is a thing in
     motion rather than a thing on the screen. */
  /* ★ ONE AXIS (office edition 375 §57.4, the founder: *"they are able to be
     moved a bit up and down vertically, which makes the row feel sloppy"*).
     `overflow-x:auto` alone leaves `overflow-y` at `auto` too, so the lane
     was a scroller in BOTH directions and a taller-than-it-thinks child gave
     the touch a pixel or two of vertical travel. The height is the buttons'
     height and the overflow is horizontal alone. */
  overflow-y:hidden;overscroll-behavior-y:none;
  scroll-snap-type:x proximity;overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  /* ★ WHAT TOOK THE FOUNDER'S SWIPE: THIS LINE (office edition 375 §43.2a,
     his phone: *a swipe moves nothing*). The lane is `pointer-events:none` so
     the map beneath stays draggable across the strip's empty width, and
     `.tray > *` puts the pointer back on the chips alone. A scroller that
     does not receive pointer events cannot be scrolled: a swipe that starts
     on a gap goes to the map, and a swipe that starts on a control is that
     control's press. There was never a surface to drag.

     MEASURED at a 430 px frame with the width read back: the lane reports
     `data-more="right"` - it KNOWS it overflows - `overflow-x:auto`,
     `scrollWidth` past `clientWidth`, and `pointer-events:none`. A touch drag
     across it moved `scrollLeft` by 4 px, which is the button under the
     finger, not the lane.

     SO THE LANE TAKES THE POINTER EXACTLY WHEN IT HAS SOMETHING TO SCROLL.
     `data-more` is already written on every scroll and resize by `trayFades`,
     from the lane's own geometry; when it says there is more in either
     direction the lane is a scroller and behaves like one, and when it says
     `none` it is a few buttons over a map and the map keeps its drag. */
  overflow-x:auto;scrollbar-width:none;pointer-events:none}
.tray[data-more=right],.tray[data-more=left],.tray[data-more=both]{
  pointer-events:auto}
/* ★ THE EDGES FADE TO SAY THERE IS MORE, and only when there is. A permanent
   fade dims the first and last chip of a lane that fits, which is a lie about
   overflow in the quiet direction. The state is measured on scroll and on
   resize and written to `data-more`; with nothing to scroll there is no mask
   at all. */
.tray[data-more=right]{mask-image:linear-gradient(to right,#000 calc(100% - 1.6rem),transparent)}
.tray[data-more=left]{mask-image:linear-gradient(to right,transparent,#000 1.6rem)}
.tray[data-more=both]{mask-image:linear-gradient(to right,transparent,#000 1.6rem,#000 calc(100% - 1.6rem),transparent)}
.tray::-webkit-scrollbar{display:none}
.tray > *{pointer-events:auto}
/* ★ THE STRIP'S CONTROL IS THE STANDARD'S TOGGLE ICON BUTTON (office edition
   375 §43.2b). The pill, its hand-drawn selected state and its hand-drawn
   dashed off were three inventions of a control the standard publishes; what
   stays ours is WHICH layers are on the strip and what a press means. The
   host keeps `class=chip`, `data-off` and `aria-pressed` - the strip's own
   contract with the gate - and the component brings the anatomy, the states
   and the ripple.

   NO SIZE IS SET HERE. The icon button ships at the standard's size and the
   §37.3 rule about the switch applies to it for the same reason: what was
   disproportionate was the container, not the control. */
.tray .chip{flex:0 0 auto;scroll-snap-align:start;cursor:pointer}
/* A layer with no symbol falls back to its word rather than to a blank
   button, and the word is set small enough to sit in the button's box. */
.tray .chip .tlab{font-size:.6rem;line-height:1;padding:0 .2rem}
/* `data-named` went with the pill (Ed 375 §43.2b): the button is one size
   whether it carries a symbol or a word, and a rule for an attribute nothing
   emits is furniture nobody can see - this page's own law, inverted. */
.tray .chip:hover{border-color:var(--ink)}
/* OFF IS A GHOST. The chip stays in the lane at reduced weight with a dashed
   edge - the reader sees WHICH layer is off, not a gap where one used to be.
   An absence carries no information.

   ★ AND A HIDDEN CHIP IS OUTLINE ONLY (office edition 373 §6.2c, the founder's
   own words: "greyed-out outline"). In his screenshots the hidden Ownership
   blocks chip and the shown Private land chip beside it looked the same, which
   is how a hide survived two days unnoticed and cost four reports of a parcel
   that would not answer. The hidden chip loses its FILL as well as its weight:
   no panel behind it, a dashed dim edge, dim ink, and its mark at 40%. Two
   states a glance can tell apart, which is the whole job of a chip. */
/* OFF IS THE COMPONENT'S OWN UNSELECTED STATE, not a dashed pill of ours.
   What is kept is the family's ink: an unselected button reads dim, a
   selected one reads in the accent the tokens carry. */
.tray .chip[data-off]{opacity:.55}
.tray .chip[data-off]:hover{opacity:.85}
.tray .chip:focus-visible{outline:2px solid var(--ink);outline-offset:1px}
.tray .chip .gl{display:block;flex:0 0 auto}
.tray .chip .x{color:var(--dim);font-size:.7rem;margin-left:.1rem}
.tray .chip:hover .x{color:var(--ink)}
.nots{margin:.2rem 0 0;padding-left:1rem;font-size:.74rem;line-height:1.55;
  color:var(--dim)}
.nots li{margin:.1rem 0}
/* ** ONE-LINE ROWS, AND THE KEY IS THE VALUE'S FIRST SEGMENT (office edition
   375 §102.4, the founder: *"Agree on your second option for the spacing"* -
   ruled for EVERY card, not only the road's).

   WHAT THIS REPLACED: `display:flex` with `justify-content:space-between`, so
   a key sat hard left and its value hard right and any value longer than the
   gap WRAPPED. A card's rows were therefore whatever height their longest
   value made them - `The record` beside a full OpenStreetMap citation ran
   three lines while `Kind` ran one - and a reader scanning down a card had no
   rhythm to scan by.

   NOW: one line each, the key leading its own value rather than facing it
   across a gutter, and anything too long for the width ends in an ellipsis
   rather than pushing the row taller. **A card is the same height throughout**,
   which is the whole of the ruling. The full text stays reachable - the row is
   still the door it always was, and `title` carries it for a hover. */
.recipe{font-size:.78rem;line-height:1.5}
.recipe .row{display:block;padding:.34rem 0;
  border-bottom:1px solid var(--line);cursor:pointer;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.recipe .row:last-child{border-bottom:0}
.recipe .k{color:var(--dim)}
/* ★★ THE BACKSLASHES ARE DOUBLED AND THE REASON IS THE WHOLE DEFECT (office
   edition 375 §111.90, the founder: *"a bunch of gibberish in the cards"*).

   WHAT HE SAW: every ` · ` between a card's key and its value rendered as
   `?a0?b7?a0` - a replacement character followed by the hex digits of the
   very bytes it stands for.

   WHAT IT WAS. This stylesheet lives inside a NON-RAW Python triple-quoted
   string, and `\00` is a valid OCTAL escape there. **Python's own parser ate
   it at import time**: `\00a0` became NUL + "a0", the built CSS carried three
   NUL bytes, and a browser draws a NUL as U+FFFD. Nothing downstream was
   wrong - not the font, not the charset, not the courier, not Windows. The
   emitter handed the browser a NUL and the browser said so.

   IT IS SILENT BY CONSTRUCTION, which is why it lived two days. `\d` and `\s`
   raise a SyntaxWarning because Python does not know them; `\0` is a
   character Python DOES know, so there is no warning to miss - the string
   simply is not the string that was typed.

   SWEPT: this is the only backslash in this file whose next character Python
   claims (three of them, one rule). A CSS escape written in a Python literal
   is doubled or the literal is raw. */
.recipe .k::after{content:"\00a0\00b7\00a0"}   /* the key leads the value */
/* ★ THE LAYER ROW'S SLOTLESS CONTROLS, BEHIND ITS DOOR (office edition 375
   §37.3). `md-list-item` publishes six slots and none of them is for a
   reorder handle or a slider, so they sit in the row's own disclosure rather
   than in a slot this shop invented. */
/* ★ SMALLER BY THE STANDARD'S OWN TOKENS, NEVER BY A HAND SCALE (office
   edition 375 §57.5h, the founder: *"the glyphs and sliders, including the
   ones on the map, can be about 25 % smaller or so"*).

   THE COMPONENTS EXPOSE THEIR SIZES AS CUSTOM PROPERTIES, and these are the
   names, read from the vendored bundle rather than from a memory of a page:

     --md-icon-button-state-layer-width / -height   shipped default 40px
     --md-icon-button-icon-size                     shipped default 24px
     --md-slider-handle-width / -height             shipped default 20px
     --md-slider-active-track-height                shipped default  4px
     --md-slider-inactive-track-height              shipped default  4px

   ★ AND THE SMALLER STEP IS NOT PUBLISHED IN WHAT THIS FAMILY VENDORED, so
   it is not quoted as though it were. `_md-comp-icon-button.scss` carries two
   pixel values and only two - 40px and 24px - and `_md-comp-slider.scss`
   carries one handle size and one track height. The office's "a 32 px
   container with a 20 px icon is the spec's small step" is not in either
   file. So the values below are THE FAMILY'S, set through the standard's own
   tokens at the founder's own ratio; what is quoted is the token NAMES and
   the shipped defaults they replace. A number claimed from a file that does
   not carry it is the fabricated-citation defect, and this shop has paid for
   that once already.

   ONE DECLARATION FOR BOTH SURFACES - the strip and the pane are one control
   in one dress (§56.4), so the tokens are set at the root and not per place. */
:root{
  --md-icon-button-state-layer-width:32px;
  --md-icon-button-state-layer-height:32px;
  --md-icon-button-icon-size:20px;
  --md-slider-handle-width:16px;
  --md-slider-handle-height:16px;
  --md-slider-active-track-height:3px;
  --md-slider-inactive-track-height:3px;
}
/* ★ THE LAYER ROW: THE GLYPH AND THE SLIDER, NOTHING ELSE (office edition
   375 §56.2). No list item, because there is no headline and no supporting
   text for one to slot - a `md-list-item` holding one control in `start` and
   one in `end` would be the component carrying two empty slots and a row
   height neither control needs.

   ★ AND EVERY CONTROL FITS INSIDE THE PANE'S CONTENT BOX (§57.5g, the frame
   showing the slider's handle running past the pane's edge). The row is a
   grid of a fixed glyph and a slider that takes what is left: `minmax(0,1fr)`
   is what stops a flex child from refusing to shrink below its content, which
   is how a slider with an intrinsic width overflows its parent. */
/* Glyph, slider, pin - three columns, and only the slider grows (Ed 375
   §63.2c). `minmax(0,1fr)` is still what stops it refusing to shrink. */
.lrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;gap:.5rem;padding:.15rem 0;max-width:100%}
.lrow md-slider{width:100%;min-width:0}
.lrow .tlab{font-size:.6rem;line-height:1}
/* ★ THE PLAIN VARIANT: NO BOX (office edition 375 §56.2 and §56.4, the
   founder: *"remove the box surrounding the glyphs on the map, so they look
   the same and have a minimalistic look"*). `md-icon-button` with no
   `filled`, `filled-tonal` or `outlined` attribute IS the standard's plain
   variant; what drew a box was this family's own pill, and it is gone from
   both surfaces. The selected state is the component's own. */
/* ★ THE ROW'S TWO LOOKS, AND THEY ARE NOT THE TRAY'S (office edition 375
   §69.7). `.tray .chip[data-off]{opacity:.55}` is scoped to the lane, so in
   the PANE nothing faded an unselected control at all - the colour token was
   the only difference, and under a disabled button it was no difference. The
   fade is stated for the row's own controls, in the same words the lane uses,
   so a pinned pin reads full and an unpinned one reads faded WHATEVER the
   layer is doing. */
.lrow md-icon-button[data-off]{opacity:.45}
.lrow md-icon-button[data-off]:hover{opacity:.8}
.lrow md-icon-button,.tray .chip{--md-icon-button-icon-color:var(--dim);
  --md-icon-button-selected-icon-color:var(--accent)}
/* ★ THE OPACITY ITEM, NESTED UNDER ITS LAYER (office edition 375 §48.3d).
   The indent is the standard's own leading space - 16 px, quoted in the
   rubric from `_md-comp-list.scss` - applied a second time, which is how a
   list nests: the child's text starts where the parent's leading icon ends.
   No new number. */
/* The opacity item's rules went with the item (Ed 375 §56.2): the slider
   is in the layer's own row now, and the door row went with the sheet. */
md-list-item .door,md-list-item [slot=supporting-text] .door{
  font-size:.7rem;color:var(--dim)}
/* ★ THE WALK-TIME SLIDER FILLS ITS ROW (office edition 375 §31.3a). `.orow`
   gave the opacity sliders a floor to grow from; the walk-time slider is not
   in an `.orow` - it is a block in `#ctl-effort` - so it took `md-slider`'s
   own intrinsic 200 px and sat short in a row twice that. A custom element
   has no intrinsic width until it is given one, which is the same sentence
   §6.4 wrote about the opacity control, in a second place. */
#ctl-effort md-slider{display:block;width:100%}
/* The layer row's state, beside its switch (office edition 373 §7.4): the word
   left the control when the control became a real one. */
.tgv{font-size:.7rem;color:var(--dim);min-width:2.6rem;text-align:right}
/* A species the season table cannot answer for: pressed, named, and not
   counted into the lens (office edition 375 §6.8c). */
.mode[data-nolens]{border-style:dashed;color:var(--dim)}
/* The summary list's own Change link (office edition 372 §6.6, draft): the
   walkthrough's pattern is a row that carries its value and a way back to the
   question that set it. */
.recipe .chg{background:none;border:0;padding:0 0 0 .6rem;font:inherit;
  color:var(--ink);text-decoration:underline;cursor:pointer}
/* ★ A URL WRAPS INSIDE THE CARD (office edition 365 §10.18, the founder's
   Stuckey Road frame: `https://apps.fs.usda.gov/arcx/rest/services/EDW/EDW`
   cut at the card's edge).

   A flex item's default `min-width` is `auto`, which for an unbreakable run of
   characters is the run's own width - so the value pushed the row wider than
   the card and the card clipped it. Two lines fix it and they are the
   component's own: let the item shrink below its content, and let a long token
   break. Nothing is truncated: the fourth fact is a citation, and half a
   citation is the thing this shop refuses everywhere else. */
.recipe .v{font-weight:600;text-align:right;min-width:0;
  overflow-wrap:anywhere;word-break:break-word}
.recipe .v a{color:inherit}
.recipe .go{color:var(--quiet);font-size:.68rem;white-space:nowrap}
/* ★ THE QUARTERMASTER'S PAGE (office edition 365 §12.4). A full surface at
   its own route, the same on a phone and on a desktop - the sheet grammar the
   map uses is for things that happen ON the map, and a person's papers are not
   one of those. It covers the map rather than insetting it, because a page is
   somewhere you went, not something laid over where you are. */
.qm{position:absolute;inset:0;z-index:20;background:var(--bg);color:var(--ink);
  overflow-y:auto;-webkit-overflow-scrolling:touch}
.qm .head{display:flex;align-items:center;gap:.6rem;padding:.7rem .9rem;
  border-bottom:1px solid var(--line);position:sticky;top:0;
  background:var(--bg);z-index:1}
.qm .back{background:var(--panel);color:var(--ink);border:1px solid var(--edge);
  border-radius:9px;padding:.32rem .6rem;font-size:.78rem;cursor:pointer}
/* THE MASTHEAD IS THE THEME'S SERIF, which is the register edition 364 §1
   named for headings and mastheads. The mark rides beside it at the type's
   own size. */
.qm .mast{font-family:var(--serif);font-size:1.15rem;font-weight:600;
  display:flex;align-items:center;gap:.45rem;margin-left:auto;
  margin-right:auto;padding-right:2.6rem}
.qm .mast svg{display:block;flex:0 0 auto}
/* ★ THE GOV.UK PAGE LAYOUT AND TYPE SCALE, IN OUR TOKENS (office edition 366
   §8.2(b), the founder: *"The first screen feels vacuous; the screen should
   make better use of the real estate."*).

   Ed 365 §12.5 adopted the PATTERNS whole - a start page, one question per
   page, check-your-answers - and the shop built their SEQUENCE at the map's
   type scale, in a narrow column of thin rows. The pattern is also its
   MEASURE: a two-thirds column, body text at 19px, headings at 36-48, a lead
   paragraph, and a Start button a person cannot miss. A grammar adopted by the
   step and not by the page is half an adoption. */
.qm .body{max-width:44rem;margin:0 auto;padding:1.4rem 1.2rem 3rem;
  font-size:19px;line-height:1.55}
.qm .qh{font-family:var(--serif);font-size:2.25rem;line-height:1.15;
  font-weight:600;margin:.2rem 0 .6rem}
.qm .lead{font-size:1.16rem;line-height:1.5;color:var(--ink);
  margin:0 0 1.4rem;max-width:34rem}
.qm .step{font-size:.95rem;color:var(--dim);margin:0 0 1.2rem}
/* THE START BUTTON IN THE SERVICE'S COLOUR, at the pattern's own size. */
.qm .start{display:inline-block;background:var(--on);color:var(--onink);
  border:0;border-radius:10px;padding:.75rem 1.6rem;font-size:1.18rem;
  font-weight:600;cursor:pointer;margin:.4rem 0 1.6rem}
.qm .start:hover{filter:brightness(1.08)}
.qm .need{margin:.2rem 0 1.4rem;padding-left:1.2rem;font-size:1.02rem;
  line-height:1.7}
/* ★ THE BACK LINK AND THE SKIP/CANCEL LINKS (office edition 367 §1.3a and
   §2.1). Continue is the primary button; Skip and Cancel are links beside it,
   because a page with three equal buttons asks the reader to choose between
   them and only one of them is the way on. Back sits at the head, where the
   pattern puts it, so no page here is a dead end. */
.qm .backlink{background:none;border:0;color:var(--dim);font:inherit;
  font-size:.95rem;cursor:pointer;padding:.2rem 0 .6rem;text-decoration:underline}
.qm .backlink:hover{color:var(--ink)}
.qm .links{display:flex;gap:1.2rem;margin:.2rem 0 1rem}
.qm .linky{background:none;border:0;color:var(--dim);font:inherit;
  font-size:.98rem;cursor:pointer;padding:0;text-decoration:underline}
.qm .linky:hover{color:var(--ink)}
/* A field on the page, at the page's own type scale - the interview asks
   every question here now (367 §2.2). */
/* The interview's own field, for a question made of more than one input - the
   date span asks for a first day and a last, and each carries its own label. */
.qm .field{margin:.2rem 0 .6rem}
.qm .qlab{display:block;font-size:.78rem;color:var(--dim);padding:0 0 .2rem}
.qm .qin{font:inherit;font-size:1.1rem;padding:.5rem .6rem;border-radius:9px;
  border:1px solid var(--edge);background:var(--panel);color:var(--ink);
  min-width:12rem}
/* THE SPINE. One row per section, and a section that is not built is GREY -
   never a placeholder sentence promising it. Unbuilt features get zero
   chrome; what they get here is their name, unpressable, so a reader can see
   the shape of the place without being sold anything. */
.qm .spine{display:flex;flex-direction:column;gap:.55rem;margin:.2rem 0 1.4rem}
/* A SECTION IS A CARD WITH A LINE, not a thin row. "Never a placeholder
   sentence" stands (office edition 366 §8.2): a greyed card saying what a
   section holds and that it is not built is a section reporting its state,
   which is the opposite of a promise. */
.qm .sec{display:block;background:var(--panel);border:1px solid var(--edge);
  border-radius:12px;padding:.85rem 1rem;font-size:1.15rem;cursor:pointer;
  color:var(--ink);text-align:left;width:100%;font-family:var(--serif);
  font-weight:600}
.qm .sec .d{display:block;font-family:var(--sans);font-weight:400;
  font-size:.95rem;color:var(--dim);margin-top:.2rem}
.qm .sec:hover{border-color:var(--ink)}
.qm .sec[disabled]{color:var(--dim);border-style:dashed;cursor:default;
  background:none}
.qm .sec[disabled]:hover{border-color:var(--edge)}
.qm .sec .n{font-size:.72rem;color:var(--dim);font-family:var(--sans)}
.mapkey{font-size:.7rem;color:var(--leg);display:flex;flex-direction:column;
  gap:.25rem;padding:.3rem 0}
.mapkey span{display:flex;align-items:center;gap:.4rem}
.mapkey i{display:inline-block;flex:0 0 auto;width:18px;height:3px;
  border-radius:2px}
/* ★ THE PUBLISHER'S OWN LEGEND, INDENTED UNDER ITS ROW (office edition 362
   §1.2q). It wraps rather than stacking: a published overlay can carry
   twenty-five classes, and twenty-five lines under one key row would bury the
   road grammar the key exists for. The swatches are the publisher's images at
   the size the publisher renders them. */
.mapkey .legwrap{display:flex;flex-wrap:wrap;gap:.2rem .7rem;
  padding-left:1.4rem}
.mapkey .leg{display:flex;align-items:center;gap:.3rem;font-size:.66rem;
  color:var(--dim)}
.mapkey .leg img{flex:0 0 auto;image-rendering:pixelated}
.ctl{padding:.5rem 0 .4rem;border-bottom:1px solid var(--line)}
.ctl:last-child{border-bottom:0}
.ctl .lab{display:flex;justify-content:space-between;align-items:baseline;
  gap:.5rem;font-size:.76rem;color:var(--dim)}
.ctl .val{font-size:1.05rem;font-weight:700;color:var(--ink);
  font-variant-numeric:tabular-nums;white-space:nowrap}
input[type=range]{width:100%;margin:.35rem 0 .1rem;accent-color:var(--sel)}
/* THE SWITCH LOOKS LIKE A SWITCH, NOT LIKE A BUTTON THAT DOES SOMETHING. Small,
   quiet when on - the on state is the resting state and does not need to argue
   for itself - and outlined when off, where it is the reason the mask is gone
   and has to be findable. */
.ctl .ctloff{font:500 .64rem/1 inherit;letter-spacing:.06em;
  text-transform:uppercase;border:1px solid var(--edge);background:transparent;
  color:var(--dim);border-radius:999px;padding:.15rem .45rem;cursor:pointer;
  margin-left:auto;margin-right:.5rem}
.ctl .ctloff:hover{border-color:var(--ink);color:var(--ink)}
.ctl .ctloff[aria-pressed=false]{border-color:var(--ink);color:var(--ink)}
/* The value dims with the control, so the remembered setting is visibly a
   memory rather than a live reading. */
.ctl .val[data-off]{opacity:.45}
input[type=search]{width:100%;background:var(--chip);
  border:1px solid var(--edge);color:var(--ink);border-radius:9px;
  padding:.5rem .65rem;font-size:.92rem}
/* D1. The year as a track. Ticks are the access-epoch boundaries the data
   enumerated - never hand-chosen dates - and the highlighted span is the epoch
   the dragged day falls in. The map only ever uses an EPOCH; the thumb keeps
   the day, so a person can say "the twentieth" and still be told which legal
   period that lands in. Nothing is interpolated between two epochs, because
   there is no such thing as half a legal status. */
.track{position:relative;height:17px;margin:.45rem 0 -.5rem;border-radius:4px;
  background:var(--chip);border:1px solid var(--edge);overflow:hidden}
.track .trip{position:absolute;top:-2px;bottom:-2px;display:none;
  border:1px solid var(--ink);border-radius:3px;pointer-events:none}
.endwrap{padding-top:.15rem}
.endbtn{background:none;border:1px solid var(--edge);border-radius:999px;
  color:var(--ink);font:inherit;font-size:.7rem;padding:.15rem .55rem;
  cursor:pointer;margin-right:.4rem}
.endbtn[aria-pressed=true]{background:var(--chip)}
.gates{font-size:.72rem;padding-top:.25rem}
.seasons{font-size:.72rem;padding-top:.2rem}
.seasons .info{text-align:left}
.gates .info{color:var(--warn);text-align:left}
.track .season{position:absolute;top:0;bottom:0;background:var(--on);
  opacity:.22}
.track .span{position:absolute;top:0;bottom:0;background:var(--sel);
  opacity:.34;transition:left .12s,width .12s}
.track i{position:absolute;top:0;bottom:0;width:1px;background:var(--edge)}
.track b{position:absolute;top:2px;font-size:.55rem;font-weight:400;
  color:var(--dim);transform:translateX(2px);line-height:1}
/* F12. A pill is a door, and a door that opens onto something already on
   screen has to SAY it opened. Without this the Date pill was
   indistinguishable from a dead control: scrollIntoView does nothing when the
   target is already visible, which on the docked desktop is always. */
.ctl.lit{animation:lit 1.1s ease-out}
@keyframes lit{from{background:var(--chip)}to{background:transparent}}
.chip{border:1px solid var(--edge);background:var(--chip);color:var(--dim);
  border-radius:8px;padding:.3rem .55rem;font-size:.74rem;cursor:pointer}
.chip[aria-pressed=true]{background:var(--sel);color:var(--selink);
  border-color:transparent}
.modes{display:flex;flex-wrap:wrap;gap:.3rem;padding:.5rem 0 .1rem}
.mode{border:1px solid var(--edge);background:var(--chip);color:var(--dim);
  border-radius:999px;padding:.26rem .7rem;font-size:.76rem;cursor:pointer;
  font-weight:600}
.mode[aria-pressed=true]{background:var(--sel);color:var(--selink);
  border-color:transparent}
.mode .st{font-weight:400;font-size:.62rem;opacity:.85}
.kind{font-size:.58rem;text-transform:uppercase;letter-spacing:.07em;
  border:1px solid var(--edge);border-radius:3px;padding:0 .25rem;
  color:var(--dim);margin-left:.35rem;vertical-align:1px}
.famhead{font-size:.7rem;color:var(--dim);padding:.5rem 0 .1rem;
  border-top:1px solid var(--line);margin-top:.4rem}
.frow{display:flex;align-items:flex-start;gap:.5rem;padding:.45rem 0;
  border-bottom:1px solid var(--line)}
.frow:last-child{border-bottom:0}
.frow .body{flex:1;min-width:0}
/* ★ THE OPACITY SLIDER SITS UNDER ITS ROW (office edition 365 §10.12). Full
   width beneath the row it belongs to, not squeezed beside the switch: a
   control that shares a line with a toggle is a control nobody's thumb can
   find on a phone. */
.orow{display:flex;align-items:center;gap:.5rem;width:100%;
  padding:.15rem 0 .45rem;font-size:.72rem;color:var(--dim)}
/* ★ THE OPACITY CONTROL DRAWS (office edition 375 §6.4, the founder's frame:
   every row ends "Opacity 70 %" and NO CONTROL BENEATH IT). The row is a flex
   line and the slider was the only child with no width of its own: a range
   input takes an intrinsic width, and `md-slider` - which this row carries
   since Ed 373 §7.4 - is a custom element, which has NONE until it is given
   one. `flex:1` on a box whose content width is zero resolves to zero, so the
   control was present, enabled and one pixel wide. The rule names both
   spellings and gives the component a floor to grow from. */
.orow input[type=range],.orow md-slider{flex:1 1 auto;min-width:8rem}
/* ★ AND IT GETS THE ROW, NOT 8REM OF IT (office edition 375 §46). The
   slider WORKS - measured on the served site by keyboard and by pointer drag,
   with the map's own paint read back: 0.95 -> 0.285 on a real layer - so it
   does not go from the row. What it had was a 120 px track (the `min-width`
   floor §6.4 gave it, which `flex` never grew past in a cramped row) and a
   20 px handle: a small target where a short drag moves a long way and a
   mis-grab moves nothing, which is a fair reading of "does nothing" that is
   about the size rather than the wiring. It fills its row now, like the
   walk-time slider, and its row is the one the §37.3 door gives it. */
.orow md-slider{display:block;width:100%;--md-slider-active-track-height:4px}
.orow .val{font-variant-numeric:tabular-nums;min-width:2.6rem;
  text-align:right}
.frow .name{font-size:.86rem;font-weight:600;color:var(--ink)}
.frow .why{font-size:.7rem;color:var(--dim);line-height:1.35}
/* THE PROVENANCE DOOR. A source line that has a Guidebook entry becomes the
   way in to it. It is not a floating help button - the F13 ban holds - it is
   the line that was already there, made to open. */
/* ★ AND A DOOR THAT LEAVES THE PAGE IS AN ANCHOR (office edition 362 §1.2m).
   The district card carries FWP's own link, which is a navigation and not a
   panel - a button that navigates would be a link wearing a costume. Same
   rule, one more selector, because a class the page emits and never styles is
   a rendering bug no assertion is watching. */
button.door,a.door{display:block;width:100%;text-align:left;background:none;
  border:0;padding:0;font:inherit;font-size:.7rem;color:var(--dim);
  line-height:1.35;cursor:pointer;text-decoration:underline;
  text-decoration-style:dotted;text-underline-offset:2px}
button.door:hover,button.door:focus-visible,
a.door:hover,a.door:focus-visible{color:var(--ink)}
/* A7: one row per risk. Grid rather than flex so the marks, names and statuses
   line up down the column - a panel a reader scans for the one row that is
   different only works if the columns are columns. */
.rrow{display:grid;grid-template-columns:1.1rem auto 1fr auto;
  align-items:center;gap:.45rem;width:100%;text-align:left;background:none;
  border:0;border-bottom:1px solid var(--edge);padding:.5rem 0;
  font:inherit;color:var(--ink);cursor:pointer}
.rrow:hover,.rrow:focus-visible{background:var(--chip)}
.rmark{font-size:.85rem;text-align:center;color:var(--dim)}
/* AMBER IS FIRE'S CHANNEL IN THE LEDGER, and a risk that is in force is the
   same kind of claim. GREEN IS BANNED FROM STATUS - there is no all-clear to
   render, so the none-found dot stays the dim ink every other quiet thing
   uses. */
.rrow[data-state=active] .rmark{color:var(--fire)}
.rrow[data-state=thin] .rmark{color:var(--fire)}
.rglyph{display:flex;align-items:center;color:var(--dim)}
.rname{font-size:.82rem}
.rstat{font-size:.78rem;color:var(--dim);text-align:right}
.rrow[data-state=active] .rstat{color:var(--ink)}
.rfresh{font-size:.68rem;color:var(--dim);font-variant-numeric:tabular-nums}
/* THE PACK'S SECTION, and it is a container and nothing else (office edition
   375 §111.93, slice 1). No border, no fill, no heading: the rows beneath it
   are the Guidebook's own and already carry their rule. A class the page
   emits must have a rule, which is what this is - and a rule that drew a box
   would be the pack inventing chrome. */
.packsec{margin-top:.35rem}
.grow{padding:.55rem 0;border-bottom:1px solid var(--edge)}
.grow button.q{display:block;width:100%;text-align:left;background:none;
  border:0;padding:0;font:inherit;color:var(--ink);cursor:pointer}
.grow .gsub{font-size:.7rem;color:var(--dim);line-height:1.35;margin-top:.15rem}
.gbody{font-size:.8rem;line-height:1.5;margin:.5rem 0 .9rem}
.frow .st{font-size:.62rem;color:var(--warn);text-transform:uppercase;
  letter-spacing:.06em}
.tg{flex:0 0 auto;border:1px solid var(--edge);background:var(--chip);
  color:var(--dim);border-radius:999px;padding:.24rem .6rem;font-size:.72rem;
  cursor:pointer}
.tg[aria-pressed=true]{background:var(--on);color:var(--onink);
  border-color:transparent}
.pin{flex:0 0 auto;background:none;border:0;color:var(--dim);cursor:pointer;
  font-size:.95rem;padding:.1rem .2rem;line-height:1}
.pin[aria-pressed=true]{color:var(--sel)}
/* The Layers sheet's own search field (office edition 360 §1.7b). Same type
   and the same box as the Find field it replaces, so a reader meets one search
   in one place. */
/* THE MAP-TYPE PICKER (office edition 361 §2e). It sits in the engine's own
   bottom-right control stack, above the zoom buttons, and its menu is a native
   `popover` - so the light dismiss, the Escape key and the top layer come from
   the platform rather than from four handlers of ours. */
/* ★ THE PICKER WAS NOT CLICKABLE, AND THE CAUSE WAS ONE INHERITED PROPERTY
   (office edition 364 §6, the founder on his iPhone: *"I cannot change the
   map layers, the satellite button on the map is not clickable."*).

   MapLibre's control CORNER carries `pointer-events:none` so the map can be
   dragged through the empty space around its buttons, and each of its own
   controls re-enables it. This picker is mounted as a sibling INSIDE that
   corner (Ed 361 §2e put it at the zoom stack), so it inherited the `none`
   and never turned it back on: `document.elementFromPoint` at the button's own
   centre returns the map canvas, and every tap went to the map.

   A CONTROL THAT LOOKS PRESSABLE AND IS NOT is worse than one that is absent,
   because a reader tries it twice and concludes the product is broken. This is
   the scrim's family - present, named, inert - reached through a property
   nobody wrote. */
/* ★ THE WALK-TIME TRACK, UP THE MAP'S RIGHT EDGE (office edition 375 §100.3,
   §100.5, the founder: *"the walk time slider is out of the left menu and runs
   up the right side of the map between the map buttons"*).

   IT IS THE HTML STANDARD'S OWN RANGE INPUT IN ITS VERTICAL WRITING MODE, and
   nothing is invented - the same argument as the date's exact entry being the
   standard's date input. `writing-mode: vertical-lr` is what the HTML
   rendering specification says makes a range vertical; `direction: rtl` is
   what puts the MINIMUM at the foot, so more minutes is higher, which is the
   only orientation a person reading a walk-time axis will guess.

   WHERE IT SITS, AND THE NUMBER THAT DECIDED IT. §100.3 asked the shop to
   measure the right edge's run on the 430 tier before building, because a
   track under about 140 pixels is a track a finger cannot set. Measured on the
   served page at 430x932: the base button 713-736, the scale bar 740-762, the
   zoom pair 772-830 - THE GAP BETWEEN THE BASE BUTTON AND THE ZOOM PAIR IS 36
   PIXELS, and the scale bar is inside it. That is not the ruling being wrong;
   it is the corner being EMPTY. MapLibre's bottom-right corner is anchored at
   its foot and grows upward, so a tall child inserted between them does not
   fit into 36 pixels - it makes the corner 36 pixels taller plus its own
   height, and the base button rises. The track is therefore inserted exactly
   where the ruling puts it, after the base wrapper and before the scale and
   the zoom group, and it takes the height it is given.

   THE TEXT IS UNSELECTABLE AND THE TRACK OWNS THE POINTER (§99.10a, carried
   forward rather than re-learned): a drag along a control must not leave a
   selection behind, and the two statements that say so are the same two the
   year bar carries. */
/* ★ NO BOX (office edition 375 §100.7, the founder on the deployed set:
   *"I don't like that box around the slider on the map, I'd like it to just be
   the walk time slider on its own without the box framing it."*).

   WHAT CAME OFF: the container's background, its border, its rounded corners
   and its shadow. What is left is the three things he named - the glyph, the
   rail and the handle's label - standing on the map, which is how the year bar
   stands: `.yearbar` is a transparent row and only the parts that must be read
   against imagery carry any ground of their own.

   THE GLYPH KEEPS A SHADOW AND NOT A BOX, and the distinction is the ruling's.
   Unframed text over an aerial photograph is text that disappears over snow;
   a shadow is the treatment every map label in this product already uses to
   stay legible, and it frames nothing. The handle's label keeps the same small
   chip the year bar's date wears - the one he has looked at and approved -
   because a value that cannot be read is not a value. */
/* ★ THE SEARCH BAR, TOP CENTRE ON THE LAPTOP (office edition 375 §103.4).

   Centred with `left:50%` and a translate rather than by margins, because the
   map's own chrome is not symmetrical - the glyph button sits left and the
   Quartermaster and Menu stack sits right - and a centred box is centred on
   the MAP, which is what he asked for. Its width is capped so it never
   reaches either, and the cap is what keeps the clause true at every window
   between the breakpoint and a wide desktop.

   IT IS HIDDEN ON THE PHONE and the magnifier is hidden on the laptop; one of
   the two is drawn at every width, never both, never neither. */
.topsearch{display:none}
/* The phone's full-screen search view (office edition 375 §103.3): the input
   at its head, the results beneath, and the sheet's own four exits. A class
   the page emits must have a rule, which is what this is. */
.searchview{display:block}
.searchview>.ctl{display:block;margin:0}
.searchbtn{position:absolute;top:.5rem;left:50%;transform:translateX(-50%);
  z-index:8;background:var(--panel);color:var(--ink);
  border:1px solid var(--edge);border-radius:999px;
  width:40px;height:40px;display:flex;align-items:center;
  justify-content:center;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.searchbtn .msym{font-size:22px}
/* ★ THE SEARCH RESULTS (office edition 375 §87.5). List items with the
   standard's slots - the name, its kind, its county - and nothing else. Facts
   only: no snippet, no score, no distance the index cannot honestly compute.
   One line per row, which is §102.4's rule for every card in this product,
   applied to a list at its birth rather than retrofitted. */
/* ★ THE MAGNIFIER, DRAWN RATHER THAN FETCHED (office edition 375 §104.6a).

   THE FIRST CUT PUT AN INLINE SVG IN A `data:` URI and the host allowlist
   went red on it: an SVG's own XML NAMESPACE declaration is a w3.org address,
   which is a URL in the stylesheet, and the guard reads URLs. It was right to
   fire - and it fired a SECOND time on this very comment, because a comment
   explaining the defect still contained the address that caused it. The same
   shape as the identity law catching the batch's own record: a note ABOUT a
   thing is still a file with the thing in it. Named here, not quoted.
   A namespace is never fetched, but teaching a security guard to tell a
   namespace from a host is weakening it to fit one glyph, and the glyph did
   not need a URL in the first place.

   So the ring and its handle are two pseudo-elements on a wrapper: a bordered
   circle and a rotated bar. An `input` cannot carry children or pseudo-
   elements of its own, which is why the wrapper exists - the CONTROL is still
   the standard's search input alone, with nothing inside it.

   IT ALSO DROPS A FONT DEPENDENCY the field did not otherwise have: Material
   Symbols is a font, a font cannot be a background, and a glyph that has not
   loaded is a blank where the mark should be. */
.qwrap{position:relative;display:block}
.qwrap::before{content:'';position:absolute;left:.55rem;top:50%;
  width:.62rem;height:.62rem;margin-top:-.42rem;border-radius:50%;
  border:2px solid var(--dim);pointer-events:none}
.qwrap::after{content:'';position:absolute;left:1.12rem;top:50%;
  width:2px;height:.42rem;margin-top:.1rem;background:var(--dim);
  transform:rotate(-45deg);transform-origin:top center;pointer-events:none}
#ctl-find input[type=search]{width:100%;box-sizing:border-box;
  padding:.5rem .6rem .5rem 2rem;border:1px solid var(--edge);
  border-radius:8px;background:var(--panel);color:var(--ink);font:inherit}
.gaz{margin:.3rem 0 0 0;max-height:46vh;overflow:auto}
.gaz button{display:flex;width:100%;gap:.5rem;align-items:baseline;
  background:none;border:0;border-bottom:1px solid var(--edge);
  padding:.42rem .2rem;font:inherit;color:var(--ink);cursor:pointer;
  text-align:left}
.gaz button:hover,.gaz button:focus-visible{background:var(--chip)}
.gaz .gn{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap}
.gaz .gk{flex:0 0 auto;font-size:.7rem;color:var(--dim)}
.gaz .gc{flex:0 0 auto;font-size:.7rem;color:var(--dim)}
/* The way's class, last in the tail and set like its neighbours - a fourth
   fact on the row, not a fourth kind of thing. Every class the page can emit
   must have a rule (the 2026-08-22 legend defect), so it is declared here
   beside the three it joins rather than inheriting by luck. */
.gaz .gw{flex:0 0 auto;font-size:.7rem;color:var(--dim)}
/* The count and the state of the fetch, one line, in the hint's own grammar. */
.gazsaid{font-size:.72rem;color:var(--dim);padding:.2rem 0}
/* ★★ THE TRACK IS ANCHORED TO THE RIGHT, BECAUSE THE SCALE'S WIDTH IS A MAP
   FACT AND THIS CONTROL'S POSITION MAY NOT BE (office edition 375 §111.95
   §2, the founder: *"the walk time slider button slides itself to the left
   and right as you zoom in and out of the map. It should be anchored to its
   far right position."*).

   MEASURED BEFORE IT WAS CHANGED, six zooms at both tiers, same centre:

     zoom  6   scale 95 px "50 mi"     track x 1337
     zoom  9   scale 76 px "5 mi"      track x 1346
     zoom 11   scale 61 px "1 mi"      track x 1354
     zoom 13   scale 92 px "2000 ft"   track x 1338
     zoom 17   scale 73 px "100 ft"    track x 1347

   **SEVENTEEN PIXELS OF TRAVEL, AND THE SCALE IS THE WHOLE CAUSE.** The base
   button and the zoom pair never move - they are right-anchored - and the
   scale's own left edge moves BY DESIGN, because a scale bar measures the
   map and its label changes with the zoom. The library's bottom-right corner
   is shrink-to-fit around its widest child, this wrapper filled that corner,
   and the input was centred inside it: so the track, its glyph and its
   readout all inherited a width that is a map fact.

   THE TRACK'S LENGTH WAS NEVER THE PROBLEM, and the office's reading of the
   two captures said it was: `clamp(160px,38vh,340px)` measured 340 at every
   zoom in this frame - vh is the viewport, which zooming does not change.
   It is the LEFT EDGE that moved, which is what "slides to the left and
   right" says.

   THE CURE IS THE FOUNDER'S OWN WORD: the wrapper shrinks to its content and
   sits at the corner's right edge, ten pixels in - the library's own margin,
   read off the zoom pair rather than chosen - so the track lines up with the
   controls above and below it and its position is a function of the layout
   alone. The scale goes on measuring the map beside it, which is its job. */
.efftrack{pointer-events:auto;clear:both;display:flex;flex-direction:column;
  align-items:center;gap:.25rem;margin:0 0 .3rem 0;padding:0;
  width:fit-content;margin-left:auto;margin-right:10px;
  position:relative;background:none;border:0;box-shadow:none;
  -webkit-user-select:none;user-select:none}
.efftrack .effglyph{font-size:20px;line-height:1;color:var(--ink);
  background:none;border:0;padding:0;cursor:pointer;
  text-shadow:0 0 3px var(--panel),0 0 6px var(--panel)}
/* OFF IS A STATE THE GLYPH WEARS, not a word beside it: the head of the track
   is also its on/off, because taking Walk time off the rail took the only door
   its engaged/value pair had (§25's law - engaged and value are distinct, and
   turning it off must not move the slider). */
.efftrack .effglyph[aria-pressed=false]{color:var(--dim);opacity:.55}
/* ★ AND THE WIDTH IS TAKEN BACK FROM THE GENERIC RULE (measured: the input
   shipped 98 px wide instead of 22). `input[type=range]{width:100%}` is
   written for a slider lying in a panel row, and it reaches this one too - a
   vertical track 98 px wide is a 98 px-wide dead zone over the map. The cure
   is specificity, not `!important`: an element selector plus the class beats
   an attribute selector alone, and the generic rule stays true for every
   horizontal slider that wants it. */
input.effvert{writing-mode:vertical-lr;direction:rtl;
  width:22px;height:clamp(160px,38vh,340px);margin:0;
  accent-color:var(--ink);cursor:pointer;touch-action:none;
  -webkit-user-select:none;user-select:none}
/* THE VALUE RIDES THE HANDLE, as the year bar's date rides its own: an
   absolutely placed label whose position is computed from the value, because a
   native range handle has no inside to write in. It is to the LEFT of the
   track so it sits over the map rather than off the edge of the window. */
.effvalue{position:absolute;right:calc(100% - .1rem);
  background:var(--panel);color:var(--ink);
  border:1px solid var(--edge);border-radius:4px;padding:.1rem .3rem;
  font-size:.68rem;font-variant-numeric:tabular-nums;white-space:nowrap;
  pointer-events:none;transform:translateY(-50%)}
.effvalue[data-off]{color:var(--dim)}
.fw-basewrap{margin:0 0 .3rem 0;display:flex;justify-content:flex-end;
  pointer-events:auto;
  /* ★ ITS OWN LINE, ABOVE THE SCALE AND THE ZOOM (office edition 365 §10.2,
     the founder: *"The maps menu is stacked horizontally with the map scale
     icon, it should be stacked vertically above it."*). MapLibre floats every
     control in a corner to the right, so a sibling inserted there lines up
     BESIDE them - measured on the phone: the picker at x 255 y 652 and the
     scale at x 311 y 652, the same row, because a block box does not clear a
     float, it lets the float sit on top of its own line. `clear` is what
     takes a row of its own; WHICH row is then the DOM order, and the first
     `clear` put the picker UNDERNEATH the scale at y 657 against y 625. The
     mount was moved to the corner's first child in the same breath. */
  clear:both}
/* ★ THE MAP BUTTON IS MENU'S SIZE (office edition 375 §106.2(c), the
   founder's done-test: *"the map button is the same size as Menu"*). It was
   `.28rem .5rem` at a radius of 8 against the corner's `.32rem .55rem` at 9 -
   near enough to look like a mistake and far enough to be one. The three
   boxes his test allows on the map are one size now.

   THE SHADOW STAYS AND IT IS NOT SIZE. Menu carries none; this one sits over
   imagery with no panel behind it. The ruling names size, so size is what
   changed - a shop that also took the shadow would be ruling on a thing the
   founder did not put to it. */
/* ★★ AND NO LABEL MAY TAKE HALF THE MAP (office edition 375 §111.98 §2a
   against §106.2(c)). The button is a READOUT of the base that is on, so its
   width follows whatever that base is called - and §2a names the new row
   *Montana 2025 · 30 cm · state service*, which measures **197 px: 46 % of a
   430-pixel phone**, against `Satellite`'s 57.

   §106.2(c) rules this button to Menu's and the Quartermaster's SIZE, and a
   button that is three and a half times Menu is not that. The two rulings
   meet in one element; the cap is the reading that keeps both as far as they
   can both be kept - the row's full name stays in the picker and in the
   attribution, where there is room for it, and the button says as much of it
   as fits on one line. **Whether the button should instead carry a short form
   of the name is the office's to rule, and it is asked.**

   THE ELLIPSIS IS THE FAMILY'S OWN TREATMENT for a value that outgrows its
   slot; it was already on the retired rail's readouts and on the pane's
   section values, for the same reason. */
.fw-basebtn{background:var(--panel);color:var(--ink);
  border:1px solid var(--edge);border-radius:9px;padding:.32rem .55rem;
  font-size:.72rem;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.3);
  max-width:min(9rem,40vw);white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis}
.basemenu{position:fixed;inset:auto;margin:0;border:1px solid var(--edge);
  border-radius:10px;background:var(--panel);color:var(--ink);
  padding:.4rem;box-shadow:0 10px 30px rgba(0,0,0,.42);
  /* ★ A DEFINITE WIDTH, BECAUSE SHRINK-TO-FIT ASKS ITS OWN POSITION (office
     edition 365 §10.5). With `inset:auto` a fixed popover takes its STATIC
     position, which here is inside a corner container 87 pixels from the
     right edge - so shrink-to-fit offered it 87 pixels, the menu wrapped to
     87 by 450, and the anchor then placed it against a width the anchor
     itself had just caused. Measured: 87 wide and 450 tall on the phone,
     against 214 by 238 before it was touched.

     A CONTROL WHOSE MEASUREMENT DEPENDS ON WHERE IT ALREADY IS CANNOT BE
     PLACED - the second pass reads the answer the first pass invented. The
     cure is to stop asking: `max-content` under a ceiling makes the box the
     same size wherever it stands, so the anchor reads a width that is a fact
     about the menu rather than about the corner. */
  width:max-content;max-width:min(15rem,calc(100vw - 1rem))}
.basemenu::backdrop{background:rgba(0,0,0,.18)}
.basemenu .chip{display:block;width:100%;text-align:left;margin:.1rem 0}
#layerq{width:100%;box-sizing:border-box;background:var(--chip);
  border:1px solid var(--edge);border-radius:9px;color:var(--ink);
  padding:.4rem .55rem;font-size:.82rem;margin:.1rem 0 .3rem}
/* The visible-range override of 349 s1b. Same weight as the panel's pin, its
   own glyph, and its own pressed colour - two controls in one row must not
   look like one control twice. */
.zpin{flex:0 0 auto;background:none;border:0;color:var(--dim);cursor:pointer;
  font-size:.95rem;padding:.1rem .2rem;line-height:1}
.zpin[aria-pressed=true]{color:var(--sel)}
/* The key's disclosure. A native <details>, so the platform supplies the
   keyboard and the screen-reader behaviour; the styling only removes the
   default marker's indent and matches the panel's own type. */
.keybox{margin:.2rem 0 .1rem}
.keybox>summary{font-size:.72rem;color:var(--dim);cursor:pointer;
  padding:.25rem 0;list-style:none}
.keybox>summary::-webkit-details-marker{display:none}
/* THE CHARACTERS THEMSELVES, NOT CSS ESCAPES. A CSS escape of U+25B8 rendered as
   a tofu box followed by "B8" on the built page - a hex escape whose
   terminating space did not survive the way the stylesheet is assembled, so
   the parser read three digits and a literal. A glyph that is in the file is a
   glyph nothing can mis-parse. */
.keybox>summary::before{content:'▸ ';color:var(--dim)}
.keybox[open]>summary::before{content:'▾ '}
.hint{font-size:.72rem;color:var(--dim);padding:.4rem 0 .1rem;line-height:1.4}
.sheet{position:absolute;left:0;right:0;bottom:0;z-index:20;
  background:var(--card);border-top:1px solid var(--edge);
  border-radius:13px 13px 0 0;padding:.4rem .9rem 1.2rem;
  transform:translateY(106%);transition:transform .18s ease;
  box-shadow:0 -12px 32px rgba(0,0,0,.4);max-height:78vh;overflow-y:auto}
.sheet.open{transform:translateY(0)}
/* ★★ THE MODAL SHEET'S SCRIM (office edition 375 §111.104 §4c). It went at
   §51.2 with its element - the standard's non-modal sheet has none, and an
   element that does nothing is an orphan - and §4c rules the phone tier's
   sheet MODAL, which is the form that carries one.

   THE COLOUR IS FIXED IN BOTH THEMES AND IT IS NOT THE GROUND. The
   standard's `scrim` role is one colour in every scheme - a scrim recedes
   what is behind it, and receding is a direction rather than a hue - so
   `--scrim` is the family's dark ground in both, at the 32 % the
   specification gives a modal sheet. `_MD_ROLES` maps `scrim` onto `bg`,
   which in the light theme is a near-WHITE: the first thing ever to use that
   role dimmed the map toward white, measured at `rgb(246, 244, 238)` before
   this line existed.

   IT SITS UNDER THE PANE AND OVER EVERYTHING ELSE: z-index 11 against the
   pane's 12, the year bar's 9 and the corner's 8 - so the doors under it are
   unreachable while it is up, which is what *modal* means and what §4c says
   in those words.

   THE VISIBILITY IS A CLASS, NOT A STYLE WRITTEN BY HAND, and it transitions
   with the sheet it belongs to. `visibility` steps at the end of the fade on
   the way out and at the start on the way in, so a scrim at zero opacity
   never eats a press. */
.scrim{position:absolute;inset:0;z-index:11;
  background:var(--scrim);opacity:0;visibility:hidden;
  pointer-events:none;transition:opacity .18s ease,visibility 0s .18s}
body.modalpane .scrim{opacity:.32;visibility:visible;pointer-events:auto;
  transition:opacity .18s ease,visibility 0s}
.handle{padding:.45rem 0 .3rem;width:100%;background:none;border:0;cursor:grab}
.handle i{display:block;width:38px;height:4px;background:var(--edge);
  border-radius:2px;margin:0 auto}
/* THE CLOSE SITS IN THE PANE'S TOP TRAILING CORNER AT THE FAMILY'S 32/20
   STEP, above the content and inside the padding, so it never lands on a
   title and never scrolls away with the body. A plain icon button: no box, no
   text, which is the same treatment the row controls take. */
/* ★ THE YEAR BAR (office edition 375 §85.2, §97.5, §98.5). A thin full-year
   axis along the bottom edge of the map: 1 January at the far left, 31
   December at the far right, month ticks and their names, the handle at the
   chosen date.

   ITS FORM IS NASA WORLDVIEW'S BOTTOM TIMELINE, which is the mature pattern
   for a date axis under a map and is named as the form rather than quoted:
   nothing of its geometry is copied, because the office's §85.2 says Material
   publishes no timeline component and this is the family's own control built
   from the standard's slider tokens, as Emphasis was.

   ABOVE THE BOTTOM BAR ON THE PHONE, flush to the map's bottom edge on the
   laptop where there is no bar. */
/* ★ A SLIDER IS NOT TEXT, AND A DRAG ACROSS IT SELECTS NOTHING (office
   edition 375 §99.9, the founder's frame: dragging the handle lit May and Jun
   as the pointer crossed them).

   The month names are real text in the track, so a press-and-move over them is
   a text selection as far as the browser is concerned - it has no way to know
   the element is a control unless the element says so. Three statements say
   it, and they are three because they answer three different mechanisms: the
   bar's text is not selectable (`user-select`), the track owns the pointer
   rather than handing the gesture to the browser's scroll and zoom
   (`touch-action`), and the press claims the gesture at its first instant
   (`preventDefault` in `pointerdown`, in app.js). This is what the standard's
   slider does; a control that leaves a blue smear behind the finger is one a
   reader has to clean up after. */
/* ★★ THE FULL WIDTH OF THE MAP, AND THE GROUND SHOWS THROUGH IT (office
   edition 375 §106.3, the founder's done-test: *"the date bar runs the full
   width of the map and is see-through"*).

   `bottom:2.9rem` WAS THE BOTTOM BAR'S HEIGHT. The bar is gone at both tiers
   with §106.2(a), so the bar's clearance goes with it and the year bar takes
   the map's own bottom edge - one rule, no tier override, which is what
   deleting the phone's second posture is for.

   `padding:0 .5rem` WAS THE OTHER HALF OF "not full width": it inset the
   track eight pixels from each edge. The track meets both edges now and
   gives up its side borders and its corner radius to do it, because a border
   floating in from nowhere is what a reader sees when a full-bleed bar keeps
   a rounded end. */
.yearbar{position:absolute;left:0;right:0;bottom:0;z-index:9;
  display:flex;align-items:center;gap:.4rem;padding:0;
  pointer-events:none;-webkit-user-select:none;user-select:none}
.yearbar>*{pointer-events:auto}
/* ★ THE GROUND IS 75% OPAQUE, THE MARKS ARE NOT (§106.3, *"about 25%
   transparent"*). The translucency belongs to the bar's GROUND: written as
   `opacity` on the element it would fade the month rules, the month names
   and the handle with it, and a date a reader cannot read is not a date.
   `color-mix` takes the panel token itself to 75%, so the bar follows the
   theme it is in and there is no second colour to keep in step. */
.ybtrack{position:relative;flex:1 1 auto;height:26px;cursor:pointer;
  background:var(--panel);
  background:color-mix(in srgb,var(--panel) 75%,transparent);
  border:1px solid var(--edge);border-left:0;border-right:0;border-radius:0;
  overflow:hidden;outline:none;touch-action:none}
.ybtrack:focus-visible{border-color:var(--ink)}
.ybmonths{position:absolute;inset:0}
.ybmonths i{position:absolute;top:0;bottom:0;width:1px;
  background:var(--edge)}
/* ★★ THE MONTH NAMES TAKE `--ink`, AND THE TRANSLUCENCY IS WHY (office
   edition 375 §106.2(e), MEASURED at the ruled value rather than near it).

   ELEVEN FRAMES - satellite and lidar, both themes, the Highwood Mountains,
   the Chinese Wall and the edge of Great Falls - composited through
   `price_bar_dim.py`, worst pixel, against the 4.5:1 WCAG normal-text floor
   this product already refuses to ship under (`tests/test_summon.py`):

     the bar's ground at 0.75    `--dim` 3.17:1   FAILS
     the bar's ground at 0.75    `--ink` 6.88:1   passes
     the bar's ground at 1.00    `--dim` 6.93:1   (what it used to stand on)

   A 25-PERCENT TRANSPARENT BAR CANNOT CARRY DIM WRITING. The names stood on
   an opaque panel when they were set in `--dim`, and the founder's 25% takes
   a quarter of that panel away - so the token that was legible on it is not
   legible through it. His transparency is the ruling; the floor is the
   product's; the token is the shop's, and it is the only one of the three
   that may move.

   THE HANDLE IS ALREADY `--ink` (6.88:1) and its date label is an opaque
   chip, so neither moves. */
.ybmonths b{position:absolute;bottom:1px;font-size:.58rem;font-weight:600;
  color:var(--ink);transform:translateX(2px);letter-spacing:.02em}
/* The span a two-tap range shades. Drawn under the handles. */
.ybspan{position:absolute;top:0;bottom:0;background:var(--chip);opacity:.55}
.ybhandle{position:absolute;top:0;bottom:0;width:2px;background:var(--ink)}
.ybhandle::after{content:'';position:absolute;left:-4px;right:-4px;top:0;
  height:6px;background:var(--ink);border-radius:2px}
/* THE RANGE'S END HANDLE WEARS ITS CAP AT THE FOOT, so the two are told apart
   at a glance: the start is capped at the top, the end at the bottom. Two
   handles drawn identically are two handles a reader cannot tell apart, and
   the class guard is what asked the question - `ybend` was emitted with no
   rule of its own, which is the class-with-no-CSS defect (F2) exactly. */
.ybend::after{top:auto;bottom:0}
/* ★ THE LABEL MAY NOT SIZE THE TRACK (office edition 375 §99.6, MEASURED
   on the served page while driving the drag).

   THE DEFECT: the bar was one flex row - track, then label - so the track's
   width was whatever the label left over, and the label prints the date. It
   reads `--` before a date is set, `17 September` after one, and
   `19 March – 7 July` once there is a range. Every one of those is a
   different width, so THE SCALE OF THE CONTROL CHANGED AS THE READER DRAGGED
   IT: the day under the pointer was computed against a track that had just
   been resized by the readout of the day before it. Measured: a drag released
   over day 200 landed on 195, and over day 300 on 298 - about seventeen
   pixels of drift at the right-hand end, the handle trailing the finger.

   Nothing was wrong with the drag. The ruler was moving.

   So the label leaves the flow and sits above the track's right-hand end. The
   track is then the full width of the bar at every date, which is what makes
   a pixel mean a fixed day - the property a slider is. It is still in the
   bar's own stacking context and still takes its own presses. */
/* Reserved space, so the row does not reflow when the button appears. The
   button is hidden with `visibility` rather than removed, because `hidden`
   would collapse the space the reservation exists to hold. */
/* ** THE TIME ROW'S RIGHT-HAND GROUP (office edition 375 §111.63). Today and
   the date label sit here side by side. They used to be two absolutely
   positioned elements at the same right edge, with Today clearing the label by
   `translateX(calc(-100% - .4rem))` - its OWN width, 43 px, against a label
   83 px wide - so they overlapped by 34 px at 320 the moment Today appeared.
   Nobody saw it because Today is hidden while the date is today.
   RESET TO TODAY (§111.42) keeps its reserved space, and keeps it BETTER: the
   flex slot is held by `visibility` so the label does not shift when the date
   moves, which is what the reservation was for and what the transform could
   not deliver. */
.ybright{position:absolute;right:.5rem;bottom:calc(100% + .25rem);
  display:flex;align-items:center;gap:.4rem;z-index:9}
.ybtoday{font:inherit;font-size:.72rem;background:var(--panel);color:var(--ink);
  border:1px solid var(--edge);border-radius:8px;padding:.12rem .42rem;
  cursor:pointer}
.ybtoday[hidden]{display:inline-block !important;visibility:hidden}
.yblabel{background:var(--panel);color:var(--ink);
  border:1px solid var(--edge);border-radius:4px;padding:.18rem .45rem;
  font-size:.72rem;font-variant-numeric:tabular-nums;cursor:pointer;
  white-space:nowrap}
/* The exact-entry control sits behind its label: it is opened by the label
   and never shown as a second field. */
.ybpick{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;
  right:.5rem;bottom:0}
/* ★ THE DATE SHEET (office edition 375 §99.4). The field is the head and the
   Date cell's own surfaces sit beneath it, borrowed whole - so this rule
   styles the container and lets the exact-entry input out of the corner it
   hides in while it is parked on the bar. */
.ybdate{display:flex;flex-direction:column;gap:.5rem}
.ybdate .ybpick{position:static;width:100%;height:auto;opacity:1;
  pointer-events:auto;background:var(--panel);color:var(--ink);
  border:1px solid var(--edge);border-radius:4px;padding:.35rem .45rem;
  font:inherit}
.ybdate #ctl-date{display:block;position:static}
.pane>.close{position:absolute;top:.25rem;right:.25rem;z-index:3;
  --md-icon-button-state-layer-width:32px;
  --md-icon-button-state-layer-height:32px;
  --md-icon-button-icon-size:20px}
.pane>.close .msym{font-size:20px;color:var(--ink)}
/* THE RESET SITS BESIDE THE CLOSE IN THE SAME ROW, one step to its leading
   side, at the same 32/20 as every other control in this family's chrome
   (office edition 375 §79). Two icon buttons, one row, no text between them. */
/* ★ THE OFFSET IS DERIVED FROM THE CLOSE'S OWN BOX, NOT GUESSED. The first
   cut used a round `2.1rem` and the two buttons OVERLAPPED - the close sits at
   right .25rem and is 32 px wide, so it reaches 35.75 px in from the trailing
   edge and a reset at 31.5 px sat on top of it. Measured by the driver, which
   asks whether the reset's trailing edge clears the close's leading edge
   rather than whether a number looks right. `calc` keeps them apart if the
   32 px step ever changes. */
.pane .reset{position:absolute;top:.25rem;right:calc(.25rem + 32px);z-index:3;
  --md-icon-button-state-layer-width:32px;
  --md-icon-button-state-layer-height:32px;
  --md-icon-button-icon-size:20px}
.pane .reset .msym{font-size:20px;color:var(--ink)}
/* ★ THE SERIF IS FOR HEADINGS AND MASTHEADS ONLY (office edition 364 §1).
   Every sheet's title and the brand line take the heading register; controls,
   labels and readouts stay in the sans, because a control set in a serif reads
   as prose and a reader stops looking for it. Two faces, two jobs. */
h2{margin:.1rem 0 .1rem;font-size:1.1rem;color:var(--ink);
  font-family:var(--serif);font-weight:600;letter-spacing:.01em}
.sub{color:var(--dim);font-size:.75rem}
.big{font-variant-numeric:tabular-nums;font-size:1.9rem;font-weight:700;
  color:var(--accent);line-height:1.1}
/* The icon face, from this origin, addressed by its own digest (Ed 375 §23.7).
   `167a5e473546` is substituted at build time by the same hand that writes the
   file, so the name and the bytes cannot drift apart.

   ★ THE ADDRESS IS ROOT-RELATIVE, AND THE FIRST CUT WAS NOT (office edition
   375 §28.4). A url() in a stylesheet resolves against THE STYLESHEET, not
   against the document - and this stylesheet is served from /shell/ - so
   `url('shell/…')` asked the origin for `/shell/shell/symbols-….woff2`. The
   served page's own violation report carried the doubled path verbatim, which
   is the only reason it was found rather than reasoned about.

   IT IS THE SAME STRING THE PAGE'S JAVASCRIPT USES FOR THE GLYPHS AND THE
   STRING IS CORRECT THERE, which is what made it invisible: that one is read
   by the map library and resolves against the DOCUMENT, at the origin root.
   One spelling, two resolution rules, and only one of them has to be wrong. */
@font-face{font-family:'Material Symbols Outlined';font-style:normal;
  font-weight:400;font-display:block;
  src:url('/shell/symbols-167a5e473546.woff2') format('woff2')}
.msym{font-family:'Material Symbols Outlined';font-weight:400;
  font-size:18px;line-height:1;letter-spacing:normal;text-transform:none;
  display:inline-block;white-space:nowrap;direction:ltr;
  -webkit-font-feature-settings:'liga';font-feature-settings:'liga';
  -webkit-font-smoothing:antialiased;color:var(--dim);flex:0 0 auto}
.facts{display:flex;flex-wrap:wrap;gap:.3rem;margin:.55rem 0}
/* ★ A CARD STATES FACTS IN LINES (office edition 375 §21.6). On the parcel
   card each fact is its own line rather than a chip in a row, and the prose
   the card used to print at everybody sits behind one disclosure. */
.pane .facts{flex-direction:column;gap:.18rem}
.pane .facts .fact{background:none;border:0;padding:0;font-size:.82rem;
  color:var(--ink)}
details.door{margin-top:.7rem}
details.door>summary{font-size:.74rem;color:var(--dim);cursor:pointer;
  list-style:none;padding:.2rem 0}
details.door>summary::-webkit-details-marker{display:none}
/* ★ THE MARKER IS THE CHARACTER, NOT AN ESCAPE OF IT (office edition 375
   §23.5; the founder saw a hollow box and the letters "b8").
   THE ESCAPE NEVER REACHED THE STYLESHEET. This was written as a CSS escape
   inside a PYTHON string, where a backslash and 25 is an OCTAL escape: the built
   file carried byte 0x15 followed by "b8 ". The stylesheet was never wrong -
   it never received the escape. Two escaping languages in one literal, and the
   inner one lost. The character itself cannot be misread by either. */
/* The disclosure names itself with the face's own symbol now, so the marker
   is not a character this shop has to escape at all (Ed 375 §23.7). */
details.door>summary .msym{font-size:16px;vertical-align:-3px;margin-right:.2rem}
md-list.card{--md-list-container-color:transparent;padding:0}
md-list.card md-list-item{--md-list-item-top-space:2px;
  --md-list-item-bottom-space:2px;--md-list-item-one-line-container-height:30px;
  --md-list-item-label-text-size:.82rem;
  --md-list-item-leading-space:0px;--md-list-item-trailing-space:0px}
/* ★ THE SYMBOL SITS BESIDE ITS FACT, ON ONE ROW (office edition 375 §28.4).
   The face is applied to the element that carries the ligature - a slotted
   light-DOM child, which the page's own stylesheet reaches - and the ligature
   feature is what turns the NAME into the mark. Without the feature the
   element prints "directions_walk" in whatever face it inherits, which is
   exactly what a missing font looks like from the reader's seat. */
md-list.card .msym{margin-right:.5rem}
details.door>summary::before{content:'';color:var(--dim)}
details.door[open]>summary::before{content:'▾ '}
.fact{background:var(--btn);border:1px solid var(--line);border-radius:4px;
  padding:.22rem .5rem;font-size:.75rem;color:var(--ink);
  font-variant-numeric:tabular-nums}
/* A8: a fact chip that goes somewhere LOOKS like it goes somewhere. What is
   interactive must read as interactive, or it is a button nobody presses. */
button.fact{font-family:inherit;cursor:pointer}
button.fact.go{border-color:var(--accent)}
button.fact.go:hover,button.fact.go:focus-visible{background:var(--chip)}
.gap{border-left:3px solid var(--warn);background:var(--gap);
  padding:.45rem .6rem;font-size:.8rem;margin:.5rem 0;border-radius:4px;
  color:var(--ink)}
.docket{border-left:3px solid var(--on);background:var(--docket);
  padding:.45rem .6rem;font-size:.8rem;margin:.5rem 0;border-radius:4px;
  color:var(--ink)}
.docket code{display:block;font:.7rem/1.4 ui-monospace,Menlo,monospace;
  color:var(--code);padding-top:.2rem;word-break:break-all}
.risk{border-left:3px solid var(--warn);background:var(--riskbg);
  padding:.5rem .65rem;font-size:.8rem;margin:.5rem 0;border-radius:4px;
  color:var(--ink)}
.risk b{color:var(--ink)}
.risk .auth{font-size:.68rem;color:var(--auth);display:block;padding-top:.25rem}
.risk .thin{font-size:.72rem;color:var(--warn);display:block;padding-top:.3rem}
.risk a{color:var(--accent)}
/* F2, and the reason there is now a test for it: the v2 rewrite restored the
   legend MARKUP and dropped its rules, so every swatch was a zero-width <i> and
   the items ran together into one unreadable sentence. A legend that cannot be
   parsed fails no-mystery-pixels exactly as hard as no legend. */
.legend{margin:.45rem 0 .1rem;font-size:.68rem;color:var(--leg);display:flex;
  flex-direction:column;gap:.22rem}
.legend span{display:flex;align-items:center;gap:.4rem}
.legend i{display:inline-block;flex:0 0 auto;width:16px;height:3px;
  border-radius:2px}
/* F5. The changed line is the most valuable sentence on the screen - it is the
   whole of ruling 1b in one sentence - and it was rendering grey on grey. */
.bears{margin-top:.35rem}
.bears .info{color:var(--griz);font-weight:600}
.changed{margin-top:.4rem;font-size:.92rem;line-height:1.35;
  color:var(--changed);font-weight:600;border-left:3px solid var(--sel);
  padding-left:.5rem}
.power{margin-top:.35rem}
.info{background:none;border:0;padding:0;font:inherit;font-size:.72rem;
  color:var(--quiet);text-decoration:underline;text-underline-offset:2px;
  cursor:pointer}
.readout{margin-top:.3rem;font-size:.72rem;color:var(--quiet);line-height:1.35}
.readout b{font-size:.95rem;color:var(--ink);font-variant-numeric:tabular-nums}
.readout .scope{display:block;color:var(--dim);font-size:.66rem}
.srcs{font-size:.72rem;line-height:1.45}
.srcs dt{font-weight:600;margin-top:.5rem;color:var(--ink)}
.srcs dd{margin:0;color:var(--dim)}
.stub{font-size:.72rem;color:var(--dim);border-left:3px solid var(--edge);
  padding-left:.5rem;margin:.4rem 0}
.share{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.share button{background:var(--btn);color:var(--ink);
  border:1px solid var(--edge);border-radius:8px;padding:.3rem .6rem;
  font-size:.74rem;cursor:pointer}
.share span{font-size:.68rem;color:var(--dim);flex:1;min-width:9rem}
/* A PAGE THAT DIES MUST SAY SO ON ITS OWN FACE (F8). The three silences apply
   to the application itself: a fatal error that is only visible in a console
   nobody opened is the quiet failure this project keeps outlawing. */
/* F10: the bar owns the bottom edge; the map's own controls sit above it. */
/* ★★ THE LIBRARY'S CONTROLS CLEAR THE YEAR BAR - AND ON THE RIGHT, ITS DATE
   (office edition 375 §106.3). `3.2rem` was the bottom bar's height plus the
   year bar above it, and the laptop tier overrode it to `.6rem` because
   neither was drawn there. The bar is gone and the year bar runs the FULL
   width at both tiers, so the tier override goes and the clearance is one
   piece of arithmetic in one place.

   THE TWO CORNERS CLEAR DIFFERENT THINGS, AND THE FIRST CUT DID NOT.
   MEASURED at 430 x 932 with one offset for both: the attribution button at
   y 866..890 and the year bar's date label at y 882..901, x 396..420 against
   x 339..423 - **overlapping by eighteen pixels**, at both tiers. The label
   and `Today` ride ABOVE the bar at its right end (`.ybright`), in the same
   column the library stacks its controls in; the left corner has nothing
   above the bar at all.

   SO THE RIGHT CORNER CLEARS THE BAR PLUS THAT ROW: the track's 26 px and
   its two borders, then the label's own 19 px and the quarter-rem it floats
   by, then a quarter-rem of air. Written as the sum of the parts rather than
   as 55, so it moves when any of them does. */
.maplibregl-ctrl-bottom-left{bottom:calc(28px + .25rem)}
.maplibregl-ctrl-bottom-right{bottom:calc(28px + .25rem + 19px + .25rem)}
#fatal{display:none;position:absolute;top:0;left:0;right:0;z-index:99;
  background:#7f1d1d;color:#fff;font:600 .78rem/1.4 ui-sans-serif,sans-serif;
  padding:.5rem .7rem;box-shadow:0 4px 18px rgba(0,0,0,.5)}
#fatal.open{display:block}
#fatal code{display:block;font:.68rem/1.35 ui-monospace,Menlo,monospace;
  font-weight:400;opacity:.92;padding-top:.2rem;word-break:break-word}
/* DESKTOP DOCKS (2e, F1). One responsive app, one set of URLs. A full-width
   slab eating half a monitor is the phone posture worn on a desk; past ~900px
   the panel becomes a persistent sidebar that never covers the map, and the
   sheets become right-side cards. The phone is the consumer surface and the
   dock is the agency surface, but they are the same build. */
@media (min-width:900px){
  /* ★ THE WIDE TIER'S SHEET IS THE DOCKED ONE, SO IT HAS NO SCRIM (office
     edition 375 §111.104 §4c). The standard's two side sheets differ in
     exactly this pair: the docked sheet displaces content by its own width
     and leaves the page live; the modal sheet overlays, dims and blocks. The
     column and the library's corners move here - which is the displacement -
     so dimming the map as well would be both postures at once. */
  .scrim{display:none}
  /* THE DOCKED SHEET'S WIDTH, ONCE. It is the standard's published
     `sheet-side/docked-container-width` and it is now read by three rules -
     the sheet itself and the two things it must not cover - so it is a token
     rather than three copies of 256 that drift the first time it moves. */
  :root{--panew:256px}
  /* ★★ THE TIER'S OWN POSTURE IS GONE, NOT OVERRIDDEN (office edition 375
     §106.2(a), §106.3). Four rules stood here: the bar hidden, the year bar
     lifted and inset past the rail, and the same inset again while a pane
     was open. All four described a rail and a bar that are not emitted any
     more, and a rule that survives its element is the furniture nobody can
     see. The year bar's one base rule now serves both tiers, which is the
     whole of "the date bar runs the full width of the map". */
  /* ★ THE TIER SWAP, ONE RULE EACH WAY (office edition 375 §103.3). Past the
     breakpoint the bar is drawn and the magnifier is not; below it the
     magnifier is drawn and the bar is not. Written as a pair so neither state
     can be reached by forgetting the other. */
  .searchbtn{display:none}
  .topsearch{display:block;position:absolute;top:.5rem;left:50%;
    transform:translateX(-50%);z-index:8;
    width:min(34rem,calc(100vw - 30rem));min-width:16rem}
  /* * THE BAR IDLES DIM AND THE WRITING DOES NOT (office edition 375 §111.29
     item 3b, the founder: always present, dims when idle, full on hover, full
     while in use).

     THE DIMMING IS THE CONTAINER'S - its fill, its border and its shadow -
     and it is done by giving them their own layer. Fading the whole bar takes
     the magnifier and the reader's own typing with it, and dim text over
     satellite imagery cannot be read at any opacity: the text's contrast
     falls as the fill behind it thins AND as the glyph itself fades, which is
     two reductions multiplied rather than one. Here the children sit above
     the fill at full strength and only the fill moves.

     NO color-mix AND NO SECOND COLOUR. An unsupported function would compute
     to nothing and leave a transparent bar over imagery - a failure in the
     illegible direction, which is the one this shop refuses. An opacity on a
     pseudo-element degrades to a solid bar instead. */
  .topsearch>.ctl{display:block;margin:0;background:none;border:0;
    border-radius:10px;padding:.4rem .5rem;max-height:80vh;overflow:auto;
    position:relative;transition:none}
  /* ** ONE RING, AND THE PARTS DIM BY THEIR JOB (office edition 375 §111.31,
     item 2, the founder's answer: *the nested outlines are the defect*).

     WHAT HE SAW: the container's rounded rectangle and the field's own frame
     are two rings about two pixels apart, and at 0.65 they separate into a box
     inside a box - which is the treatment he refused on the walk slider at
     §101. The field's frame is struck IN THE BAR ONLY; inside the phone's
     search sheet there is no container ring, so the field keeps its own.

     AND THE TWO LAYERS DO DIFFERENT WORK, so they do not fade together. The
     shop's own standing measurement forbids one number for both: over light
     lidar at town scale the ground is 242,242,242 and this panel 251,249,244,
     so THE FILL IS 1.06:1 AT FULL OPACITY and was never what made the bar
     findable there - its border and its shadow are. Fading the border with the
     fill would dim the only part carrying findability in order to soften the
     part carrying none. **The fill recedes; the edge holds.** */
  .topsearch>.ctl::before{content:"";position:absolute;inset:0;
    border-radius:10px;background:var(--panel);
    opacity:var(--barfill,1);pointer-events:none;z-index:0}
  /* ** THE SHADOW RIDES WITH THE BORDER, NOT WITH THE FILL, and it moved here
     on the office's own reasoning rather than on a preference: the founder's
     sentence is *the bar is findable there by its border AND SHADOW alone*, so
     the shadow's job is findability and it dims by its job. It began on the
     fill layer, which means it faded with the part that was measured at 1.06:1
     and does no finding at all. NOT SEPARATELY RE-PHOTOGRAPHED - the border
     sweep below was taken with the shadow still on the fill, so this change
     can only help and its size is unmeasured. */
  .topsearch>.ctl::after{content:"";position:absolute;inset:0;
    border-radius:10px;border:1px solid var(--ring);
    box-shadow:0 0 0 1px var(--ringhalo),0 2px 10px rgba(0,0,0,.28);
    opacity:var(--baredge,1);pointer-events:none;z-index:0}
  .topsearch>.ctl>*{position:relative;z-index:1}
  /* THE BAR'S ONLY EDGE IS THE CONTAINER'S.
     ** WRITTEN WITH AN ID BECAUSE THE RULE IT MUST BEAT HAS ONE. The first
     draft was `.topsearch input[type=search]`, and the rule it was overriding
     is `#ctl-find input[type=search]` - an id outranks a class however late it
     is declared, so the field kept its frame and the nested ring the founder
     refused would have SHIPPED. Caught by photographing the pixels: a second
     dark line at eight pixels inside the first. *A cure is verified on the
     artifact, not on the source that intended it.* */
  /* ** THE FIELD'S HEIGHT FOLLOWS THE POINTER, NOT THE SCREEN (office
     edition 375 §111.43, the founder: *"it's just kind of fat"* - and his
     own correction one minute later that the axis is VERTICAL, not the
     horizontal one his first phrasing described).

     The bar reads 510 x 50 (§111.38), so two thirds is about 33 px of field.
     **AND THAT MEETS A PUBLISHED FLOOR RATHER THAN A TASTE:** 33 px is
     comfortable under a mouse and BELOW the touch minimum both major
     guidelines set - about 44 px in Apple's Human Interface Guidelines, 48 dp
     in Material. So a coarse pointer keeps the standard's minimum and a fine
     pointer gets the slimmer field he asked for. *A control's size follows
     the pointer that will press it.*

     What does NOT change: the bar's length, the result rows' width, the ring,
     the idle dim at 0.65 and every contrast number behind them - a shorter
     box is the same box against the same ground. */
  #topsearch #ctl-find input[type=search]{border:0;border-radius:0;
    background:none;padding-left:2rem;
    padding-top:.28rem;padding-bottom:.28rem;font-size:.88rem}
  @media (pointer: coarse){
    #topsearch #ctl-find input[type=search]{
      padding-top:.5rem;padding-bottom:.5rem;font-size:.92rem}
  }
  /* ** 0.65, AND IT WAS READ RATHER THAN CHOSEN (office edition 375 §111.29
     item 3b(ii); the founder wrote "50%?" as a question).

     MEASURED by `scripts/read_bar_dim.mjs` and priced by
     `scripts/price_bar_dim.py`: nine frames - satellite and lidar, both
     themes, over the Highwood Mountains, the Chinese Wall and the edge of
     Great Falls - composited per pixel at thirteen opacities, worst pixel
     first. Three further frames were REFUSED because their tiles never
     arrived, and an empty canvas is the easiest ground in Montana.

     THE INK AGAINST THE GROUND SHOWING THROUGH, worst pixel of every frame:

         1.00  15.25:1     0.70  5.73:1     0.60  4.01:1   <- under the floor
         0.80   8.32:1     0.65  4.78:1     0.50  2.88:1

     The floor is 4.5:1, WCAG for normal text and the number
     `tests/test_summon.py` already refuses to ship under. 0.65 clears it at
     4.78 and 0.60 fails at 4.01, so 0.65 is the dimmest honest value - set
     from the case that failed and checked across a range (§111.20c), not
     picked. His 50% reads at 2.88:1 over satellite, which is why it is a
     question and not the answer.

     THE READING THAT CHANGED THE DESIGN: over lidar at town scale in the
     light theme the ground photographs at 242,242,242 and this panel is
     251,249,244 - the fill is 1.06:1 against it AT FULL OPACITY. The
     container's fill was never what made the bar findable there; the field's
     own frame is, and that is a child, so it stays at full strength at every
     value. Constraint (i) is not a nicety here - it is the whole reason the
     bar survives dimming at all. */
  .topsearch.idle>.ctl::before{opacity:.65}
  .topsearch>.ctl::before{transition:opacity .18s linear}
  /* ★ THE MAP IS FULL-BLEED BESIDE THE RAIL, AND THE SIDE SHEET DISPLACES IT
     (office edition 366 §17 and §17e - *the map filling the rest*, *the map's
     canvas resizing around it*, and "displaces nothing" amended for the large
     window by the same ruling). This is the one place in the shell where a
     surface moves the map on purpose: chrome still moves for nothing, and the
     phone is untouched. The library is told to re-measure when the class
     changes, because a canvas that is not asked keeps drawing the old box. */
  /* ★ THE RAIL AND THE SIDE SHEET ARE CUT TO THE SPECIFICATION'S OWN NUMBERS
     (office edition 373 §7.4, and Ed 374 §3). `material-web` ships most of
     this product's controls and does NOT ship these two, so they are the
     smallest surface the family makes itself - and they are made to the
     published measurements rather than to an eye.

     WHERE THE NUMBERS COME FROM, AND WHERE THEY DO NOT. m3.material.io serves
     an application shell: the seven specification pages fetched 2026-09-12
     and stored under vendor/m3-spec carry ZERO occurrences of "dp" between
     them, so a number "quoted" from those bytes would be a fabricated
     citation - the custody law's own case. The same numbers are published as
     CODE in the design tokens inside @material/web 2.5.0, pinned by integrity
     in vendor/PROVENANCE.json, and those files are vendored beside the pages
     they are quoted from:

       vendor/m3-spec/tokens/_md-comp-navigation-rail.scss
         line 68  'container-width': ... 80px
         line 73  'icon-size': ... 24px
         line 41  'active-indicator-width': ... 56px
         line 39  'active-indicator-height': ... 32px
       vendor/m3-spec/tokens/_md-comp-sheet-side.scss
         line 58  'docked-container-width': ... 256px
         line 56  'docked-container-height': ... 100%
       vendor/m3-spec/tokens/_md-comp-divider.scss
         line 26  'thickness': ... 1px

     data/enumeration/m3-rubric.json carries every one of those lines quoted
     verbatim with its file, line and digest, so the rubric can be checked
     against the file rather than against a memory of a web page. */
  /* ★★ THE MAP IS FULL-BLEED AT BOTH TIERS NOW (office edition 375
     §106.2(a)). `#map{left:80px}` was the rail's column - permanent chrome
     the map was inset around - and `.tray{left:80px}` with its open-pane
     twin was the lane matching that inset. The rail is gone, so the inset is
     gone, and the lane is inside the corner's own column rather than being
     told where the rail ends.

     WHAT §111.57-58 SETTLED STANDS AND IS UNCHANGED: the canvas is never
     resized for furniture. The camera carries PADDING while a panel is open
     and the ground beneath the panel is drawn rather than clipped - the side
     the padding is on moves to the right with the panel, which is the only
     part of that ruling §106 touches.

     §77.3b's band measurement stood beside these rules and is retired with
     them: it measured the empty strip above the rail and the pane, and
     neither element exists. `top:0` on the pane survives on its own merits
     below, where the reason is now simply that there is nothing above it. */
  /* ★★ THE RAIL'S TWELVE RULES ARE GONE (office edition 375 §106.2(a)).
     They styled a column, its four cells, their icons, their words, their
     values and the 56x32 pill behind a pressed one. Nothing emits `rail`, so
     nothing here can draw - and a stylesheet that keeps rules for a retired
     element is the same defect as a class the page emits and never styles,
     pointed the other way.

     THE PILL SURVIVES AS AN IDEA AND NOT AS A RULE: the edge button's
     pressed state is a filled circle behind the glyph, written with the
     button rather than here, because the button is 32 px square and the
     rail's cell was 80 wide.

     §75.16's close button is unaffected - it was hidden by a rule that is
     not in this block, and the pane still carries its own exit. */
  /* The expandable list's five rules went with the list (§106.2(a)):
     `.palist`, `.psec` and its `:has` reveal, `.psh` with its two spans, and
     `.psb`. Nothing emits any of them. */
  /* ★ ONE OFFSET FOR THE LIBRARY'S CONTROLS, AT BOTH TIERS (office edition
     375 §106.3). This read `.6rem` because the year bar was lifted clear of
     a bottom bar here and sat above these controls rather than beside them;
     with the bar retired the year bar runs the map's full width at BOTH
     tiers, so the controls clear the same 28 px everywhere and the base rule
     is the only rule. Written as two numbers they would disagree the first
     time the bar's height changed. */
  /* The shared left pane. It does not inset the map, because at rest there is
     nothing there to inset around - the map is full-bleed until something is
     summoned, and then the pane slides over its left edge. */
  /* ★ INSET BETWEEN THE STRIPS, AND IT DISPLACES NOTHING (office edition 356
     §3d, the founder: *both should slide out between the top strip and the
     bottom strip and displace nothing*). The sheet used to run the full height
     of the window, over the corner buttons at the top and the bar at the
     bottom - so the control that opened it was underneath it, which is the
     same defect as the pane covering the pill that summoned it. It sits in the
     content region between the two strips now, which is the side sheet's own
     definition, and the map is untouched behind it.

     LEFT IS THE MAP'S, RIGHT IS THE PRODUCT'S. Layers comes from the left;
     the Menu and everything reached through it come from the right. */
  /* ★ BESIDE THE RAIL, NOT OVER IT (office edition 366 §17). `left` and
     `bottom` are set HERE rather than in a second `.pane` rule below: the
     first draft put the override at the head of this block, where the rule it
     meant to beat comes after it and wins - and the pane opened over the rail
     it was summoned from, which is the door-under-its-own-panel defect the
     pill and the grip both had. The bar is not drawn at this width, so the
     bottom edge is the window's. */
  /* DOCKED, FULL HEIGHT, FLUSH TO THE RAIL, A DIVIDER AND NOT A SHADOW. A
     docked side sheet is 256px wide and 100% tall by the token file above; it
     sits against the rail with no gap and no rounded outer corner, and the
     seam between them is a 1px divider - the divider token's own thickness -
     rather than an elevation the standard does not give a docked sheet. */
  /* ★★ THE SIDE SHEET DOCKS RIGHT (office edition 375 §106.2(a), *"opening
     their panes as the side sheet does"*). It docked LEFT because it was
     summoned from the rail and had to sit beside it rather than over it -
     the door-under-its-own-panel defect. The doors are on the right edge
     now, so the sheet arrives from the right, under them, and `.pane.right`
     below is no longer a different posture: both destinations and the Menu
     come from the same side. The note that used to stand here - *left is the
     map's, right is the product's* - is retired with the rail that made the
     left side the map's.

     Top of the viewport, with the corner's column and for the same reason:
     there is nothing above it. */
  .pane{left:auto;right:0;width:var(--panew);top:0;bottom:0;max-height:none;
    border:0;border-left:1px solid var(--edge);border-right:0;
    border-radius:0;box-shadow:none;
    transform:translateX(101%);padding:.7rem 1rem 1rem}
  .pane.open{transform:translateX(0);visibility:visible;
    transition:transform .18s ease, visibility 0s}
  /* ★★ A SURFACE THAT SLIDES OVER CHROME MUST MOVE THAT CHROME (office
     edition 375 §106.2(a), against this page's own law and §111.58's own
     note: *the pane does not inset the map - imagery is not chrome - but it
     DOES move the controls it would otherwise cover*).

     MEASURED, AND IT IS THE DOOR-UNDER-ITS-OWN-PANEL DEFECT AGAIN. With the
     sheet open at 1400, hit-testing each control at its own centre - which is
     what a finger does - every one of the five answered with something inside
     the sheet: Menu's centre hit `#layerq`, the Quartermaster's hit the
     sheet's reset, the strip's hit `#panebody`, and **the Layers icon's own
     centre hit a chip in the sheet it had just opened**. The gate's toggle
     passed throughout, because a driver that calls `.click()` on an element
     reaches it through the DOM and never through the pixels.

     WHY IT IS NEW HERE AND WAS NOT BEFORE. The sheet docked LEFT against the
     rail, which was permanent chrome beside it; the doors are floating
     controls over the map now and the sheet arrives on top of them. The Menu
     has covered this corner all along and nobody could press it back open
     either - that is the same defect, carried in, and one rule cures both
     because it is keyed on a docked pane rather than on which pane.

     THE MAP IS UNTOUCHED. The canvas stays full-bleed and the camera carries
     the padding (§111.57-58); what moves is chrome, which is exactly the
     line this project already draws between imagery and controls. */
  /* TWO MECHANISMS, AND THE REASON IS OWNERSHIP RATHER THAN TASTE. The
     corner's own offset is ours, so it is written as the offset; the
     library's corners set their own `right` and a second one here would
     fight it, so those are translated instead. Both read the same token. */
  body.paneon .corner.tr{right:calc(.5rem + var(--panew))}
  body.paneon .maplibregl-ctrl-top-right,
  body.paneon .maplibregl-ctrl-bottom-right{
    transform:translateX(calc(-1 * var(--panew)))}
  /* The walk-time track rides in the library's bottom-right corner and moves
     with it; the year bar spans the map by ruling and does not move, because
     a bar that shortened for a panel would be stating a different year. */
  .pane.right{left:auto;right:0;border-right:0;
    border-left:1px solid var(--edge);border-radius:0;box-shadow:none;
    transform:translateX(101%)}
  .pane.right.open{transform:translateX(0)}
  .pane .grip{display:none}
  /* The pane does not inset the map - imagery is not chrome - but it DOES
     move the controls it would otherwise cover. Measured on a 1400px shot:
     the Effort pill sat under the pane, pressed, invisible.

     ★ THE BAR IS NO LONGER ONE OF THEM (office edition 365 §10.14(b), the
     founder: *"the resulting pop-out menus push the bottom menu over instead
     of sliding in above it"*). That rule was written when the pane ran the
     full height of the window; Ed 356 §3d moved it BETWEEN THE STRIPS -
     `top:2.7rem;bottom:2.9rem` - so its bottom edge now clears the bar
     entirely and there is nothing left to uncover. The inset was residue, and
     residue with a reason attached is the hardest kind to see.

     (Ed 375 §77.3b later took the TOP offset to 0 - the band was measured
     empty at both tiers. The sentence above is left as it was written,
     because it is a true account of what §3d did and a record rewritten to
     agree with the present lies about what it said. Only the bottom half of
     that geometry is still live.)

     MEASURED, one variable, WebKit at 1400x900: bar closed [0,861,1400,39],
     sheet open [345,861,1055,39] - pushed 345 pixels for an overlap that no
     longer exists. On the phone it was already unmoved, which is why only the
     desktop half of the founder's sentence was true.

     ★ AND THE SAME RESIDUE WAS STILL ON THE TRAY, WHICH IS §18.1 (office
     edition 365, the founder: *"The bottom menu pop-outs still push the top
     menu of layer chips."*). The note above said the tray STAYS inset because
     "the pane genuinely covers them" - and that sentence was written from the
     layout the pane used to have. Measured now, one variable, WebKit at
     1400x900: the tray at [631, 8, 138, 28] and the pane, open, at
     [0, 41, 345, 816]. The pane's top edge is 41 and the tray's bottom is 36.
     IT DOES NOT COVER IT. The inset moved the chip strip 173 px sideways to
     clear something that is not there, on every sheet.

     THE INSTRUMENT IS THE FINDING'S OTHER HALF. §10.14(b) measured the BAR,
     cured the bar, and reported that a sheet displaces nothing - a receipt for
     the one element the founder had named. `scripts/read_chrome_displacement`
     reads every fixed element in both frames now, which is what a receipt for
     "nothing moved" has to enumerate.

     `.corner.tl` GOES WITH IT, AND IT WAS NEVER DRAWN. Nothing in this shell
     emits `corner tl` - the only corner is `tr`, holding the Menu button - so
     both its rules were styling an element that does not exist. The page's own
     law inverted: a class the page emits and never styles is a rendering bug;
     a rule for a class nobody emits is furniture nobody can see. */
}
@media (prefers-color-scheme:light){:root{--bg:#f6f4ee;--ink:#181c19;--dim:#535c55;--line:#d9d3c4;--card:#fdfbf7;--panel:#fbf9f4;--chip:#ece8dd;--btn:#e6e1d4;--docket:#eef1e9;--gap:#f7eeda;--riskbg:#f7edd9;--barbg:#e0dacb;--edge:#c6bfad;--accent:#6b4f13;--quiet:#1d3e32;--warn:#7a5a10;--auth:#575043;--code:#245743;--leg:#3d443e;--changed:#241d0c;--badge:#8a6a3c;--badgeink:#fffaf0;--griz:#8f3019;--on:#215f52;--onink:#ffffff;--sel:#6b4f13;--selink:#fffaf0;--ring:#181c19;--ringhalo:#f4f4ef;--scrim:#0d0f0d;--serif:ui-serif, Georgia, 'Iowan Old Style', 'Palatino Linotype', 'Times New Roman', serif;--sans:ui-sans-serif, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;--md-sys-color-primary:#6b4f13;--md-sys-color-on-primary:#fffaf0;--md-sys-color-primary-container:#215f52;--md-sys-color-on-primary-container:#ffffff;--md-sys-color-secondary:#1d3e32;--md-sys-color-on-secondary:#f6f4ee;--md-sys-color-secondary-container:#ece8dd;--md-sys-color-on-secondary-container:#181c19;--md-sys-color-tertiary:#8a6a3c;--md-sys-color-on-tertiary:#fffaf0;--md-sys-color-tertiary-container:#e6e1d4;--md-sys-color-on-tertiary-container:#181c19;--md-sys-color-error:#8f3019;--md-sys-color-on-error:#fffaf0;--md-sys-color-error-container:#f7edd9;--md-sys-color-on-error-container:#181c19;--md-sys-color-background:#f6f4ee;--md-sys-color-on-background:#181c19;--md-sys-color-surface:#fbf9f4;--md-sys-color-on-surface:#181c19;--md-sys-color-surface-dim:#f6f4ee;--md-sys-color-surface-bright:#fdfbf7;--md-sys-color-surface-container-lowest:#f6f4ee;--md-sys-color-surface-container-low:#fbf9f4;--md-sys-color-surface-container:#ece8dd;--md-sys-color-surface-container-high:#e6e1d4;--md-sys-color-surface-container-highest:#e0dacb;--md-sys-color-surface-variant:#e6e1d4;--md-sys-color-on-surface-variant:#535c55;--md-sys-color-inverse-surface:#181c19;--md-sys-color-inverse-on-surface:#f6f4ee;--md-sys-color-inverse-primary:#6b4f13;--md-sys-color-outline:#c6bfad;--md-sys-color-outline-variant:#d9d3c4;--md-sys-color-shadow:#f6f4ee;--md-sys-color-scrim:#f6f4ee;--md-sys-color-surface-tint:#6b4f13;color-scheme:dark light}}[data-theme="light"]{--bg:#f6f4ee;--ink:#181c19;--dim:#535c55;--line:#d9d3c4;--card:#fdfbf7;--panel:#fbf9f4;--chip:#ece8dd;--btn:#e6e1d4;--docket:#eef1e9;--gap:#f7eeda;--riskbg:#f7edd9;--barbg:#e0dacb;--edge:#c6bfad;--accent:#6b4f13;--quiet:#1d3e32;--warn:#7a5a10;--auth:#575043;--code:#245743;--leg:#3d443e;--changed:#241d0c;--badge:#8a6a3c;--badgeink:#fffaf0;--griz:#8f3019;--on:#215f52;--onink:#ffffff;--sel:#6b4f13;--selink:#fffaf0;--ring:#181c19;--ringhalo:#f4f4ef;--serif:ui-serif, Georgia, 'Iowan Old Style', 'Palatino Linotype', 'Times New Roman', serif;--sans:ui-sans-serif, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;--md-sys-color-primary:#6b4f13;--md-sys-color-on-primary:#fffaf0;--md-sys-color-primary-container:#215f52;--md-sys-color-on-primary-container:#ffffff;--md-sys-color-secondary:#1d3e32;--md-sys-color-on-secondary:#f6f4ee;--md-sys-color-secondary-container:#ece8dd;--md-sys-color-on-secondary-container:#181c19;--md-sys-color-tertiary:#8a6a3c;--md-sys-color-on-tertiary:#fffaf0;--md-sys-color-tertiary-container:#e6e1d4;--md-sys-color-on-tertiary-container:#181c19;--md-sys-color-error:#8f3019;--md-sys-color-on-error:#fffaf0;--md-sys-color-error-container:#f7edd9;--md-sys-color-on-error-container:#181c19;--md-sys-color-background:#f6f4ee;--md-sys-color-on-background:#181c19;--md-sys-color-surface:#fbf9f4;--md-sys-color-on-surface:#181c19;--md-sys-color-surface-dim:#f6f4ee;--md-sys-color-surface-bright:#fdfbf7;--md-sys-color-surface-container-lowest:#f6f4ee;--md-sys-color-surface-container-low:#fbf9f4;--md-sys-color-surface-container:#ece8dd;--md-sys-color-surface-container-high:#e6e1d4;--md-sys-color-surface-container-highest:#e0dacb;--md-sys-color-surface-variant:#e6e1d4;--md-sys-color-on-surface-variant:#535c55;--md-sys-color-inverse-surface:#181c19;--md-sys-color-inverse-on-surface:#f6f4ee;--md-sys-color-inverse-primary:#6b4f13;--md-sys-color-outline:#c6bfad;--md-sys-color-outline-variant:#d9d3c4;--md-sys-color-shadow:#f6f4ee;--md-sys-color-scrim:#f6f4ee;--md-sys-color-surface-tint:#6b4f13;color-scheme:light}[data-theme="dark"]{--bg:#0d0f0d;--ink:#e9e7e1;--dim:#98a09a;--line:#2a302a;--card:#161a15;--panel:#121512;--chip:#1b201a;--btn:#20261f;--docket:#181d18;--gap:#1b1710;--riskbg:#1a1610;--barbg:#262c24;--edge:#343d33;--accent:#e2c07a;--quiet:#cfe3da;--warn:#d9b46a;--auth:#a89c88;--code:#8cae9a;--leg:#c3cac3;--changed:#f2ead8;--badge:#c79a55;--badgeink:#12100a;--griz:#c1583e;--on:#54897d;--onink:#04100c;--sel:#e2c07a;--selink:#12100a;--ring:#0b0d0c;--ringhalo:#dfe3dd;--serif:ui-serif, Georgia, 'Iowan Old Style', 'Palatino Linotype', 'Times New Roman', serif;--sans:ui-sans-serif, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;--md-sys-color-primary:#e2c07a;--md-sys-color-on-primary:#12100a;--md-sys-color-primary-container:#54897d;--md-sys-color-on-primary-container:#04100c;--md-sys-color-secondary:#cfe3da;--md-sys-color-on-secondary:#0d0f0d;--md-sys-color-secondary-container:#1b201a;--md-sys-color-on-secondary-container:#e9e7e1;--md-sys-color-tertiary:#c79a55;--md-sys-color-on-tertiary:#12100a;--md-sys-color-tertiary-container:#20261f;--md-sys-color-on-tertiary-container:#e9e7e1;--md-sys-color-error:#c1583e;--md-sys-color-on-error:#12100a;--md-sys-color-error-container:#1a1610;--md-sys-color-on-error-container:#e9e7e1;--md-sys-color-background:#0d0f0d;--md-sys-color-on-background:#e9e7e1;--md-sys-color-surface:#121512;--md-sys-color-on-surface:#e9e7e1;--md-sys-color-surface-dim:#0d0f0d;--md-sys-color-surface-bright:#161a15;--md-sys-color-surface-container-lowest:#0d0f0d;--md-sys-color-surface-container-low:#121512;--md-sys-color-surface-container:#1b201a;--md-sys-color-surface-container-high:#20261f;--md-sys-color-surface-container-highest:#262c24;--md-sys-color-surface-variant:#20261f;--md-sys-color-on-surface-variant:#98a09a;--md-sys-color-inverse-surface:#e9e7e1;--md-sys-color-inverse-on-surface:#0d0f0d;--md-sys-color-inverse-primary:#e2c07a;--md-sys-color-outline:#343d33;--md-sys-color-outline-variant:#2a302a;--md-sys-color-shadow:#0d0f0d;--md-sys-color-scrim:#0d0f0d;--md-sys-color-surface-tint:#e2c07a;color-scheme:dark}