.hill-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:1rem;margin:1.5rem 0}
[data-hill-locale] .article-hero h1{font-size:clamp(2rem,4vw,3.5rem);text-wrap:balance}
.hill-card img{width:100%;height:170px;object-fit:contain;background:#233c36;padding:12px;border-radius:.4rem}
.hill-card p{white-space:pre-line}
.hill-card[hidden],.hill-upgrade[hidden]{display:none}
.hill-search{display:block;max-width:36rem;margin-top:1.5rem}
.hill-search input,.hill-controls select,.hill-controls input{display:block;width:100%;min-height:44px;padding:.65rem;font:inherit;color:var(--ink);background:var(--white);border:1px solid #888;border-radius:.4rem}
.hill-controls{display:flex;flex-wrap:wrap;align-items:end;gap:1rem;margin:1rem 0}
.hill-controls label{flex:1;min-width:min(100%,220px)}
.hill-controls button{min-height:44px}
.hill-upgrade{display:flex;align-items:center;gap:1rem;padding:.8rem 0;border-bottom:1px solid #8885;cursor:pointer}
.hill-upgrade input{width:22px;height:22px;flex-shrink:0}
.hill-upgrade span{flex:1;min-width:0;overflow-wrap:anywhere}
.hill-upgrade small{display:block;margin-top:.25rem}
.hill-totals{position:sticky;bottom:0;background:var(--white);padding:.5rem 1rem;border:1px solid #8888;border-radius:.5rem}
.hill-shortfall{color:#bd3434}
.hill-hero{width:100%;max-width:920px;height:auto;border-radius:.75rem;margin:1rem 0}
.hill-credit{margin-top:2rem;font-size:.85rem}
.hill-spoiler{padding:1rem;border:1px solid #8887;border-radius:.5rem}
.hill-spoiler summary{cursor:pointer;font-weight:700}[data-hill-locale] fieldset{min-width:0}
.hill-controls :focus-visible,.hill-upgrade:focus-within{outline:2px solid #47845e;outline-offset:3px}
