/* beta additions on top of base.css: fuller footer, blog index, directories, prose extras */
footer.site{padding:3.2rem 0 2rem}
footer.site .wrap{display:block}
.wrap.post-body{padding-left:var(--gut);padding-right:var(--gut)}
footer.site .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}
@media(max-width:900px){footer.site .cols{grid-template-columns:1fr 1fr}}
@media(max-width:520px){footer.site .cols{grid-template-columns:1fr}}
footer.site h4{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--text-faint);margin:0 0 1rem;font-weight:500}
footer.site .col a{display:block;color:var(--text-soft);padding:.28rem 0;font-size:.9rem}
footer.site .col a:hover{color:var(--text)}
footer.site .brandcol p{margin-top:1rem;max-width:32ch;color:var(--text-soft);font-size:.9rem}
footer.site .bottom{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-top:2.6rem;
  padding-top:1.4rem;border-top:1px solid var(--line)}
.hero-img{margin:2.2rem 0 0;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);aspect-ratio:16/9;background:var(--bg-2)}
.hero-img img{width:100%;height:100%;object-fit:cover;display:block}
article img{max-width:100%;height:auto;border-radius:10px}
article pre{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:1rem 1.1rem;overflow:auto;
  font-size:.85rem;line-height:1.55}
article code{font-family:var(--mono);font-size:.88em}
article :not(pre)>code{background:var(--bg-2);border:1px solid var(--line);border-radius:6px;padding:.08em .35em}
article table{display:block;overflow-x:auto}
article h1{font-size:clamp(1.6rem,2.8vw,2.2rem);color:var(--text);margin-top:3.2rem}
article h4{font-size:1.02rem;color:var(--text);margin-top:1.8rem}
.byline{display:flex;gap:1.2rem;align-items:center;margin-top:3.2rem}
.byline .avatar{width:52px;height:52px;font-size:1.05rem}
.byline p{font-size:.9rem;color:var(--text-faint)}
/* directories */
.dir-head{padding:clamp(3rem,7vw,5.5rem) 0 clamp(1.5rem,3vw,2.5rem)}
.dir-head h1{margin:1.5rem 0 0;max-width:18ch}
.dir-head .lede{margin-top:1.5rem}
.crumbs{font-family:var(--mono);font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--text-faint);display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1.5rem}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--text-soft)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
@media(max-width:980px){.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.cards{grid-template-columns:1fr}}
.cardlink{display:flex;flex-direction:column;text-decoration:none;background:var(--bg-2);border:1px solid var(--line);
  border-radius:var(--r);padding:1.7rem 1.5rem;transition:border-color .3s,transform .3s var(--ease)}
.cardlink:hover{border-color:var(--line-strong);transform:translateY(-3px)}
.cardlink .brand{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--data)}
.cardlink h3{margin:.9rem 0 .6rem;font-size:1.12rem}
.cardlink p{font-size:.92rem;color:var(--text-soft);line-height:1.55}
.cardlink .ms{display:flex;gap:1.6rem;margin:1rem 0 .2rem;flex-wrap:wrap}
.cardlink .ms .k{font-size:1.7rem;font-weight:800;letter-spacing:-0.04em;line-height:1;color:var(--text)}
.cardlink .ms .l{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);margin-top:.35rem}
.cardlink .tagrow{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.2rem}
.cardlink .tagrow span{font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--text-faint);border:1px solid var(--line);border-radius:999px;padding:.25rem .6rem}
.cardlink .go{margin-top:auto;padding-top:1.1rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--text-faint)}
.cardlink:hover .go{color:var(--accent)}
/* blog index */
.bsearch{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-top:2rem}
.bsearch input{flex:1;min-width:220px;max-width:460px;padding:.85rem 1.05rem;background:var(--bg-2);border:1px solid var(--line);
  border-radius:999px;color:var(--text);font:inherit;font-size:.95rem}
.bsearch input:focus{outline:none;border-color:var(--accent)}
.bsearch .count{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}
.plist{border-top:1px solid var(--line);margin-top:2rem}
.prow{display:grid;grid-template-columns:130px minmax(0,1fr) 160px;gap:1.5rem;padding:1.35rem 0;border-bottom:1px solid var(--line);
  text-decoration:none;align-items:baseline;transition:background .3s}
.prow:hover{background:oklch(0.66 0.20 33 / .045)}
.prow .d{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}
.prow h3{font-size:1.08rem}
.prow:hover h3{color:var(--accent)}
.prow p{font-size:.9rem;color:var(--text-soft);margin-top:.4rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.prow .c{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--data);text-align:right}
@media(max-width:760px){.prow{grid-template-columns:1fr;gap:.4rem}.prow .c{text-align:left}}
.feat{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2.4rem}
@media(max-width:900px){.feat{grid-template-columns:1fr}}
.feat a{display:block;text-decoration:none;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  transition:border-color .3s,transform .3s var(--ease)}
.feat a:hover{border-color:var(--line-strong);transform:translateY(-3px)}
.feat img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.feat .b{padding:1.3rem 1.4rem 1.5rem}
.feat .d{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}
.feat h3{margin-top:.6rem;font-size:1.06rem}
.stat .k.txt{font-size:clamp(1.5rem,2.6vw,2rem)}
.cellgrid .cell h3{margin:.95rem 0 0}
