@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #ece6d8;--panel: rgba(250, 248, 242, .92);--fg: #1f2a24;--muted: #5e6b62;--accent: #0f766e;--border: #d8d2c2;--input-bg: #fcfaf4;--active-bg: #b35a2b;--active-fg: #ffffff;--caveat: #8a5a00;--accent-tint: rgba(15, 118, 110, .08);--accent-line: rgba(15, 118, 110, .28);--accent-hover: rgba(15, 118, 110, .1);--lens-glow: rgba(15, 118, 110, .18);--scrim: rgba(38, 44, 38, .45);--scrim-strong: rgba(38, 44, 38, .6);--sunken: rgba(31, 42, 36, .06);--ok: #15803d;--err: #b42318;--err-border: #b42318;--panel-radius: .55rem;--panel-blur: 8px;--fs-eyebrow: .7rem;--fs-sm: .74rem;--fs-base: .8rem;--font-display: "Fraunces Variable", Georgia, "Times New Roman", serif;--font-body: "Inter Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;font-family:var(--font-body)}[data-theme=dark]{--bg: #0b100e;--panel: rgba(18, 26, 23, .82);--fg: #e8efe9;--muted: #8a9a90;--accent: #5bd6a8;--border: #1e2a25;--input-bg: #0c1310;--active-bg: #c0652f;--active-fg: #ffffff;--caveat: #e0b567;--accent-tint: rgba(91, 214, 168, .08);--accent-line: rgba(91, 214, 168, .28);--accent-hover: rgba(91, 214, 168, .12);--lens-glow: rgba(91, 214, 168, .18);--scrim: rgba(8, 12, 10, .82);--scrim-strong: rgba(8, 12, 10, .94);--sunken: rgba(0, 0, 0, .35);--ok: #7ee787;--err: #ff7b72;--err-border: #da3633}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--fg);overflow:hidden}#app{display:flex;flex-direction:column;height:100vh;height:100dvh}.app-header{display:flex;align-items:center;gap:.7rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);z-index:2}.app-logo{flex:0 0 auto;width:32px;height:32px;border-radius:7px;box-shadow:0 0 0 1px var(--border)}.app-headings{min-width:0}.app-header h1{margin:0;font-family:var(--font-display);font-size:1.2rem;font-weight:540;letter-spacing:.005em}.tagline{margin:.2rem 0 0;color:var(--muted);font-size:.8rem}.app-main{position:relative;flex:1;min-height:0}#map.map{position:absolute;inset:0}.legend{position:absolute;top:1rem;left:1rem;z-index:3;min-width:180px;padding:.75rem .85rem;background:var(--panel);border:1px solid var(--border);border-radius:var(--panel-radius);backdrop-filter:blur(var(--panel-blur));font-size:.8rem}.legend-title{font-family:var(--font-display);font-weight:540;font-size:.92rem}.legend-sub{color:var(--muted);font-size:.72rem;margin-bottom:.5rem}.legend-ramp{display:flex;flex-direction:column;gap:.2rem}.legend-row{display:flex;align-items:center;gap:.45rem}.legend-swatch{width:16px;height:12px;border-radius:2px;flex:none}.legend-label{font-family:var(--font-mono);font-size:.74rem;font-variant-numeric:tabular-nums;color:var(--fg)}.legend-meta{margin-top:.55rem;color:var(--muted);font-family:var(--font-mono);font-size:.68rem;font-variant-numeric:tabular-nums}.data-status{position:absolute;bottom:1rem;left:1rem;z-index:3;font-family:var(--font-mono);font-size:.72rem;padding:.35rem .7rem;border-radius:.4rem;border:1px solid var(--border);background:var(--panel);font-variant-numeric:tabular-nums}.data-status[data-state=ok]{color:var(--ok)}.data-status[data-state=error]{color:var(--err);border-color:var(--err-border)}.data-status[data-state=empty]{color:var(--muted)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.data-status[data-state=pending]{display:inline-flex;align-items:center;gap:.45rem;color:var(--accent);border-color:var(--accent-line);background:linear-gradient(var(--accent-tint),var(--accent-tint)),var(--panel)}.data-status[data-state=pending]:before{content:"";flex:0 0 auto;width:.7rem;height:.7rem;border:2px solid var(--accent-line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.loading-bar{position:absolute;top:0;left:0;right:0;height:3px;z-index:9;overflow:hidden;background:var(--accent-tint);opacity:0;pointer-events:none;transition:opacity .2s ease}.loading-bar:before{content:"";position:absolute;inset-block:0;width:40%;background:var(--accent);border-radius:3px;animation:loading-slide 1.1s ease-in-out infinite}.data-status[data-state=pending]~.loading-bar{opacity:1}@keyframes loading-slide{0%{transform:translate(-100%)}to{transform:translate(350%)}}code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--accent)}.maplibregl-ctrl-group{background:var(--panel)}.controls{position:absolute;top:1rem;right:1rem;z-index:3;width:256px;max-height:calc(100% - 2rem);overflow-y:auto;overflow-x:hidden;padding:.75rem;background:var(--panel);border:1px solid var(--border);border-radius:var(--panel-radius);backdrop-filter:blur(var(--panel-blur));font-size:var(--fs-base);display:flex;flex-direction:column;gap:.6rem}.control-group{display:flex;flex-direction:column;gap:.3rem}.control-group>label{font-weight:600;font-size:var(--fs-eyebrow);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.control-group.cluster-start{border-top:1px solid var(--border);padding-top:.6rem}.info-group{margin-top:-.2rem}.display-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:1.6rem}.display-row-label{font-size:var(--fs-sm);color:var(--muted);min-width:0}.display-row .seg,.display-row .opacity-row{flex:0 0 auto}.display-row .opacity-slider{width:88px}input[type=range]{accent-color:var(--active-bg)}select,.taxon-search{width:100%;padding:.35rem .45rem;background:var(--input-bg);color:var(--fg);border:1px solid var(--border);border-radius:.35rem;font-size:.8rem}.indicator-label-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.indicator-select-row{position:relative;display:flex;gap:.35rem;align-items:center}.indicator-select-row select{flex:1;width:auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.indicator-info-btn{flex-shrink:0;background:none;border:1px solid var(--border);border-radius:.35rem;color:var(--muted);cursor:pointer;font-size:.9rem;line-height:1;padding:.3rem .45rem;transition:color .15s,border-color .15s}.indicator-info-btn:hover,.indicator-info-btn[aria-expanded=true]{color:var(--accent);border-color:var(--accent)}.indicator-popover{position:absolute;top:calc(100% + .3rem);left:0;right:0;z-index:20;background:var(--panel);border:1px solid var(--border);border-radius:.4rem;box-shadow:0 6px 18px #00000080;padding:.6rem .75rem;font-size:.78rem;line-height:1.45}.indicator-popover .popover-desc{margin:0 0 .4rem;color:var(--fg)}.indicator-popover .popover-caveat{margin:0;color:var(--muted);font-style:italic}.seg{display:flex;gap:.25rem;flex-wrap:wrap}.seg-btn{flex:1;white-space:nowrap;padding:.35rem .2rem;background:var(--input-bg);color:var(--muted);border:1px solid var(--border);border-radius:.35rem;cursor:pointer;font-size:.75rem}.seg-btn.active{background:var(--active-bg);color:var(--active-fg);border-color:var(--active-bg)}.temporal-detail{display:flex;align-items:center;gap:.5rem}.year-slider{flex:1}.year-label{font-family:var(--font-mono);font-variant-numeric:tabular-nums;min-width:2.8em;text-align:right}.play-btn{background:var(--input-bg);color:var(--fg);border:1px solid var(--border);border-radius:.35rem;cursor:pointer;padding:.2rem .45rem}.opacity-row{display:flex;align-items:center;gap:.5rem}.opacity-slider{flex:1}.opacity-val{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--muted);min-width:3em;text-align:right}.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.15rem .25rem;line-height:1.4}.crumb{background:none;border:none;color:var(--accent);cursor:pointer;padding:0;font-size:.78rem}.crumb.current{color:var(--fg);font-weight:600;cursor:default}.crumb-sep{color:var(--muted)}.taxon-search-wrapper{position:relative}.taxon-search-results{display:none;position:absolute;left:0;right:0;top:100%;z-index:10;margin:0;padding:0;list-style:none;max-height:220px;overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:0 0 .35rem .35rem;box-shadow:0 6px 18px #00000073}.taxon-search-result,.taxon-search-no-hits{padding:0}.taxon-search-result button{display:block;width:100%;padding:.35rem .55rem;background:none;border:none;color:var(--fg);font-size:.8rem;text-align:left;cursor:pointer}.taxon-search-result button:hover{background:var(--accent-hover);color:var(--accent)}.taxon-search-no-hits{padding:.35rem .55rem;color:var(--muted);font-size:.8rem;font-style:italic}.taxon-children{display:flex;flex-wrap:wrap;gap:.3rem;max-height:180px;overflow-y:auto}.taxon-child{background:var(--input-bg);color:var(--fg);border:1px solid var(--border);border-radius:.35rem;cursor:pointer;padding:.2rem .5rem;font-size:.75rem}.taxon-child:hover{border-color:var(--accent)}.taxon-leaf{color:var(--muted);font-style:italic}.lens-label{display:flex;align-items:center;gap:.4rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--fg);cursor:pointer}.lens-detail{display:flex;align-items:center;gap:.4rem}.lens-hint{color:var(--muted);font-size:.72rem;flex:0 0 auto}.lens-detail .lens-select{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.lens-handle{position:absolute;transform:translate(-50%,-50%);border-radius:50%;border:2px solid var(--accent);box-shadow:0 0 0 1px #00000080,inset 0 0 24px var(--lens-glow);z-index:4;cursor:grab;display:grid;place-items:center;touch-action:none}.lens-handle:active{cursor:grabbing}.lens-grip{color:var(--accent);background:var(--panel);border-radius:50%;width:1.5rem;height:1.5rem;display:grid;place-items:center;font-size:.85rem;pointer-events:none}.lens-legend{top:auto;bottom:1rem;left:1rem}.data-status{top:1rem;bottom:auto;left:50%;transform:translate(-50%)}.legend{top:auto;bottom:1rem}.lens-legend{left:14rem;bottom:1rem;top:auto}.panel{position:absolute;top:1rem;left:1rem;z-index:3;width:322px;max-height:58%;overflow-y:auto;padding:.85rem .95rem;background:var(--panel);border:1px solid var(--border);border-radius:var(--panel-radius);backdrop-filter:blur(var(--panel-blur));font-size:.82rem;line-height:1.45}.panel-section{margin-bottom:.7rem;padding-bottom:.7rem;border-bottom:1px solid var(--border)}.panel-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.panel-h{margin:0 0 .4rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.panel-subh{margin-top:.6rem;margin-bottom:.25rem;font-weight:600;font-size:.76rem;color:var(--fg)}.panel-caption{margin:0 0 .4rem}.panel-caveat{margin:0;color:var(--caveat);font-size:.76rem}.panel-hint{color:var(--muted);font-style:italic}.stat-row{display:flex;justify-content:space-between;gap:.5rem}.stat-label{color:var(--muted)}.hotspot-row{width:calc(100% + .5rem);margin:0 -.25rem;padding:.1rem .25rem;border:none;border-radius:.3rem;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.hotspot-row:hover,.hotspot-row:focus-visible{background:var(--accent-hover)}.hotspot-row .stat-label{color:var(--accent)}.stat-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:500}.species-list{margin:.2rem 0 0;padding:0;list-style:none}.species-item{display:flex;justify-content:space-between;gap:.5rem}.species-name{font-family:var(--font-display);font-style:italic;font-size:.88rem;line-height:1.3}.species-n{color:var(--muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.panel-note{font-size:.74rem;color:var(--muted);background:var(--accent-tint);border:1px solid var(--accent-line);border-radius:.4rem;padding:.5rem .6rem}.panel-note code{color:var(--accent)}.panel-source{margin-top:.5rem;font-size:.7rem;color:var(--muted)}.loading-overlay{position:absolute;inset:0;z-index:10;display:grid;place-content:center;justify-items:center;gap:1rem;background:var(--scrim);color:var(--muted)}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-size:.85rem}.loading-overlay[data-state=error]{background:var(--scrim-strong)}.fatal-box{max-width:30rem;padding:0 1.5rem;text-align:center}.fatal-icon{font-size:2.4rem;line-height:1;color:#f0a23c;margin-bottom:.6rem}.fatal-title{margin:0 0 .6rem;font-size:1.15rem;font-weight:600;color:var(--fg)}.fatal-body{margin:0 0 1rem;font-size:.9rem;color:var(--muted);line-height:1.5}.fatal-hints{margin:0 0 1rem;padding:0;list-style:none;text-align:left;display:grid;gap:.5rem}.fatal-hints li{position:relative;padding-left:1.1rem;font-size:.82rem;color:var(--fg);line-height:1.45}.fatal-hints li:before{content:"→";position:absolute;left:0;color:var(--accent)}.fatal-detail{text-align:left;font-size:.75rem;color:var(--muted)}.fatal-detail summary{cursor:pointer;user-select:none}.fatal-detail pre{margin:.5rem 0 0;padding:.5rem;max-height:9rem;overflow:auto;white-space:pre-wrap;word-break:break-word;background:var(--sunken);border:1px solid var(--border);border-radius:.35rem}.deck-tooltip{font-size:.75rem!important;background:var(--panel)!important;color:var(--fg)!important;border:1px solid var(--border)!important;border-radius:.35rem!important;white-space:pre-line}.legend,.controls,.panel,.data-status{transition:opacity .2s ease}.export-actions{display:grid;grid-template-columns:1fr 1fr;gap:.3rem}.export-btn{padding:.35rem .4rem;background:var(--input-bg);color:var(--fg);border:1px solid var(--border);border-radius:.35rem;cursor:pointer;font-size:.75rem}.export-btn:hover{border-color:var(--accent)}.species-export{width:100%;margin-top:.6rem}.about-btn{width:100%;padding:.4rem .5rem;background:var(--input-bg);color:var(--fg);border:1px solid var(--border);border-radius:.35rem;cursor:pointer;font-size:.8rem}.about-btn:hover{border-color:var(--accent)}.modal-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:1rem;background:var(--scrim);backdrop-filter:blur(3px)}.modal{width:min(560px,100%);max-height:85vh;overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:.6rem;box-shadow:0 12px 48px #00000080}.modal-header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.1rem;background:var(--panel);border-bottom:1px solid var(--border)}.modal-title{margin:0;font-size:1rem;font-weight:600}.modal-close{background:none;border:none;color:var(--muted);cursor:pointer;font-size:1rem;line-height:1;padding:.2rem .45rem;border-radius:.3rem}.modal-close:hover{color:var(--fg);background:var(--border)}.modal-body{padding:1rem 1.1rem 1.2rem;font-size:.84rem;line-height:1.5}.about-intro{margin:0 0 1rem}.about-field{margin-bottom:.9rem}.about-field-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.2rem}.about-field-body{margin:0}.about-field-sub{margin:.25rem 0 0;color:var(--muted);font-size:.78rem}.about-author-name{margin:0;font-weight:600}.about-citation{margin:0;padding:.5rem .6rem;background:var(--accent-tint);border:1px solid var(--accent-line);border-radius:.4rem;font-size:.78rem}.contact-form{display:flex;flex-direction:column;gap:.4rem;margin:.3rem 0 .6rem}.contact-input,.contact-textarea{width:100%;padding:.4rem .5rem;background:var(--input-bg);color:var(--fg);border:1px solid var(--border);border-radius:.35rem;font-family:inherit;font-size:.82rem}.contact-textarea{resize:vertical;min-height:3.2rem}.contact-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.contact-send{align-self:flex-start;padding:.4rem .9rem;background:var(--active-bg);color:var(--active-fg);border:1px solid var(--active-bg);border-radius:.35rem;cursor:pointer;font-size:.82rem}.contact-send:disabled{opacity:.6;cursor:default}.contact-status{margin:.1rem 0 0;font-size:.78rem;min-height:1em}.contact-status[data-state=ok]{color:var(--ok)}.contact-status[data-state=error]{color:var(--err)}.contact-status[data-state=pending]{color:var(--muted)}.contact-profiles-label{margin-top:.4rem}.info-actions{display:flex;gap:.3rem}.info-actions .about-btn{flex:1}.help-intro{margin:0 0 1rem}.help-step{margin-bottom:.8rem}.help-term{font-weight:600;margin-bottom:.15rem}.help-desc{margin:0;color:var(--muted)}.help-tip{margin:1rem 0 0;font-size:.78rem;color:var(--muted);background:var(--accent-tint);border:1px solid var(--accent-line);border-radius:.4rem;padding:.5rem .6rem}.sparkline-wrap{margin-top:.4rem;color:var(--muted);font-size:.78rem}.sparkline-label{display:block;margin-bottom:.15rem}.sparkline-svg{display:block;width:120px;height:28px;stroke:var(--accent);fill:none;stroke-width:1.6;overflow:visible}.sparkline-last{fill:var(--accent);stroke:none}.sparkline-axis{display:flex;justify-content:space-between;width:120px;margin-top:1px;font-size:.68rem;color:var(--muted);font-variant-numeric:tabular-nums}.sparkline-annot{margin-top:1px;font-size:.7rem;font-variant-numeric:tabular-nums}.sparkline-latest{color:var(--accent)}.sparkline-peak{margin-left:.5rem;color:var(--muted)}.mobile-toolbar,.mobile-scrim{display:none}@media (max-width: 900px){.app-header{padding:.55rem .85rem;gap:.55rem}.app-header h1{font-size:1.05rem}.legend{top:.6rem;bottom:auto;left:.6rem;right:auto;min-width:0;max-width:43vw;padding:.45rem .5rem;font-size:.67rem;line-height:1.25}.legend-title{font-size:.75rem}.legend-sub{margin-bottom:.3rem}.legend-swatch{width:13px;height:9px}.legend-ramp{gap:.13rem}.legend-meta{margin-top:.35rem}.lens-legend{top:.6rem;bottom:auto;left:auto;right:.6rem}.data-status{top:auto;left:.6rem;right:auto;transform:none;max-width:82vw;bottom:calc(4.95rem + env(safe-area-inset-bottom))}.maplibregl-ctrl-bottom-right{bottom:calc(3.25rem + env(safe-area-inset-bottom))}.controls,.panel{position:fixed;left:0;right:0;bottom:calc(3.25rem + env(safe-area-inset-bottom));top:auto;width:auto;max-width:none;max-height:72dvh;border-radius:.9rem .9rem 0 0;border-bottom:none;box-shadow:0 -8px 28px #00000047;transform:translateY(105%);visibility:hidden;transition:transform .28s ease,visibility .28s ease;z-index:30;padding-top:1.4rem;font-size:.9rem}.controls:before,.panel:before{content:"";position:absolute;top:.55rem;left:50%;transform:translate(-50%);width:2.25rem;height:.28rem;border-radius:999px;background:var(--border)}#app[data-sheet=controls] .controls,#app[data-sheet=panel] .panel{transform:none;visibility:visible}.mobile-scrim{display:block;position:fixed;inset:0;z-index:20;background:var(--scrim);opacity:0;pointer-events:none;transition:opacity .28s ease}#app[data-sheet] .mobile-scrim{opacity:1;pointer-events:auto}.mobile-toolbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;gap:.4rem;padding:.4rem .6rem calc(.4rem + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--border);backdrop-filter:blur(var(--panel-blur))}.mobile-tab{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:2.85rem;padding:.3rem .5rem;background:var(--input-bg);color:var(--fg);border:1px solid var(--border);border-radius:.5rem;font-family:var(--font-body);font-size:.9rem;font-weight:500;cursor:pointer}.mobile-tab:after{content:"⌃";font-size:.9rem;line-height:1;transition:transform .2s ease}.mobile-tab[aria-expanded=true]{background:var(--active-bg);color:var(--active-fg);border-color:var(--active-bg)}.mobile-tab[aria-expanded=true]:after{transform:rotate(180deg)}.seg-btn,.play-btn{min-height:2.5rem;font-size:.82rem}select,.taxon-search,.about-btn,.export-select,.decade-select{min-height:2.5rem}.taxon-child{min-height:2.1rem;padding:.35rem .6rem;font-size:.82rem}.crumb{min-height:1.9rem;font-size:.85rem;display:inline-flex;align-items:center}.modal-close{min-width:2.5rem;min-height:2.5rem}.taxon-children{max-height:40vh}}@media (max-width: 480px){.tagline{display:none}}@media (prefers-reduced-motion: reduce){.spinner{animation:none}.legend,.controls,.panel,.data-status,.mobile-scrim{transition:none}.mobile-tab:after{transition:none}.loading-bar:before{animation:none;width:100%}.data-status[data-state=pending]:before{animation:none}}
