/* Páginas próprias dos projetos (geradas pelo seo_build.py). A base vem do blog/blog.css. */
.proj{padding-bottom:clamp(40px,6vw,80px)}
.proj .back{display:inline-block;margin:28px 0 0;font:500 13px/1.4 var(--mono);color:var(--mute);text-decoration:none}
.proj .back:hover{color:var(--ink)}
.pj-h{padding:clamp(28px,5vw,64px) 0 clamp(24px,3vw,40px);max-width:60em}
.pj-h h1{font-size:clamp(40px,6vw,84px);line-height:.98;letter-spacing:-.035em;margin-top:16px}
.pj-h .tag{font:500 clamp(19px,2vw,24px)/1.35 var(--display);margin-top:18px;max-width:30em}
.pj-h .nota{margin-top:16px;font-size:14.5px;color:var(--mute);max-width:44em;border-left:2px solid var(--line2);padding-left:12px}
.capa{margin:0;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--soft)}
.capa img{width:100%;height:auto}
.pj-s{padding-top:clamp(48px,7vw,96px)}
.pj-s h2{font-size:clamp(28px,3.4vw,46px);line-height:1.04;letter-spacing:-.03em;margin-top:12px}
.pj-s.two{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.25fr);gap:clamp(20px,5vw,88px);align-items:start}
.pj-s .txt p{max-width:38em;margin:0 0 14px}
.pj-s .txt p:last-child{margin-bottom:0}
.pj-s .def{font:500 clamp(20px,2vw,26px)/1.35 var(--display)}
.pj-s .aud{color:var(--mute)}
.pal{margin-top:22px}.pal ul,.ent,.fontes,.cores,.outros,.voz ul{list-style:none;margin:0;padding:0}
.pal ul{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.pal li{border:1.5px solid var(--line2);border-radius:999px;padding:7px 13px;font:500 14px/1 var(--body)}
.passos{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;counter-reset:pa}
.passos li{border-top:1px solid var(--ink);padding-top:14px;counter-increment:pa}
.passos li::before{content:counter(pa,decimal-leading-zero);font:500 12px/1 var(--mono);color:var(--mute)}
.passos h3{font-size:21px;margin:10px 0 8px}
.passos p{color:var(--mute);font-size:15.5px}
.figs,.apps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:28px}
.apps{grid-template-columns:repeat(3,minmax(0,1fr))}
.figs figure,.apps figure{margin:0}
.figs img,.apps img{width:100%;height:auto;border:1px solid var(--line);border-radius:3px;background:var(--soft)}
.figs figcaption,.apps figcaption{margin-top:8px}
.cores{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin-bottom:16px}
.cores li{display:grid;gap:4px}
.cores .sw{display:block;aspect-ratio:3/2;border-radius:3px;border:1px solid var(--line)}
.fontes{display:grid;gap:12px;margin-bottom:16px}.fontes li{display:grid;gap:2px}.fontes b{font:600 22px/1.2 var(--display)}
.voz{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
.voz li{margin-top:8px;font-size:15.5px}.voz .nao li{color:var(--mute);text-decoration:line-through;text-decoration-color:var(--line2)}
.ent li{padding:10px 0;border-bottom:1px solid var(--line)}
.acoes{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.outros{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0 24px;margin-top:22px}
.outros a{display:grid;gap:2px;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none}
.outros a:hover b{text-decoration:underline;text-underline-offset:4px}
.pj-th{aspect-ratio:16/9;overflow:hidden;border:1px solid var(--line);border-radius:3px;background:var(--soft)}
.pj-th img{width:100%;height:100%;object-fit:cover}
@media (max-width:860px){.pj-s.two{grid-template-columns:1fr}.apps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.figs,.apps,.voz{grid-template-columns:1fr}}
