@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root{--bg:#f2f5f1;--text:#203a2e;--muted:#53695c;--line:#cfdbcd;--accent:#256d53;--panel:#fff;--ocean:#edf3ef;--font:Manrope,Arial,sans-serif;--mono:'IBM Plex Mono',Consolas,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.65}button,select{font:inherit;color:inherit}button,summary{cursor:pointer}a{color:var(--accent);text-underline-offset:4px}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible,#world-map:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button:disabled{opacity:.45;cursor:default}[hidden]{display:none!important}.skip{position:fixed;top:-80px;left:12px;z-index:2000;background:var(--accent);color:#fff;padding:12px}.skip:focus{top:12px}.map-header{height:88px;padding:0 4%;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:17px;text-decoration:none;color:var(--text);font-size:14px;letter-spacing:.08em;font-weight:800;line-height:1.4;white-space:nowrap}.brand small{display:block;font-size:10px;font-weight:500;letter-spacing:.22em;color:var(--muted);margin-top:3px}.brand-mark{color:var(--accent);font-size:30px;letter-spacing:-.1em;padding-right:13px;border-right:1px solid var(--line)}.brand-mark span{display:inline-block;transform:translateY(3px)}nav{display:flex;gap:30px}nav a{font-size:14px;color:var(--muted);text-decoration:none;padding:12px 0}nav [aria-current]{color:var(--accent);border-bottom:2px solid var(--accent)}main{max-width:1600px;margin:auto;padding:36px 4% 0}.page-heading{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:26px}.eyebrow{font:11px var(--mono);letter-spacing:.13em;color:var(--accent)}h1{font-size:clamp(34px,4vw,55px);line-height:1.1;letter-spacing:-.055em;font-weight:600;margin:12px 0 0}h1 span,h2 span{color:var(--accent)}.coverage{font:12px var(--mono);color:var(--muted);margin:0 0 4px}.map-workspace{display:grid;grid-template-columns:minmax(0,1fr) 310px;border:1px solid var(--line);background:var(--panel)}.map-surface{position:relative;min-width:0;min-height:550px}.map-surface:before{content:'';position:absolute;inset:0;background:var(--ocean)}#world-map{position:absolute;inset:0;z-index:0;background:var(--ocean);font-family:var(--font)}.map-actions{position:absolute;top:18px;left:18px;display:flex;align-items:start;gap:8px;z-index:500}.map-actions button{background:var(--panel);border:1px solid #bdcfc0;min-height:44px;padding:0 13px;font-size:12px;box-shadow:0 2px 5px #36593c0a}.map-actions button:hover:not(:disabled){background:#e4eee6}.zoom-buttons{display:flex;flex-direction:column}.zoom-buttons button{width:44px;font-size:24px;padding:0;line-height:1}.zoom-buttons button+button{border-top:0}.map-state{position:absolute;left:18px;bottom:56px;max-width:min(410px,calc(100% - 36px));background:#fffffff0;padding:13px 17px;border:1px solid #c3d6c6;z-index:400;pointer-events:none}.map-state[data-state=ready]{padding:10px 15px;box-shadow:0 2px 12px #345e380a}.map-state span{font:12px var(--mono);color:var(--accent)}.map-state p{font-size:12px;line-height:1.6;margin:5px 0 0;color:var(--muted)}.map-state button{pointer-events:auto;margin-top:9px;min-height:40px;border:1px solid var(--accent);background:#fff;padding:7px 12px;font-size:12px}.map-caption{position:absolute;bottom:20px;left:18px;z-index:400;display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding:6px 10px;background:#ffffffde;color:var(--muted);font-size:10px;pointer-events:none}.map-caption #layer-name{color:var(--accent);font-weight:600}.base-error{position:absolute;top:126px;left:18px;right:18px;z-index:450;background:#fff6e4;border:1px solid #d6b36c;padding:12px;font-size:12px}.base-error button{border:1px solid #957337;background:#fff;padding:5px 9px}.species-panel{border-left:1px solid var(--line);padding:23px 22px;min-width:0}.species-panel label{display:block;font-size:12px;color:var(--muted);margin-bottom:8px}.species-panel select{display:block;width:100%;min-height:48px;border:1px solid #bdcfc0;background:#f8faf7;padding:9px 11px;font-size:13px}.selected-cat img{width:100%;height:auto;aspect-ratio:1.5;object-fit:cover;display:block;margin-top:22px}.selected-cat .eyebrow{display:block;margin-top:18px;font-size:10px;line-height:1.5}.selected-cat h2{font-size:25px;font-weight:600;line-height:1.25;letter-spacing:-.04em;margin:7px 0}.latin{font:12px var(--mono);color:var(--muted);margin:0}.photo-credit{display:flex;flex-wrap:wrap;gap:3px 12px;font-size:10px;line-height:1.5;color:var(--muted);margin:11px 0 19px}.photo-credit a{color:var(--muted)}.photo-credit span{width:100%}.availability{font-size:12px;color:var(--muted);border-left:2px solid var(--accent);padding-left:10px;margin:17px 0}.availability[data-status=taxonomy_pending],.availability[data-status=no_data]{border-left-color:#a68040}.cat-link{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid var(--accent);font-size:13px;text-decoration:none;padding-bottom:8px;margin:16px 0 19px}.cat-link span{font-size:18px;line-height:1}.range-text{border-top:1px solid var(--line);padding-top:15px;font-size:12px}.range-text summary{color:var(--text);font-weight:600}.range-text p{color:var(--muted);font-size:12px;line-height:1.65}.small-note{font-size:11px!important}.panel-source{border-top:1px solid var(--line);margin-top:20px;padding-top:17px}.panel-source p{font-size:13px;margin:8px 0;line-height:1.6}.panel-source p span{color:var(--muted);font-size:12px}.panel-source a{font-size:11px}.map-legend{display:flex;align-items:start;gap:24px;padding:17px 0 24px}.map-legend>span{display:flex;align-items:center;gap:10px;font-size:12px;white-space:nowrap;margin-top:2px}.map-legend i{display:inline-block;width:24px;height:12px;border:1px solid #2a7755;background:#52a37675}.map-legend p{color:var(--muted);font-size:12px;max-width:900px;margin:0}.sources-section{border-top:1px solid var(--line);padding-top:34px;margin:9px 0 40px;display:grid;grid-template-columns:1fr 1fr;gap:55px}.sources-section h2{font-size:29px;font-weight:500;letter-spacing:-.035em;margin:11px 0 18px;line-height:1.25}.sources-section p{font-size:13px;color:var(--muted);line-height:1.8;margin:13px 0}.sources-section em{font-style:italic}.source-card{border:1px solid var(--line);padding:23px 26px;background:#ffffff8c}.source-card>p:first-of-type{margin-top:12px}.source-card a{font-size:12px}.source-card>details{border-top:1px solid var(--line);padding-top:13px;margin:15px 0}.source-card summary{font-size:12px;color:var(--text)}footer{border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding:24px 0;font:10px var(--mono);color:var(--muted)}footer a{color:var(--muted)}.leaflet-control-attribution{font-family:var(--font)!important;font-size:9px!important;color:var(--muted)!important;background:#ffffffe0!important}.leaflet-control-attribution a{color:var(--muted)!important}.leaflet-tooltip{font-family:var(--font);font-size:12px;color:var(--text);border-color:var(--line);background:#fffffff5;box-shadow:0 2px 12px #3049300a}.noscript{margin:20px 4%}body[data-map-status=error] #retry-range{display:inline-block}
@media(min-width:1500px){.map-workspace{grid-template-columns:minmax(0,1fr) 340px}.map-surface{min-height:610px}.species-panel{padding:25px}.selected-cat h2{font-size:28px}}
@media(max-width:960px){.map-workspace{grid-template-columns:minmax(0,1fr) 270px}.species-panel{padding:18px}.map-surface{min-height:510px}.sources-section{gap:26px}.selected-cat h2{font-size:22px}}
@media(max-width:740px){.map-header{height:74px;padding:0 18px}.brand{gap:11px;font-size:11px}.brand-mark{font-size:25px;padding-right:10px}.brand small{font-size:8px}.map-header nav{gap:18px}.map-header nav a{font-size:12px}main{padding:26px 18px 0}.page-heading{display:block;margin-bottom:22px}h1{font-size:40px}.coverage{margin-top:15px;font-size:11px}.map-workspace{display:flex;flex-direction:column}.map-surface{min-height:420px;order:2}.species-panel{border-left:0;border-bottom:1px solid var(--line);order:1;padding:18px}.species-panel select{font-size:16px}.selected-cat{display:grid;grid-template-columns:90px minmax(0,1fr);gap:15px;align-items:center;margin-top:17px}.selected-cat img{aspect-ratio:1.12;margin:0;width:90px}.selected-cat .eyebrow{margin-top:0;font-size:9px}.selected-cat h2{font-size:22px;margin:5px 0}.photo-credit{margin:10px 0 14px;font-size:10px}.availability{margin:12px 0}.cat-link{margin-bottom:0;max-width:100%}.range-text{margin-top:16px;padding-top:12px}.panel-source{display:none}.map-actions{top:13px;left:13px;gap:7px}.map-actions button{padding:0 10px}.zoom-buttons button{padding:0}.map-state{left:13px;bottom:63px;max-width:calc(100% - 26px)}.map-caption{left:13px;bottom:24px;right:13px;gap:4px;font-size:9px}.caption-dot{display:none}.map-legend{display:block;padding:16px 0 22px}.map-legend p{margin-top:11px;font-size:12px}.sources-section{grid-template-columns:1fr;gap:15px;padding-top:25px}.sources-section h2{font-size:27px}.source-card{padding:19px}footer{display:grid;gap:13px;font-size:9px}}
@media(max-width:380px){.brand>span:last-child{display:none}h1{font-size:36px}.selected-cat h2{font-size:20px}.map-surface{min-height:390px}.map-actions button{font-size:11px}.zoom-buttons button{font-size:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.selection-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.selection-heading button{font-size:11px;color:var(--muted);background:none;border:0;text-decoration:underline;min-height:30px;padding:0}.selected-species{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0 13px}.species-chip{display:flex;align-items:center;gap:7px;max-width:100%;border:1px solid var(--line);background:#f5f8f3;font-size:11px;min-height:34px;padding:5px 8px;text-align:left}.species-chip i{width:8px;height:8px;border-radius:50%;background:var(--species-color);flex-shrink:0}.species-chip>span:first-of-type{overflow-wrap:anywhere}.species-chip>span:last-child{font-size:17px;color:var(--muted);line-height:1}.selection-empty{font-size:12px;color:var(--muted);margin:0}.species-picker{border:1px solid var(--line);padding:10px 12px}.species-picker summary{font-size:13px;font-weight:600;min-height:26px}.species-picker summary span{font:11px var(--mono);color:var(--muted)}.species-picker .search-label{display:block;margin:9px 0 6px;font-size:11px}.map-search-wrap{position:relative}.map-search-wrap input{display:block;min-height:44px;width:100%;min-width:0;border:1px solid #bdcfc0;background:#f8faf7;padding:10px 29px 10px 10px;font:12px var(--font);color:var(--text)}.map-search-wrap input::-webkit-search-cancel-button{display:none}.map-search-wrap button{position:absolute;right:1px;top:1px;width:29px;height:42px;border:0;background:none;font-size:19px;color:var(--muted)}.species-list{max-height:230px;overflow-y:auto;overscroll-behavior:contain;margin:10px -5px 0;padding:0 5px;scrollbar-width:thin}.species-list .species-option{display:flex;align-items:center;gap:8px;min-height:49px;padding:8px 4px;border-bottom:1px solid #e6ece4;font-size:12px;cursor:pointer;margin:0}.species-option>input{accent-color:var(--accent);width:16px;height:16px;margin:0;flex-shrink:0}.species-color{display:block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.species-option>span{min-width:0;color:var(--text)}.species-option em{display:block;font:10px var(--mono);color:var(--muted);margin-top:2px}.species-option small{display:block;color:#876532;font-size:10px;margin-top:3px}.species-option.is-selected{background:#edf4eb}.species-option:focus-within{outline:2px solid var(--accent);outline-offset:-2px}.search-summary{color:var(--muted);font-size:10px;line-height:1.5;margin:9px 0 0}.overlap-control{padding:14px 0 0}.overlap-control label{display:flex;gap:8px;align-items:center;font-size:12px;margin:0;color:var(--text)}.overlap-control input{accent-color:#25352f;width:15px;height:15px;margin:0}.overlap-control p{font-size:11px;color:var(--muted);line-height:1.6;margin:7px 0 0}.overlap-control [data-state=ready]{color:#25352f;font-weight:600}.overlap-control [data-state=error]{color:#94552b}.map-actions{flex-wrap:wrap;max-width:calc(100% - 36px)}.layer-legend{display:flex;gap:9px 16px;flex-wrap:wrap;min-width:150px;max-width:58%}.range-legend-item{display:flex;align-items:center;gap:8px;font-size:11px}.range-legend-item i{display:block;width:16px;height:10px;border:1px solid #ffffff99;flex-shrink:0}.map-workspace{align-items:start}.map-surface{position:sticky;top:18px;height:clamp(550px,74vh,760px)}.species-panel{min-height:100%;width:100%}.selected-cat img{aspect-ratio:1.8;margin-top:19px}.selected-cat h2{font-size:23px}.selected-cat .eyebrow{margin-top:12px}.panel-source{margin-top:15px;padding-top:13px}#species-information[hidden]{display:none}
@media(max-width:960px){.map-workspace{grid-template-columns:minmax(0,1fr) 300px}.map-surface{min-height:510px}.layer-legend{max-width:52%}}
@media(max-width:740px){.map-surface{position:relative;top:auto;height:440px;min-height:440px;width:100%}.species-picker .search-label{font-size:12px}.map-search-wrap input{font-size:16px}.species-list{max-height:180px}.species-list .species-option{font-size:13px}.species-option em{font-size:11px}.species-chip{font-size:12px;min-height:36px}.selected-cat img{aspect-ratio:1.12;margin:0}.selected-cat .eyebrow{margin-top:0}.layer-legend{max-width:100%;margin-bottom:12px}.map-actions{max-width:calc(100% - 26px)}.map-actions button{min-height:42px}.overlap-control{padding-top:12px}.source-card{overflow-wrap:anywhere}}@media(max-width:740px){.map-actions{display:grid;grid-template-columns:44px auto auto;gap:6px;align-items:start}.zoom-buttons{grid-column:1;grid-row:1 / span 2}#world-view{grid-column:2;grid-row:1}#range-view{grid-column:3;grid-row:1}#intersection-view{grid-column:2 / span 2;grid-row:2;justify-self:start;min-height:36px}}
.leaflet-attribution-flag{display:none!important}

/* The map shares the catalogue's charcoal, paper and muted gold palette. */
:root{--bg:#111616;--text:#edf0ea;--muted:#a5b0a9;--line:#303c37;--accent:#dbb56b;--panel:#1a2020;--ocean:#142020;--land:#2c3b32;--coast:#617365;--input:#151b1b;--hover:#29322a;--selected:#27281e;--overlay:#1a2020f0;--warning-bg:#322b20;--warning:#e3bd7c;--overlap:#e4ce92}
html[data-theme=light]{--bg:#f2f5f4;--text:#16251e;--muted:#52635b;--line:#ced9d2;--accent:#83601c;--panel:#fff;--ocean:#e9efed;--land:#d5dfd5;--coast:#a8baaa;--input:#f8faf8;--hover:#e9eee8;--selected:#eae8dc;--overlay:#fffffff0;--warning-bg:#fff6e4;--warning:#845711;--overlap:#263d32}
.map-header{background:var(--bg)}.map-header nav{margin-left:auto}.theme-button{width:48px;min-height:44px;flex-shrink:0;padding:0;border:0;background:none;color:var(--accent)}.theme-button svg{display:block;width:100%}.map-actions button,.map-state,.map-state button,.species-panel select,.map-search-wrap input{border-color:var(--line);background:var(--panel)}.map-actions button:hover:not(:disabled){background:var(--hover)}.map-state,.map-caption,.leaflet-control-attribution{background:var(--overlay)!important}.map-state button{color:var(--text)}.species-panel select,.map-search-wrap input{background:var(--input)}.species-chip{background:var(--input)}.species-list .species-option{border-color:var(--line)}.species-option.is-selected{background:var(--selected)}.species-option small,.availability[data-status=taxonomy_pending],.availability[data-status=no_data]{color:var(--warning)}.availability[data-status=taxonomy_pending],.availability[data-status=no_data]{border-color:var(--warning)}.overlap-control input{accent-color:var(--accent)}.overlap-control [data-state=ready]{color:var(--accent)}.overlap-control [data-state=error]{color:var(--warning)}.source-card{background:var(--panel)}.leaflet-tooltip{color:var(--text);background:var(--panel);border-color:var(--line)}.leaflet-tooltip-top:before{border-top-color:var(--line)}.base-error{background:var(--warning-bg);border-color:var(--warning)}.base-error button{color:var(--text);background:var(--panel);border-color:var(--warning)}.map-legend i{background:var(--accent);border-color:var(--accent)}.range-legend-item i{border-color:var(--line)}.skip{background:var(--accent);color:var(--bg)}
@media(max-width:600px){.map-header{height:auto;min-height:110px;display:grid;grid-template-columns:1fr 44px;gap:0 16px;padding:12px 18px 8px}.map-header .brand{grid-column:1;grid-row:1}.map-header nav{grid-column:1/-1;grid-row:2;justify-content:space-between;margin:0;gap:20px}.map-header nav a{padding:9px 0}.map-header .theme-button{grid-column:2;grid-row:1;width:44px}.map-header .brand>span:last-child{display:block}}

.selected-cat img[data-preserve-frame]{object-fit:contain!important;background:var(--ocean)}
