/* Tapestries atlas: original cartography, shared by web and exported frames. */
:root{--atlas-water:#315467;--atlas-land:#a4af91;--atlas-ink:#233c38;--atlas-paper:#f3ead3;--atlas-gold:#b99055}
#atlas-region-map,#atlas-world-map,#atlas-comparison-map,#atlas-landscape-map,#atlas-resources-map,#dev-map-svg,.oyo-map,.northern-map,#oyo-territorial-map,#northern-map,#oyo-map,#oyo-family-map{border:1px solid #9c875c;border-radius:8px;background:var(--atlas-water);box-shadow:0 12px 32px #081a2526;overflow:hidden}
#atlas-region-map text,#atlas-world-map text,#atlas-comparison-map text,#atlas-landscape-map text,#atlas-resources-map text,#dev-map-svg text{font-family:Georgia,'Times New Roman',serif}
.atlas-country,.land-base,.resource-land,.dev-map-land{fill:var(--atlas-land);stroke:#e3ddc1;stroke-width:.45;vector-effect:non-scaling-stroke}
.atlas-label,.landscape-town,.resource-label,.dev-map-label{fill:#203d36;stroke:#f3ead3;paint-order:stroke;stroke-linejoin:round;font-weight:600}
.dev-map-river{stroke:#437d99;stroke-width:1.7;fill:none;vector-effect:non-scaling-stroke}.dev-map-coast{stroke:#d4d7bc;stroke-width:1.2;fill:none}.dev-map-country-label{fill:#33483e;stroke:#c2c5a3;stroke-width:1.4;paint-order:stroke;font-size:18px;letter-spacing:3px}.dev-map-water-label{fill:#e0e9e7;font-style:italic;font-size:19px;letter-spacing:1.5px}
.oyo-map.leaflet-container,#oyo-territorial-map.leaflet-container,#northern-map.leaflet-container,#oyo-map.leaflet-container,#oyo-family-map.leaflet-container{background:#315467;font-family:Georgia,'Times New Roman',serif}
.leaflet-container .oyo-place-label{font:600 13px/1.3 Georgia,serif;color:#20372f!important;text-shadow:-1px -1px 0 #f3ead3,1px 1px 0 #f3ead3,1px -1px 0 #f3ead3,-1px 1px 0 #f3ead3;background:transparent!important;border:0!important;box-shadow:none!important;padding:2px 4px!important}
.leaflet-container .oyo-place-label:before{display:none}.leaflet-container .extent-area-label{font-family:Georgia,serif;text-align:center;line-height:1.25}.leaflet-container .extent-area-label span{font:600 17px/1.25 Georgia,serif!important;color:#26382e!important;letter-spacing:1.2px;text-shadow:0 1px 2px #f5e9c8,0 -1px 2px #f5e9c8}.leaflet-container .extent-sovereignty span{font-size:21px!important;letter-spacing:1.8px}.leaflet-container .extent-minor span{font-size:13px!important;letter-spacing:.3px}.leaflet-container .oyo-country{font:600 13px Georgia,serif;letter-spacing:2px;color:#314b43;text-shadow:0 1px 1px #f2e8cd}
.leaflet-container .leaflet-control-attribution{font:10px/1.4 system-ui,sans-serif;background:#fff9e8eb;color:#35433e;max-width:92%}.leaflet-container .leaflet-control-attribution a{color:#28546a}.leaflet-container .leaflet-control-scale-line{background:#f5edd9cc;border-color:#354d4a;color:#203c3c;text-shadow:none}
.atlas-terrain{pointer-events:none;mix-blend-mode:multiply}.atlas-studio{margin:10px 0 24px!important;padding:10px 14px!important;border:1px solid #b990554d!important;border-radius:8px;background:transparent!important;max-width:100%;font:13px/1.5 system-ui,sans-serif}.atlas-studio summary{cursor:pointer;color:inherit;font-weight:600}.atlas-studio p{font-size:13px;line-height:1.6;max-width:75ch;margin:10px 0}.atlas-studio-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:end}.atlas-studio-actions label{display:grid;gap:4px;font-size:12px}.atlas-studio button,.atlas-studio select{font:600 12px system-ui,sans-serif;min-height:38px!important;padding:8px 12px!important;border:1px solid #9c875c!important;border-radius:5px!important}.atlas-studio-status{min-height:1em}.atlas-studio a{font-size:12px}.atlas-studio button:focus-visible,.atlas-studio summary:focus-visible{outline:3px solid #b99055;outline-offset:3px}
@media(max-width:600px){.atlas-studio-actions>*{flex:1 1 140px}.leaflet-container .extent-sovereignty span{font-size:17px!important}.leaflet-container .extent-area-label span{font-size:14px!important}.leaflet-container .oyo-place-label{font-size:12px}.atlas-studio{margin-bottom:16px!important}}

.leaflet-container .extent-area-label span,.leaflet-container .extent-area-label small{background:transparent!important;padding:0!important;box-shadow:none!important;border:0!important}.leaflet-container .extent-area-label span{text-shadow:-1px -1px 2px #f5e9c8,1px 1px 2px #f5e9c8!important}

/* Modern frontiers use berry dashes, separate from historical polity fills. */
.dev-map-land{stroke:#3f729b;stroke-width:1.2;stroke-dasharray:6 4}.atlas-border-key::before{border-top:1.5px dashed #3f729b;box-shadow:0 -1px 0 #fff7df,0 1px 0 #fff7df;opacity:1}#satellite-border-key::before{border-color:#7bb9e3;box-shadow:0 -1px 0 #152233,0 1px 0 #152233}
/* Wider historical scenes: open water, quiet land, readable optional detail. */
#oyo-territorial-map.leaflet-container,#northern-map.leaflet-container{background:radial-gradient(ellipse at 45% 35%,#56818a 0%,#31596a 55%,#203d51 100%);min-height:620px;height:min(78vh,820px)}
.leaflet-container .africa-context-label span{font:600 14px/1.2 Georgia,serif!important;letter-spacing:.2px!important;color:#153e51!important}
.leaflet-container .africa-physical-label span{font:italic 16px/1.3 Georgia,serif!important;letter-spacing:1.8px!important;color:#415641!important;text-shadow:0 1px 2px #e6e2c6!important}
.leaflet-container .africa-physical-label.water span{color:#e4ece1!important;text-shadow:0 1px 3px #173c50!important}
.africa-map-options{margin:12px 0;border:1px solid #a8905a66;border-radius:8px;padding:12px 16px}.africa-map-options summary{font-weight:600;cursor:pointer}.africa-map-options .oyo-map-controls{padding-top:12px}.africa-map-key{display:flex;flex-wrap:wrap;gap:10px 22px;margin:14px 0;font:12px/1.5 system-ui,sans-serif}.africa-map-key span{display:flex;align-items:center;gap:8px}.africa-map-key i{display:inline-block;width:23px;height:0}.africa-key-border{border-top:1.5px dashed #3f729b;filter:drop-shadow(0 1px #fff7df)}.africa-map-key .africa-key-state,.africa-map-key .africa-key-port{width:10px;height:10px;border-radius:50%;background:#244e65;border:1px solid #fff7df}.africa-map-key .africa-key-port{background:#8f4b25}.africa-key-route{border-top:3px dotted #864a28}.africa-context-reading{margin:18px 0}.africa-directory-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.africa-directory-grid article{border-top:1px solid #ac955655;padding-top:12px}.africa-directory-grid h4{margin:0 0 8px}.africa-directory-grid p{font-size:14px;line-height:1.6}
@media(max-width:600px){#oyo-territorial-map.leaflet-container,#northern-map.leaflet-container{height:68vh;min-height:480px}.leaflet-container .africa-context-label span{font-size:12px!important}.leaflet-container .africa-physical-label span{font-size:13px!important}.africa-map-key{gap:8px 12px}}

.leaflet-container.atlas-overview .extent-sovereignty span{font-size:17px!important;letter-spacing:.5px!important}

/* One font covers every Yorùbá letter, tone and underdot without fallback gaps. */
@font-face{font-family:'Tapestries Noto';src:url('/cartography/fonts/NotoSerif-Regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Tapestries Noto';src:url('/cartography/fonts/NotoSerif-Bold.woff2') format('woff2');font-style:normal;font-weight:600 900;font-display:swap}
#atlas-region-map text,#atlas-world-map text,#atlas-comparison-map text,#atlas-landscape-map text,#atlas-resources-map text,#dev-map-svg text,
.extent-area-label span,.extent-area-label small,.oyo-country,.oyo-place-label,.satellite-town-label,.satellite-country-label,.leaflet-tooltip{
 font-family:'Tapestries Noto',serif!important;letter-spacing:0!important;word-spacing:normal!important;font-kerning:normal;text-transform:none}
.extent-area-label span,.oyo-place-label,.satellite-town-label{white-space:nowrap}
.dev-map-land{stroke:#d4d7bc;stroke-width:.65;stroke-dasharray:none}
.dev-map-border{fill:none;stroke:#3f729b;stroke-width:1.2;stroke-dasharray:6 4;vector-effect:non-scaling-stroke;pointer-events:none}

:is(#oyo-territorial-map,#northern-map,#oyo-map,#oyo-family-map) .extent-area-label span{letter-spacing:0!important;word-spacing:normal!important}
