:root{--bg:#f6f7f4;--fg:#1c221e;--muted:#6b7570;--line:#d9ded9;--accent:#1f5c3f;--accent-soft:#e3efe7;color:var(--fg);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}body{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{margin:.2rem 0 0;font-weight:600}h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:2rem 0 .6rem;font-size:1rem}.muted{color:var(--muted)}.error{color:#a03030}.rank{color:var(--muted);text-transform:capitalize;font-size:.8rem}.count{color:var(--muted);background:var(--accent-soft);border-radius:999px;margin-left:.4em;padding:0 .5em;font-size:.8rem}.tag{color:var(--muted);margin-left:.5em;font-size:.75rem}.topbar{border-bottom:1px solid var(--line);z-index:2;background:#fff;align-items:center;gap:1.5rem;padding:.6rem 1.25rem;display:flex;position:sticky;top:0}.brand{color:var(--fg);white-space:nowrap;font-weight:700}main{max-width:52rem;margin:0 auto;padding:1.5rem 1.25rem 4rem}.home{text-align:center;max-width:40rem;margin:12vh auto 0;padding:0 1.25rem}.home h1{font-size:2.4rem}.home .search{text-align:left;margin:1.5rem auto}.roots{flex-wrap:wrap;justify-content:center;gap:.5rem 1.5rem;padding:0;list-style:none;display:flex}.roots .rank{margin-left:.4em}.search{flex:1;max-width:32rem;position:relative}.search input{width:100%;font:inherit;border:1px solid var(--line);background:#fff;border-radius:8px;padding:.5rem .75rem}.search-large input{padding:.8rem 1rem;font-size:1.15rem}.search input:focus{outline:2px solid var(--accent);outline-offset:-1px}.suggestions{border:1px solid var(--line);z-index:3;background:#fff;border-radius:8px;max-height:60vh;margin:.25rem 0 0;padding:.25rem;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #00000014}.suggestions li{cursor:pointer;border-radius:6px;justify-content:space-between;gap:.5rem;padding:.45rem .6rem;display:flex}.suggestions li.active{background:var(--accent-soft)}.suggestion-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lineage{flex-wrap:wrap;gap:.25rem 0;margin:0 0 1.5rem;padding:0;list-style:none;display:flex}.lineage li{flex-direction:column;padding:.2rem .9rem .2rem 0;display:flex;position:relative}.lineage li+li:before{content:"›";color:var(--muted);position:absolute;top:1.15rem;left:-.7rem}.lineage li+li{padding-left:.4rem}.lineage .rank{font-size:.7rem}.lineage .current>span:last-child{font-weight:600}.rank-label{color:var(--muted);text-transform:capitalize;margin:0;font-size:.85rem}.taxon h1 small{color:var(--muted);font-size:.55em;font-weight:400}.common{margin:.1rem 0 0;font-size:1.2rem}.summary{align-items:flex-start;gap:1.25rem;margin-top:1.5rem;display:flex}.summary img{object-fit:cover;border-radius:8px;width:200px;max-width:35%}.summary p{margin:0 0 .6rem}.source{color:var(--muted);font-size:.85rem}.vernacular{color:var(--muted);font-size:.9rem}.child-list{columns:2;column-gap:2rem;margin:0;padding:0;list-style:none}.child-list li{break-inside:avoid;align-items:baseline;gap:.5rem;padding:.2rem 0;display:flex}.child-list li a{flex:1}.children-head{justify-content:space-between;align-items:baseline;gap:1rem;margin-top:2rem;display:flex}.children-head h2{margin-top:0}.view-toggle{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.view-toggle button{font:inherit;color:var(--muted);cursor:pointer;background:#fff;border:0;padding:.3rem .8rem;font-size:.85rem}.view-toggle button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.card-list{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.card{border:1px solid var(--line);background:#fff;border-radius:10px;flex-direction:column;display:flex;overflow:hidden}.card img,.card-placeholder{aspect-ratio:4/3;object-fit:cover;background:var(--accent-soft);width:100%;display:block}.card-body{flex-direction:column;gap:.15rem;padding:.7rem .9rem .9rem;display:flex}.card-body>a{font-style:italic;font-weight:600}.card .common{margin:0;font-size:.95rem}.card .extract{color:#3a433e;-webkit-line-clamp:5;-webkit-box-orient:vertical;margin:.3rem 0 0;font-size:.85rem;display:-webkit-box;overflow:hidden}.children>button{font:inherit;border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;margin-top:1rem;padding:.5rem 1rem}@media (width<=640px){.child-list{columns:1}.summary{flex-direction:column}.summary img{width:auto;max-width:100%}.topbar{flex-wrap:wrap;gap:.5rem}}.timeline-track{height:8.5rem;margin:.5rem 0 .25rem;position:relative}.periods{border-radius:4px;height:1.4rem;position:absolute;top:0;left:0;right:0;overflow:hidden}.period{white-space:nowrap;color:#000000b3;padding-left:.3rem;font-size:.7rem;line-height:1.4rem;position:absolute;top:0;bottom:0;overflow:hidden}.period span{mix-blend-mode:multiply}.fossil-marks{height:6.6rem;margin:0;padding:0;list-style:none;position:absolute;top:1.7rem;left:0;right:0}.fossil-marks li{white-space:nowrap;border-left:2px solid var(--line);opacity:.45;padding-left:.4rem;font-size:.75rem;line-height:1.2rem;position:absolute;transform:translate(-1px)}.fossil-marks li.alive{opacity:1;border-left-color:var(--accent)}.cursor{pointer-events:none;background:#a03030;width:2px;position:absolute;top:0;bottom:0}.timeline input[type=range]{width:100%;accent-color:var(--accent);margin:0}.time-readout{margin:.5rem 0 .25rem}.phylogeny .split{margin-top:1rem}.phylogeny h3{margin:0 0 .1rem;font-size:.95rem}.phylogeny .split>.muted{margin:0 0 .4rem;font-size:.85rem}.node-list{margin:0;padding:0;list-style:none}.node-list li{padding:.15rem 0 .15rem .9rem;position:relative}.node-list li:before{content:"";border-left:2px solid var(--line);position:absolute;top:0;bottom:0;left:0}.node-list li:first-child:before{border-left-color:var(--accent)}.key button,.keyflow button{font:inherit;border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;padding:.45rem 1rem}.key-path{color:var(--muted);margin:0 0 .75rem;padding:0;font-size:.85rem;list-style:none}.key-path li{padding:.1rem 0}.key-question p{margin:0 0 .6rem;font-size:1.1rem}.key-buttons{gap:.5rem;display:flex}.key-buttons button{background:var(--accent-soft);min-width:5rem;color:var(--accent);border-color:#0000;font-weight:600}.key-leaf ul{margin:0;padding:0;list-style:none}.key-leaf li{padding:.2rem 0;font-size:1.05rem}.key-restart{margin-top:.75rem}
