/* Hokay — page détail d'une publication (texte, image, vidéo, audio, reel, défi).
   S'appuie sur project_detail.css (tokens, topbar, cartes, commentaires, lightbox). */
.pd-wrap.pv-narrow{max-width:760px;}

.pv-post{background:var(--card);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;position:relative;}
.pv-head{display:flex;align-items:flex-start;gap:12px;padding:18px 20px 0;}
.pv-head .pd-author{margin:0;flex:1;min-width:0;}
.pv-head .pd-author img{width:48px;height:48px;}
.pv-kicker{display:inline-flex;align-items:center;gap:6px;font-size:.68rem;font-weight:700;letter-spacing:.9px;text-transform:uppercase;
  color:var(--ember);background:var(--ember-dim);border:1px solid var(--ember-border);border-radius:999px;padding:3px 10px;white-space:nowrap;}
.pv-body{padding:16px 20px 4px;}
.pv-text{font-size:1.02rem;line-height:1.75;color:var(--sand);overflow-wrap:anywhere;}
.pv-text strong{color:var(--sand);}
.pv-text a{color:var(--ember);text-decoration:underline;text-underline-offset:2px;}
.pv-text .hashtag{color:var(--ember);font-weight:600;}
.pv-text .mention{color:var(--blue);font-weight:600;}
.pv-text.short{font-size:1.25rem;line-height:1.55;}
.pv-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.pv-media{margin:16px 0 0;}
.pv-post .pd-engage{margin:16px 20px 0;}
.pv-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:12px 20px 16px;font-size:.78rem;color:var(--fog);}
.pv-meta span{display:inline-flex;align-items:center;gap:6px;}
.pv-extra{padding:0 20px;display:flex;flex-direction:column;gap:12px;margin-top:16px;}

/* Images */
.pv-imgs{display:grid;gap:4px;background:var(--card2);}
.pv-imgs.n1{grid-template-columns:1fr;}
.pv-imgs.n2{grid-template-columns:1fr 1fr;}
.pv-imgs.n3{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;}
.pv-imgs.n3 .pv-img:first-child{grid-row:span 2;}
.pv-imgs.n4,.pv-imgs.n5{grid-template-columns:1fr 1fr;}
.pv-img{position:relative;overflow:hidden;cursor:zoom-in;background:var(--card2);border:none;padding:0;display:block;}
.pv-imgs.n1 .pv-img img{width:100%;height:auto;max-height:640px;object-fit:contain;display:block;background:var(--card2);}
.pv-imgs:not(.n1) .pv-img{aspect-ratio:4/3;}
.pv-imgs:not(.n1) .pv-img img{width:100%;height:100%;object-fit:cover;display:block;}
.pv-imgs.n3 .pv-img{aspect-ratio:auto;min-height:150px;}
.pv-more{position:absolute;inset:0;background:rgba(0,0,0,.55);color:#fff;font-family:var(--head);font-weight:800;font-size:1.6rem;display:flex;align-items:center;justify-content:center;}

/* Vidéo / reel */
.pv-video{position:relative;background:#000;}
.pv-video video{width:100%;max-height:70vh;display:block;background:#000;}
.pv-video-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;border-top:1px solid var(--border);background:var(--card2);}
.pv-video-title{font-family:var(--head);font-weight:700;font-size:.95rem;color:var(--sand);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pv-reel{display:flex;justify-content:center;background:var(--card2);padding:16px 0;}
.pv-reel video{width:100%;max-width:340px;aspect-ratio:9/16;max-height:72vh;object-fit:cover;border-radius:var(--r);background:#000;}
.pv-note{padding:26px 20px;text-align:center;color:var(--fog);font-size:.88rem;background:var(--card2);}

/* Audio */
.pv-audio{display:flex;gap:14px;align-items:center;margin:0 20px;padding:16px;background:var(--card2);border:1px solid var(--border);border-radius:var(--r);}
.pv-audio-ico{width:54px;height:54px;border-radius:var(--r-sm);background:var(--ember-dim);border:1px solid var(--ember-border);color:var(--ember);
  display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0;}
.pv-audio-info{flex:1;min-width:0;}
.pv-audio-title{font-family:var(--head);font-weight:700;color:var(--sand);font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pv-audio-artist{font-size:.8rem;color:var(--fog);margin:2px 0 8px;}
.pv-audio audio{width:100%;height:36px;}

/* Défi réussi */
.pv-challenge{margin:0 20px;padding:18px;border-radius:var(--r);border:1px solid var(--ember-border);
  background:linear-gradient(135deg,var(--ember-dim),transparent 70%),var(--card2);}
.pv-challenge-title{font-family:var(--head);font-weight:800;font-size:1.15rem;color:var(--sand);margin:6px 0 14px;}
.pv-challenge-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-bottom:14px;}
.pv-challenge-stats div{background:var(--card);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px;text-align:center;}
.pv-challenge-stats b{display:block;font-family:var(--head);font-size:1.25rem;color:var(--sand);}
.pv-challenge-stats small{font-size:.66rem;text-transform:uppercase;letter-spacing:.6px;color:var(--fog);}

/* Preuve de travail (bandeau) */
.pv-proof{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;border-radius:var(--r-sm);
  border:1px solid color-mix(in srgb,var(--green) 35%,transparent);background:color-mix(in srgb,var(--green) 8%,transparent);}
.pv-proof b{color:var(--green);font-size:.82rem;display:inline-flex;align-items:center;gap:6px;}
.pv-proof span{font-size:.78rem;color:var(--sand2);}
.pv-proof a{margin-left:auto;font-size:.8rem;font-weight:600;color:var(--ember);text-decoration:none;}
.pv-proof.pending{border-color:var(--border2);background:var(--card2);}
.pv-proof.pending b{color:var(--yellow);}

.pv-discuss{margin-top:16px;}
@media (max-width:520px){
  .pv-head,.pv-body{padding-left:16px;padding-right:16px;}
  .pv-post .pd-engage{margin-left:16px;margin-right:16px;}
  .pv-extra{padding-left:16px;padding-right:16px;}
  .pv-audio,.pv-challenge{margin-left:16px;margin-right:16px;padding:14px;}
  .pv-meta{padding-left:16px;padding-right:16px;}
}
