main .wrap>h1{font-size:clamp(1.7rem,5vw,2.6rem);margin-top:.3rem}
.lede{font-size:1.08rem;max-width:44rem}
.tabs{display:flex;flex-wrap:wrap;gap:.4rem;border-top:3px double var(--ink);border-bottom:1px solid var(--ink);padding:.6rem 0;margin:1.2rem 0 1rem;font-family:var(--sans)}
.tabs a{display:inline-flex;align-items:center;min-height:44px;padding:0 .85rem;border:1px solid var(--rule);background:var(--card);color:var(--ink);text-decoration:none;font-size:.9rem;font-weight:600}
.tabs a[aria-current=page]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.controls{display:flex;flex-wrap:wrap;gap:.6rem 1rem;margin:0 0 .8rem;font-family:var(--sans);font-size:.85rem}
.controls label{display:flex;flex-direction:column;gap:.2rem;font-weight:600;flex:1 1 9rem;min-width:0}
.controls label.full{flex-basis:100%}
.controls input[type=search],.controls select{font:inherit;font-size:16px;min-height:44px;padding:.4rem .6rem;border:1px solid #9c968b;background:var(--card);color:var(--ink);width:100%;max-width:100%;border-radius:0}
.checks{display:flex;flex-wrap:wrap;gap:.3rem .9rem;flex-basis:100%}
.checks label{flex-direction:row;align-items:center;flex:0 0 auto;font-weight:400;min-height:36px}
.cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--ink)}
.card{display:block;width:100%;text-align:left;font:inherit;color:inherit;background:none;border:0;border-bottom:1px solid var(--rule);padding:.8rem .2rem;cursor:pointer;min-height:44px}
.card:hover,.card:focus-visible{background:var(--card)}
.card-top{display:flex;align-items:baseline;gap:.5rem}
.dot{flex:0 0 auto;width:.65rem;height:.65rem;border-radius:50%;display:inline-block}
.card-name{font-weight:700;font-size:1.05rem;overflow-wrap:anywhere}
.card-sub,.card-meta{font-family:var(--sans);font-size:.82rem;color:var(--muted);margin-top:.15rem;overflow-wrap:anywhere}
.more{display:block;width:100%;min-height:48px;margin:1rem 0;font:600 .95rem var(--sans);background:var(--card);border:1px solid var(--ink);color:var(--ink);cursor:pointer}
.group{border-top:1px solid var(--ink);padding:.2rem 0}
.group>summary{min-height:48px;display:flex;align-items:center;font-weight:700;font-size:1.1rem;cursor:pointer;gap:.5rem}
.names{list-style:none;padding:0;margin:0 0 .8rem}
.names li{border-bottom:1px solid var(--rule)}
.names a,.names button{display:block;min-height:44px;padding:.6rem 0;background:none;border:0;font:inherit;color:var(--link);text-align:left;width:100%;cursor:pointer}
.recs{list-style:none;padding:0;margin:0 0 1rem;border-top:1px solid var(--rule)}
.rec{border-bottom:1px solid var(--rule);padding:.6rem 0;overflow-wrap:anywhere}
.rec-main{display:block}
.rec-main a,.rec-main button{font:inherit;color:var(--link);background:none;border:0;padding:0;text-decoration:underline;cursor:pointer;text-align:left}
.rec-meta{display:block;font-family:var(--sans);font-size:.8rem;color:var(--muted);margin-top:.15rem}
.bars{list-style:none;padding:0;margin:0 0 1rem}
.bars li{padding:.45rem 0;border-bottom:1px solid var(--rule)}
.bar-top{display:flex;justify-content:space-between;gap:.75rem;font-size:.95rem;overflow-wrap:anywhere}
.bar-top button,.bar-top a{font:inherit;color:var(--link);background:none;border:0;padding:0;text-align:left;cursor:pointer;min-height:32px}
.bar-v{font-family:var(--sans);font-weight:700;white-space:nowrap}
.bar{height:.55rem;background:var(--accent);margin-top:.25rem;min-width:2px}
.tl-month{font-family:var(--sans);font-size:.8rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;border-top:3px solid var(--ink);padding-top:.4rem;margin:1.4rem 0 .3rem}
.ego{width:100%;height:auto;display:block;background:var(--card);border:1px solid var(--rule);margin:.5rem 0 1rem}
.chart{width:100%;overflow:hidden;background:var(--card);border:1px solid var(--rule)}
.chart svg{width:100%;height:auto;display:block}
.sheet{position:fixed;inset:0;z-index:50;background:rgba(22,21,20,.45)}
.sheet[hidden]{display:none}
.sheet-panel{position:absolute;inset:0;background:var(--paper);overflow-y:auto;overflow-x:hidden;padding:1rem 1.1rem 3rem;-webkit-overflow-scrolling:touch}
.sheet-close{position:sticky;top:0;float:right;min-height:44px;min-width:72px;font:600 .9rem var(--sans);background:var(--ink);color:var(--paper);border:0;cursor:pointer;z-index:2}
#sheet-body h2{margin-top:.4rem;font-size:1.6rem;overflow-wrap:anywhere}
body.sheet-open{overflow:hidden}
.notes{max-width:44rem;margin-top:2.5rem;border-top:3px double var(--ink)}
.sources{padding-left:1.1rem;font-size:.9rem}
.sources a{overflow-wrap:anywhere;word-break:break-word}
.notes li{overflow-wrap:anywhere}
@media (min-width:760px){.cards{grid-template-columns:1fr 1fr;column-gap:2rem}.sheet-panel{left:auto;width:min(36rem,100%);border-left:3px solid var(--ink);padding:1.5rem 1.75rem 3rem}}
@media (min-width:1100px){.cards{grid-template-columns:1fr 1fr 1fr}}
a.card{text-decoration:none}
.card-sub,.card-meta{display:block}
.card-name{text-decoration:underline;text-decoration-thickness:1px;color:var(--link)}
.ego text{font-family:var(--sans)}
.filters{border:1px solid var(--rule);background:var(--card);padding:.4rem .8rem;margin:0 0 1rem;font-family:var(--sans)}
.filters>summary{min-height:44px;display:flex;align-items:center;font-weight:700;cursor:pointer}
.chipset{display:flex;flex-wrap:wrap;gap:.4rem;margin:.5rem 0}
.chip-label{flex-basis:100%;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.chip{min-height:44px;padding:0 .8rem;font:600 .85rem var(--sans);border:1px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;border-radius:22px}
.chip[aria-pressed=false]{background:var(--card);color:var(--muted);border-color:#9c968b;text-decoration:line-through}
.chip.all{background:var(--accent);border-color:var(--accent)}
.f-row{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:.6rem 0 .3rem}
.ego text,.chart text{fill:var(--ink)}
html[data-theme=dark] .ego line,html[data-theme=dark] .chart line{stroke:#8d867a}
html[data-theme=dark] .chip[aria-pressed=false]{color:var(--muted)}
.chip.all{color:#fff}
.sheet-close{color:var(--paper)}
/* round 5: layout picker, pan and zoom */
.pz{position:relative;border:1px solid var(--rule);background:var(--card);margin:.4rem 0}
.pz svg{display:block;width:100%;height:min(72vh,680px);touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;font-family:var(--sans)}
.pz svg:active{cursor:grabbing}
.pz-btns{position:absolute;right:8px;top:8px;display:flex;flex-direction:column;gap:6px}
.pz-btns button{min-width:44px;min-height:44px;font:700 1.1rem var(--sans);background:var(--paper);color:var(--ink);border:1px solid var(--ink);cursor:pointer;border-radius:6px}
.pz-btns #pz-reset{font-size:.75rem}
.pz .ln{fill:none;stroke:var(--muted);stroke-opacity:.35;stroke-width:1.2;vector-effect:non-scaling-stroke}
.pz .ln.neg{stroke:#c0702a}
.pz .bc-r{fill:var(--paper);stroke:var(--rule);stroke-width:1}
.pz .bcard{cursor:pointer;outline:none}
.pz .bcard:hover .bc-r,.pz .bcard:focus-visible .bc-r{stroke:var(--ink);stroke-width:2}
.pz .bc-n{fill:var(--ink);font-size:14px;font-weight:700}
.pz .bc-n.big{font-size:17px}
.pz .bc-s{fill:var(--muted);font-size:12px}
.pz .bc-m{fill:var(--ink);font-size:12px;font-weight:600}
.pz .col-h{fill:var(--ink);font-size:16px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.pz .col-h.sm{font-size:12px}
.pz .col-s{fill:var(--muted);font-size:12px}
.pz .center .bc-r{stroke:var(--ink);stroke-width:2}
.pz .nd{cursor:pointer;outline:none}
.pz .nd circle{stroke:var(--paper)}
.pz .nl{display:none;fill:var(--ink);paint-order:stroke;stroke:var(--card);stroke-width:3px;stroke-linejoin:round}
.pz svg.zoomed .nl,.pz .nd:hover .nl,.pz .nd:focus-visible .nl,.pz .nd.on .nl{display:inline}
.pz svg.focus .bcard:not(.on),.pz svg.focus .nd:not(.on){opacity:.18}
.pz svg.focus .ln:not(.on){stroke-opacity:.05}
.pz svg.focus .ln.on{stroke:var(--accent);stroke-opacity:.9;stroke-width:2.2}
.pz .bcard.on .bc-r{stroke:var(--accent);stroke-width:2.5}
.ex-bar{font-family:var(--sans);font-size:.9rem;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .6rem;margin:.3rem 0}
.ex-bar[hidden],.controls label[hidden]{display:none}
.ex-bar select{font:inherit;font-size:16px;min-height:44px;max-width:100%;background:var(--card);color:var(--ink);border:1px solid var(--muted)}
.ex-bar .chip{min-height:40px}
html[data-theme=dark] .chip.all{color:#161513}
.ex-bar label{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;max-width:100%;min-width:0}.ex-bar select{width:100%;min-width:0}@media(min-width:600px){.ex-bar select{width:auto;max-width:420px}}
.pz path.ln.bl{stroke:hsl(var(--h) 75% 40%);stroke-opacity:.75}
.pz .bc-sw{fill:hsl(var(--h) 75% 40%)}
html[data-theme=dark] .pz path.ln.bl{stroke:hsl(var(--h) 85% 66%)}
html[data-theme=dark] .pz .bc-sw{fill:hsl(var(--h) 85% 66%)}
.pz svg.focus path.ln.bl.on{stroke-opacity:1;stroke-width:2.5}
.pz path.ln.bl.neg{stroke-dasharray:5 4}
/* round 6: searchable list */
.ls[hidden],.pz[hidden]{display:none}
.ls .ls-q{flex:1 1 18rem}
.ls input[type=search]{font:inherit;font-size:16px;min-height:44px;width:100%;box-sizing:border-box;padding:.3rem .6rem;background:var(--card);color:var(--ink);border:1px solid var(--muted);border-radius:4px}
.ls select{font:inherit;font-size:16px;min-height:44px;background:var(--card);color:var(--ink);border:1px solid var(--muted)}
.ls-t{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:.92rem}
.ls-t th{text-align:left;border-bottom:2px solid var(--ink);padding:.4rem .5rem;white-space:nowrap}
.ls-t td{border-bottom:1px solid var(--rule,#ccc);padding:.45rem .5rem;vertical-align:top;overflow-wrap:anywhere}
.ls-t .num{text-align:right;white-space:nowrap}
.ls-d{display:block;color:var(--muted);font-size:.85em}
.ls-t a{min-height:24px;display:inline-block}
@media (max-width:640px){.ls-t thead{position:absolute;left:-9999px}.ls-t,.ls-t tbody,.ls-t tr,.ls-t td{display:block;width:100%;box-sizing:border-box}
.ls-t tr{border:1px solid var(--muted);border-radius:6px;padding:.4rem .6rem;margin:0 0 .6rem;background:var(--card)}
.ls-t td{border:0;padding:.15rem 0;display:grid;grid-template-columns:6.5rem 1fr;gap:.5rem;text-align:left}
.ls-t td.num{text-align:left}.ls-t td::before{content:attr(data-l);font-weight:700;color:var(--muted)}}
.ls-t td[data-l=Source]{white-space:nowrap}.ls-t td[data-l=Date]{min-width:7rem}
