File size: 5,611 Bytes
be172fd d0d6e7b 60897d1 d0d6e7b 9f55f84 92cb20a 4b2492e 2c2de0b 4b2492e 2c2de0b 92cb20a d0d6e7b 92cb20a ac25980 d0d6e7b 92cb20a 6c4dd46 9f55f84 ac25980 92cb20a ac25980 92cb20a 2c2de0b d0d6e7b 92cb20a d0d6e7b be172fd 9f55f84 d0d6e7b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | .atlas { --ink:#173c30; --muted:#647467; position:relative; overflow:hidden; color:var(--ink); background:transparent; border:0; border-radius:0; padding:24px 20px 14px; font-family:Arial,Helvetica,sans-serif; }
.atlas * { box-sizing:border-box; }
.atlas-header { display:flex; justify-content:space-between; align-items:center; gap:28px; }
.atlas-kicker { font-size:10px; font-weight:700; letter-spacing:1.5px; line-height:1.6; text-transform:uppercase; color:#527261; }
.atlas-kicker span { padding:0 8px; color:#9aaa95; }
.atlas h1 { font:400 clamp(29px,3.8vw,47px)/1.08 Georgia,'Times New Roman',serif; letter-spacing:-1.5px; margin:12px 0; color:var(--ink); }
.atlas h1 span { color:#68a788; }
.atlas-header p { margin:0; color:var(--muted); font-size:14px; line-height:1.6; }
.atlas-summary-block { min-width:270px; padding-left:26px; border-left:1px solid #dbe3d3; }
.atlas-summary { display:flex; align-items:center; gap:12px; margin-top:8px; }
.atlas-summary strong { font-size:33px; font-weight:500; letter-spacing:-1.4px; font-variant-numeric:tabular-nums; }
.atlas-summary span { font-size:11px; line-height:1.6; color:var(--muted); }
.atlas-badge { padding:7px 9px; font-size:13px; background:#dfeedd; color:#285b40; border-radius:8px; white-space:nowrap; }
.atlas button { font:inherit; cursor:pointer; }
.atlas-nav { display:flex; align-items:center; gap:12px; margin:25px 0 10px; }
.atlas-shortcuts { display:flex; flex-wrap:wrap; gap:7px; }
.atlas-shortcuts button { border:1px solid #cfdcc9; background:#ffffff80; border-radius:30px; padding:8px 15px; color:#315641; font-size:12px; transition:background .15s; }
.atlas-shortcuts button:hover { background:#dfeedd; }
.tree-scroll { margin:0 -5px; }
.life-tree { display:block; width:100%; height:auto; overflow:visible; }
.flow { stroke:none; transition:opacity .15s; }
.flow-annotated { fill:#40916f; opacity:.42; }
.flow-missing { fill:#cfd5c9; opacity:.6; }
/* The flux feeding the current selection stays emphasised, so the trunk you
have walked reads at a glance against the lineages you passed over. */
.flow.is-path { opacity:.74; }
.flow-annotated.is-path { fill:#39875f; }
.flow-missing.is-path { fill:#c2c9ba; }
/* Lighting a group also lights the flux arriving at it, so you can see where
a group's assemblies came from. Applied from atlas.js, since the ribbons are
painted under every node and cannot be reached with a CSS sibling rule.
Listed after the trunk rules so a hover still wins on the selected path. */
.flow.is-lit { opacity:.9; }
.flow-annotated.is-lit { fill:#2f7d5c; }
.flow-missing.is-lit { fill:#b4bdac; }
.bar-annotated { fill:#287557; }
.bar-missing { fill:#bcc4b5; }
.bar-outline { fill:none; stroke:#f7f8f0; stroke-width:1; }
.tree-node { cursor:pointer; }
.tree-node.is-direct { cursor:default; }
.tree-hit { fill:transparent; }
.tree-node:focus { outline:none; }
.tree-node:focus .bar-outline { stroke:#173c30; stroke-width:2; }
.tree-node.is-selected .bar-outline { stroke:#173c30; stroke-width:1.5; }
.tree-node.is-sibling { opacity:.62; transition:opacity .15s; }
.tree-node.is-sibling:hover,.tree-node.is-sibling:focus { opacity:1; }
.tree-icon { opacity:.62; transition:opacity .15s; }
.tree-node.is-selected .tree-icon { opacity:.85; }
.tree-label,.tree-english,.tree-count { paint-order:stroke; stroke:#f7f8f0; stroke-width:4px; stroke-linejoin:round; text-anchor:middle; }
.tree-label { font:600 13px Arial,Helvetica,sans-serif; fill:#254735; transition:fill .15s; }
.tree-node.is-selected .tree-label { font-weight:700; fill:#173c30; }
.tree-english { font:italic 11.5px Georgia,'Times New Roman',serif; fill:#5d7a66; }
.tree-count { font:11px Arial,Helvetica,sans-serif; fill:#697966; }
.tree-node.is-lit:not(.is-direct) .tree-label,.tree-node:focus .tree-label { fill:#0f2e22; }
.tree-node.is-lit:not(.is-direct) .bar-outline { stroke:#287557; stroke-width:2; }
.tree-node.is-lit { opacity:1; }
.tree-node.is-lit .tree-icon { opacity:.9; }
.atlas-footer { display:flex; align-items:center; flex-wrap:wrap; gap:15px; justify-content:space-between; border-top:1px solid #dde4d5; padding-top:14px; color:#6c7a66; font-size:11px; line-height:1.6; }
.atlas-legend { display:flex; gap:7px; align-items:center; }
.atlas-swatch { width:10px; height:10px; border-radius:2px; }
.atlas-annotated { background:#287557; }
.atlas-missing { background:#bcc4b5; }
.atlas-date { opacity:.8; }
.atlas-footnote { font-size:10px; line-height:1.6; color:#77816e; margin-top:12px; max-width:860px; }
.atlas-tooltip { position:absolute; z-index:5; pointer-events:none; max-width:290px; padding:12px 15px; border-radius:12px; color:#f5f8ef; background:#1d4334; font-size:12px; line-height:1.7; box-shadow:0 5px 20px #18372122; }
.atlas-tooltip[hidden] { display:none; }
.atlas button:focus-visible { outline:2px solid #327555; outline-offset:3px; }
.atlas-leaf-note { color:#647467; font-size:13px; text-align:center; margin:0 0 20px; }
@media(max-width:800px) {
.atlas { padding:18px 10px 14px; }
/* Levels fill the page width, so on a phone the only way to keep the labels
legible is to let the chart itself scroll sideways again. */
.tree-scroll { overflow-x:auto; overscroll-behavior-x:contain; }
.life-tree { min-width:720px; }
.atlas-header { align-items:flex-start; flex-direction:column; gap:18px; }
.atlas-summary-block { border-left:0; padding:0; min-width:0; }
.atlas-summary { flex-wrap:wrap; }
.atlas h1 { font-size:35px; }
.atlas-nav { flex-wrap:wrap; margin-top:18px; }
.atlas-footer { gap:9px; }
}
@media(prefers-reduced-motion:reduce) { .atlas * { transition:none!important; } }
|