/* Single post (extends style.css + packages.css + blog.css) */
.ps-head{padding:clamp(40px,5vw,72px) 0 clamp(28px,3vw,40px)}
.ps-head .crumbs{margin-bottom:20px}
.ps-head h1{max-width:18em;font-size:clamp(40px,5.2vw,76px);line-height:.98}
.ps-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;margin-top:24px;font-size:15px;color:var(--muted)}
.ps-meta .who{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--ink)}
.ps-meta .who img{width:40px;height:40px;border-radius:50%;object-fit:cover;object-position:top}
.ps-meta a{color:var(--muted)}
.ps-hero{margin:0 0 clamp(32px,4vw,48px)}
.ps-hero img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius)}
.ps-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(32px,5vw,72px);align-items:start}
.prose{max-width:720px;font-size:19px;line-height:1.7}
.prose>*+*{margin-top:1.1em}
.prose p{margin:0}
.prose h2{margin-top:1.8em;font-size:clamp(28px,2.6vw,36px)}
.prose h3{margin-top:1.6em;font-size:clamp(22px,2vw,27px)}
.prose blockquote{margin:1.6em 0;padding:4px 0 4px 28px;border-left:4px solid var(--blue);font-size:clamp(22px,2vw,28px);font-weight:600;font-stretch:90%;line-height:1.35}
.prose blockquote cite{display:block;margin-top:12px;font-size:16px;font-style:normal;font-weight:600;color:var(--muted)}
.prose ol,.prose ul{padding-left:1.4em}
.prose ul{list-style:disc}
.prose li+li{margin-top:.5em}
.prose ol>li::marker{font-weight:800;color:var(--blue-deep)}
.prose ol>li>strong:first-child{display:block;font-size:21px}
.prose a{color:var(--blue-deep)}
.ps-tags{display:flex;flex-wrap:wrap;gap:8px;margin:clamp(40px,5vw,56px) 0 0;padding:24px 0 0;border-top:1px solid var(--line);list-style:none}
.ps-tags a{display:block;padding:6px 12px;background:var(--blue-tint);border-radius:999px;font-size:14px;font-weight:700;color:var(--blue-deep);text-decoration:none}
.ps-tags a:hover{background:var(--blue);color:#fff}
.author{display:grid;grid-template-columns:88px minmax(0,1fr);gap:20px;align-items:center;margin-top:32px;padding:24px;background:var(--paper);border-radius:var(--radius)}
.author img{width:88px;height:88px;border-radius:50%;object-fit:cover;object-position:top}
.author h2{font-size:22px;line-height:1.08;margin-bottom:6px}
.author p{margin:0 0 8px;font-size:16px;color:var(--muted)}
.ps-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:32px}
.ps-nav a{display:flex;flex-direction:column;gap:6px;padding:20px 22px;border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:var(--ink);transition:border-color .2s,background .2s}
.ps-nav a:hover{border-color:var(--blue);background:var(--blue-tint)}
.ps-nav span{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.ps-nav strong{font-size:19px;font-stretch:92%;line-height:1.25}
.ps-nav a:last-child{text-align:right}
.reply{margin-top:clamp(40px,5vw,56px);padding-top:32px;border-top:1px solid var(--line)}
.reply h2{font-size:clamp(26px,2.4vw,34px);margin-bottom:8px}
.reply>p{margin:0 0 24px;font-size:15px;color:var(--muted)}
.reply form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.reply label{display:block;margin-bottom:6px;font-size:14px;font-weight:700}
.reply .full{grid-column:1/-1}
.reply textarea.field{min-height:150px;padding:12px 14px;resize:vertical}
.topiclist{display:grid;gap:0;margin:0;padding:0;list-style:none}
.topiclist a{display:flex;justify-content:space-between;padding:10px 0;border-top:1px solid var(--line);font-size:15px;font-weight:600;color:var(--ink);text-decoration:none}
.topiclist li:first-child a{border-top:0;padding-top:0}
.topiclist a::after{content:"→";color:var(--line);transition:transform .2s,color .2s}
.topiclist a:hover{color:var(--blue-deep)}
.topiclist a:hover::after{color:var(--blue);transform:translateX(3px)}
.topiclist a[aria-current]{color:var(--blue-deep)}
@media (max-width:1100px){.ps-layout{grid-template-columns:minmax(0,1fr)}.prose{max-width:none}}
@media (max-width:620px){
  .prose{font-size:18px}
  .ps-nav,.reply form{grid-template-columns:minmax(0,1fr)}
  .ps-nav a:last-child{text-align:left}
  .author{grid-template-columns:64px minmax(0,1fr)}
  .author img{width:64px;height:64px}
}
