/* Projects section: listing cards, blog-style posts, photo gallery. Builds on ../assets/site.css. */
.post-list{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:30px}
.post-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;transition:transform .2s,border-color .2s}
.post-card:hover{transform:translateY(-4px);border-color:#93a977}
.post-card .cover{aspect-ratio:16/10;background:#e3f0f7;overflow:hidden}
.post-card .cover img{width:100%;height:100%;object-fit:cover;display:block}
.post-card .body{padding:22px;display:flex;flex-direction:column;flex:1}
.post-card h2{font-size:23px;margin:6px 0 10px;letter-spacing:-.6px}
.post-card p{font-size:14px;color:var(--muted);margin:0 0 16px}
.post-card .more{margin-top:auto;font-size:13px;font-weight:700}
.post-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted);align-items:center}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.tags span{background:#edf0e4;color:#5c6c4d;padding:3px 9px;border-radius:5px;font-size:10px;font-weight:700;letter-spacing:.8px}
.coming{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;border:1px dashed #ccd3c2;border-radius:20px;padding:30px;color:var(--muted);font-size:14px;text-align:center}
.coming span{font-size:34px}

.post{max-width:780px;margin:0 auto;padding-bottom:20px}
.post-hero{padding:10px 0 26px}
.post-hero h1{margin-bottom:16px}
.post-hero .lead{max-width:none}
.post-cover{margin:28px 0 10px;border-radius:24px;overflow:hidden;background:#eaf4fa;border:1px solid var(--line)}
.post-cover img{display:block;width:100%;height:auto}
.post-cover figcaption,.post figure figcaption{font-size:12px;color:var(--muted);padding:10px 16px}
.post h2{font-size:28px;margin:46px 0 14px}
.post h3{font-size:19px;margin:26px 0 8px}
.post p,.post li{font-size:16.5px;line-height:1.75;color:#38433a}
.post ul{padding-left:22px}
.post blockquote{margin:24px 0;padding:18px 22px;background:#edf0e5;border-left:4px solid #93a977;border-radius:0 14px 14px 0;font-size:17px;color:var(--ink)}
.post blockquote p{margin:0;color:var(--ink)}
.post blockquote cite{display:block;margin-top:8px;font-size:13px;font-style:normal;color:var(--muted)}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 10px}
.facts div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.facts b{display:block;font-size:11px;letter-spacing:1px;color:#596849;margin-bottom:4px}
.facts span{font-size:14px}
.how{list-style:none;padding:0;margin:20px 0;display:grid;gap:12px;counter-reset:how}
.how li{display:grid;grid-template-columns:42px 1fr;gap:14px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;counter-increment:how}
.how li:before{content:counter(how);display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#2a9bd8;color:#fff;font-weight:800;font-size:18px}
.how strong{display:block;font-size:17px;color:var(--ink)}
.how p{margin:2px 0 0;font-size:15px}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}
.gallery a{display:block;border-radius:12px;overflow:hidden;aspect-ratio:1;background:#eef1e6}
.gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.gallery a:hover img{transform:scale(1.04)}
.gallery a.wide{grid-column:span 2;aspect-ratio:auto}
.gallery.two{grid-template-columns:repeat(2,1fr)}.gallery.two a{aspect-ratio:3/4}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:#fff;margin:18px 0}
.parts{width:100%;border-collapse:collapse;font-size:14.5px}
.parts th{background:#234d39;color:#fff;text-align:left;padding:11px 14px;font-size:12px;letter-spacing:.6px}
.parts td{padding:10px 14px;border-top:1px solid #edf0e6;vertical-align:top;color:#38433a}
.parts td:first-child{font-weight:700;color:var(--ink)}.parts td:nth-child(2){white-space:nowrap;color:var(--muted)}
.parts tbody tr:nth-child(even){background:#fafbf6}
.download{margin:0 0 6px}
.post-video{margin:22px 0;text-align:center}
.post-video video{display:block;width:100%;max-width:340px;aspect-ratio:464/832;margin:0 auto;border-radius:16px;background:#000}
.post-video figcaption{font-size:13px;color:var(--muted);max-width:420px;margin:10px auto 0}
.lightbox{border:0;padding:0;background:transparent;max-width:min(96vw,1100px);max-height:94vh}
.lightbox::backdrop{background:#0d140fe6}
.lightbox img{display:block;max-width:100%;max-height:82vh;margin:auto;border-radius:10px}
.lightbox p{color:#e8eee4;text-align:center;font-size:14px;margin:12px 50px 0}
.lightbox button{position:fixed;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:0;background:#ffffff26;color:#fff;font-size:22px}
.lightbox button:hover{background:#ffffff40}
.lightbox .prev{left:14px}.lightbox .next{right:14px}
.lightbox .close{top:16px;right:16px;transform:none}
.post-cta{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--green);color:#fff;border-radius:18px;padding:24px 26px;margin:46px 0 10px}
.post-cta p{margin:0;color:#e3ecdc;font-size:14px}.post-cta strong{display:block;color:#fff;font-size:19px}
.post-cta .button{background:var(--lime);color:var(--ink);white-space:nowrap}
.post-nav{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:22px;margin-top:40px;font-size:14px;font-weight:700}
@media(max-width:900px){.post-list{grid-template-columns:repeat(2,1fr)}.facts{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.post-list{grid-template-columns:1fr}.post h2{font-size:24px}.post p,.post li{font-size:16px}.gallery{grid-template-columns:repeat(2,1fr)}.gallery a.wide{grid-column:span 2}.post-cta{flex-direction:column;align-items:flex-start}.lightbox button.prev,.lightbox button.next{top:auto;bottom:14px;transform:none}}
