:root{--paper:#F0E7D6;--paper-2:#E7DAC0;--card:#FBF6EA;--card-2:#F4ECDA;--ink:#2C241A;--ink-soft:#6B5E4B;--ink-faint:#9A8A70;--line:#DAC9A8;--line-soft:#E6D8BC;--russet:#B0512A;--russet-deep:#8A3D1F;--moss:#5A6B37;--moss-deep:#3F4E24;--lobelia:#6E5A93;--sky:#5C7A99;--gold:#C9922A;--gold-soft:#E7C878;--en:#C76A1E;--cr:#C43D2E;--shadow: 0 18px 40px -22px rgba(58,40,20,.55);--shadow-sm: 0 6px 16px -10px rgba(58,40,20,.5);--stage: radial-gradient(120% 90% at 50% 38%, #FBF5E7 0%, #EFE3C9 55%, #E2D2AE 100%);--serif: "Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;--sans: system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}@media(prefers-color-scheme:dark){:root{--paper:#1D1811;--paper-2:#251E15;--card:#2A2217;--card-2:#332918;--ink:#F1E8D6;--ink-soft:#C3B393;--ink-faint:#8B7C61;--line:#453A28;--line-soft:#3A3123;--russet:#DB7440;--russet-deep:#B85A2C;--moss:#93A461;--moss-deep:#AEBE7E;--lobelia:#A992CE;--sky:#8AA9C8;--gold:#E7B24E;--gold-soft:#8A6C2C;--en:#E08A3C;--cr:#E8604F;--shadow: 0 20px 46px -22px rgba(0,0,0,.75);--shadow-sm: 0 8px 18px -12px rgba(0,0,0,.7);--stage: radial-gradient(120% 90% at 50% 36%, #2E2617 0%, #241D13 60%, #1B160E 100%)}}:root[data-theme=dark]{--paper:#1D1811;--paper-2:#251E15;--card:#2A2217;--card-2:#332918;--ink:#F1E8D6;--ink-soft:#C3B393;--ink-faint:#8B7C61;--line:#453A28;--line-soft:#3A3123;--russet:#DB7440;--russet-deep:#B85A2C;--moss:#93A461;--moss-deep:#AEBE7E;--lobelia:#A992CE;--sky:#8AA9C8;--gold:#E7B24E;--gold-soft:#8A6C2C;--en:#E08A3C;--cr:#E8604F;--shadow: 0 20px 46px -22px rgba(0,0,0,.75);--shadow-sm: 0 8px 18px -12px rgba(0,0,0,.7);--stage: radial-gradient(120% 90% at 50% 36%, #2E2617 0%, #241D13 60%, #1B160E 100%)}:root[data-theme=light]{--paper:#F0E7D6;--paper-2:#E7DAC0;--card:#FBF6EA;--card-2:#F4ECDA;--ink:#2C241A;--ink-soft:#6B5E4B;--ink-faint:#9A8A70;--line:#DAC9A8;--line-soft:#E6D8BC;--russet:#B0512A;--russet-deep:#8A3D1F;--moss:#5A6B37;--moss-deep:#3F4E24;--lobelia:#6E5A93;--sky:#5C7A99;--gold:#C9922A;--gold-soft:#E7C878;--en:#C76A1E;--cr:#C43D2E;--shadow: 0 18px 40px -22px rgba(58,40,20,.55);--shadow-sm: 0 6px 16px -10px rgba(58,40,20,.5);--stage: radial-gradient(120% 90% at 50% 38%, #FBF5E7 0%, #EFE3C9 55%, #E2D2AE 100%)}*{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:var(--sans);color:var(--ink);background:var(--paper);background-image:radial-gradient(circle at 18% 22%,rgba(0,0,0,.02) 0 1px,transparent 1px),radial-gradient(circle at 62% 68%,rgba(0,0,0,.018) 0 1px,transparent 1px);background-size:22px 22px,28px 28px}.wrap{padding:14px;min-height:100%}.serif{font-family:var(--serif)}a{color:inherit}.label{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);font-weight:600}.app{display:grid;grid-template-columns:270px minmax(0,1fr) 344px;gap:16px;max-width:1320px;margin:0 auto;position:relative}.topbar{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:2px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none}.brand .mark{width:38px;height:38px;border-radius:11px;background:linear-gradient(150deg,var(--russet),var(--russet-deep));display:grid;place-items:center;color:#fbf6ea;box-shadow:var(--shadow-sm);font-size:22px;font-family:var(--serif)}.brand h1{font-family:var(--serif);font-size:23px;margin:0;letter-spacing:.01em;line-height:1;font-weight:600}.brand h1 em{color:var(--gold);font-style:normal}.brand .tag{font-size:11px;color:var(--ink-soft);letter-spacing:.14em;text-transform:uppercase;margin-top:3px}.pinned{text-align:center;position:relative;background:var(--card);border:1px dashed var(--line);border-radius:12px;padding:7px 26px 8px;box-shadow:var(--shadow-sm)}.pinned .pin{position:absolute;top:-9px;left:50%;transform:translate(-50%);font-size:16px}.pinned .sci{font-family:var(--serif);font-style:italic;font-size:13px;color:var(--ink-soft)}.top-actions{display:flex;align-items:center;gap:14px}.stamp{width:58px;height:58px;border-radius:50%;border:1.5px solid var(--moss);color:var(--moss-deep);display:grid;place-items:center;text-align:center;line-height:1.05;font-size:8px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;transform:rotate(-8deg);background:var(--card)}.icon-btn{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--ink-soft);font-size:10px;cursor:pointer;text-decoration:none}.icon-btn svg{width:19px;height:19px}.icon-btn:hover{color:var(--russet)}.left{display:flex;gap:12px}.rail{display:flex;flex-direction:column;gap:16px;padding-top:4px}.rail a{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--ink-soft);font-size:9.5px;text-decoration:none}.rail a svg{width:21px;height:21px}.rail a.active,.rail a:hover{color:var(--russet)}.collection{flex:1;min-width:0;background:var(--card);border:1px solid var(--line-soft);border-radius:16px;padding:14px 13px;box-shadow:var(--shadow)}.collection .head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.collection .head .count{font-size:11px;color:var(--ink-faint)}.group{display:flex;align-items:center;gap:11px;padding:9px 8px;border-radius:11px;cursor:pointer;border:1px solid transparent}.group:hover{background:var(--card-2)}.group.active{background:var(--card-2);border-color:var(--line);box-shadow:var(--shadow-sm)}.group .thumb{width:38px;height:38px;border-radius:9px;background:var(--paper-2);display:grid;place-items:center;flex:none;color:var(--moss-deep)}.group .thumb svg{width:24px;height:24px}.group .g-name{font-family:var(--serif);font-size:15px;font-weight:600;line-height:1.1}.group .g-sub{font-size:11px;color:var(--ink-faint);margin-top:1px}.group .chev{margin-left:auto;color:var(--ink-faint)}.group .chev svg{width:15px;height:15px}.sublist{padding:2px 0 4px 60px;display:flex;flex-direction:column}.sublist a{text-decoration:none;color:var(--ink-soft);font-size:13px;padding:6px 8px;border-radius:8px;cursor:pointer}.sublist a:hover{background:var(--card-2);color:var(--ink)}.sublist a.on{color:var(--russet-deep);font-weight:600;background:var(--card-2)}.sublist a.soon{color:var(--ink-faint);cursor:default;pointer-events:none}.sublist a .dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:7px;vertical-align:middle}.browse-all{margin-top:12px;padding:11px 12px;border:1px dashed var(--line);border-radius:12px;font-size:12px;color:var(--ink-soft);display:flex;align-items:center;gap:9px;text-decoration:none}.browse-all:hover{border-color:var(--russet);color:var(--ink)}.browse-all strong{color:var(--ink);font-variant-numeric:tabular-nums}.browse-all svg{width:16px;height:16px;color:var(--russet);flex:none}.stage{position:relative;border-radius:20px;background:var(--stage);border:1px solid var(--line-soft);overflow:hidden;min-height:560px;box-shadow:var(--shadow);display:flex;flex-direction:column}.stage .specimen-wrap{flex:1;display:grid;place-items:center;padding:26px}.specimen-photo{max-width:min(94%,560px);max-height:452px;object-fit:contain;border-radius:14px;box-shadow:0 26px 40px -20px #3a281480;background:var(--card)}.credit{position:absolute;left:20px;top:16px;font-size:9.5px;color:var(--ink-faint);background:color-mix(in srgb,var(--card) 70%,transparent);padding:3px 8px;border-radius:999px;max-width:280px;z-index:3}.map-wrap{position:absolute;inset:0;display:none}.stage[data-view=map] .specimen-wrap{display:none}.stage[data-view=map] .map-wrap{display:block}.range-map{position:absolute;inset:0;width:100%;height:100%;padding:18px}.range-map .ethiopia{fill:color-mix(in srgb,var(--moss) 20%,transparent);stroke:var(--moss);stroke-width:2.5;stroke-linejoin:round}.range-map .occ-dot{fill:var(--russet);stroke:#fbf6ea;stroke-width:1.4;opacity:.9}.map-badge{position:absolute;left:20px;bottom:20px;z-index:3;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:9px 13px;box-shadow:var(--shadow-sm);font-size:12px;color:var(--ink-soft);max-width:230px}.map-badge b{color:var(--ink);font-variant-numeric:tabular-nums}.stage[data-view=map] .discovery,.stage[data-view=map] .credit{display:none}.discovery{position:absolute;left:20px;bottom:20px;width:250px;background:var(--card);border:1px dashed var(--line);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow-sm);z-index:3}.discovery .label{color:var(--gold)}.discovery h4{font-family:var(--serif);font-size:15px;margin:3px 0 5px}.discovery p{margin:0;font-size:12px;line-height:1.5;color:var(--ink-soft)}.dock{position:absolute;right:18px;top:50%;transform:translateY(-50%);background:var(--card);border:1px solid var(--line);border-radius:16px;padding:9px 7px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow-sm);z-index:4}.dock button{border:0;background:transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 9px;border-radius:10px;color:var(--ink-soft);font-size:9px;font-family:var(--sans)}.dock button svg{width:18px;height:18px}.dock button.on{background:var(--russet);color:#fbf6ea}.dock button:not(.on):hover{background:var(--card-2);color:var(--russet)}.guide{background:var(--card);border:1px solid var(--line-soft);border-radius:18px;padding:18px 18px 16px;box-shadow:var(--shadow);position:relative}.guide .fgno{position:absolute;top:14px;right:16px;text-align:right}.guide .fgno .n{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--russet)}.family{display:inline-block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--lobelia);background:color-mix(in srgb,var(--lobelia) 14%,transparent);padding:4px 9px;border-radius:999px}.guide h2{font-family:var(--serif);font-size:29px;margin:11px 0 1px;line-height:1;font-weight:600}.guide .sci{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--ink-soft)}.status{--sc:var(--en);display:flex;align-items:center;gap:10px;margin:13px 0 12px;padding:9px 11px;border-radius:11px;background:color-mix(in srgb,var(--sc) 12%,transparent);border-left:4px solid var(--sc)}.status.st-LC{--sc:var(--moss)}.status.st-NT{--sc:var(--sky)}.status.st-VU{--sc:var(--gold)}.status.st-EN{--sc:var(--en)}.status.st-CR{--sc:var(--cr)}.status.st-DD,.status.st-NE{--sc:var(--ink-faint)}.status .code{font-family:var(--serif);font-weight:700;font-size:17px;color:var(--sc)}.status .txt{font-size:11.5px;line-height:1.25}.status .txt b{color:var(--ink)}.status .txt span{color:var(--ink-soft)}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.chip{font-size:11px;padding:4px 10px;border-radius:999px;font-weight:600}.chip.moss{color:var(--moss-deep);background:color-mix(in srgb,var(--moss) 16%,transparent)}.chip.gold{color:var(--gold);background:color-mix(in srgb,var(--gold) 20%,transparent)}.chip.lob{color:var(--lobelia);background:color-mix(in srgb,var(--lobelia) 15%,transparent)}.chip.rus{color:var(--russet-deep);background:color-mix(in srgb,var(--russet) 14%,transparent)}.sections{display:flex;flex-direction:column;gap:13px}.sec{display:flex;gap:11px}.sec .ic{width:26px;height:26px;border-radius:8px;flex:none;display:grid;place-items:center;background:var(--card-2);color:var(--moss-deep)}.sec .ic svg{width:15px;height:15px}.sec.warn .ic{color:var(--cr);background:color-mix(in srgb,var(--cr) 12%,transparent)}.sec h5{margin:1px 0 3px;font-size:13px;font-weight:700;color:var(--ink)}.sec p{margin:0;font-size:12px;line-height:1.5;color:var(--ink-soft)}.habitat{margin-top:15px;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:var(--card-2)}.habitat .hb-top{display:flex;align-items:center;justify-content:space-between;padding:9px 12px}.habitat .hb-top .label{color:var(--moss-deep)}.habitat .hb-top .q{color:var(--ink-faint);font-size:12px}.habitat .hb-cap{padding:9px 12px 11px}.habitat .hb-cap b{font-family:var(--serif);font-size:14px}.habitat .hb-cap p{margin:2px 0 0;font-size:11.5px;color:var(--ink-soft);line-height:1.45}.footer{grid-column:1 / -1;text-align:center;margin-top:4px}.footer .rule{display:inline-block;width:220px;border-top:1px dashed var(--line);margin:0 0 8px}.footer p{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--ink-soft);margin:0}.doodle{position:absolute;opacity:.5;pointer-events:none;z-index:0}.doodle.tl{top:-4px;left:-6px;width:70px}.doodle.br{bottom:26px;right:-4px;width:82px}@media(max-width:1080px){.app{grid-template-columns:64px minmax(0,1fr)}.guide{grid-column:1 / -1}.collection{display:none}}@media(max-width:680px){.app{grid-template-columns:1fr}.rail{flex-direction:row;flex-wrap:wrap;justify-content:center}.dock,.discovery{display:none}}
