/* Single blog post — page-specific styles (moved from single-blog-post.html inline <style>) */

.dsmt-post-hero{background:var(--dsmt-dark);padding:clamp(64px,8vw,100px) var(--dsmt-gutter) clamp(48px,6vw,72px);position:relative;overflow:hidden}
.dsmt-post-hero-grid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,0.024) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.024) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(90% 70% at 50% 30%,black 20%,transparent 100%)}
.dsmt-post-hero-inner{max-width:900px;margin:0 auto;position:relative;z-index:1}
.dsmt-post-meta{display:flex;gap:16px;flex-wrap:wrap;align-items:center;font-family:'JetBrains Mono',monospace;font-size:0.7rem;letter-spacing:0.07em;text-transform:uppercase;color:rgba(255,255,255,0.4);margin-bottom:24px}
.dsmt-post-meta .dsmt-blue{color:rgba(45,110,245,0.85)}
.dsmt-post-hero h1{font-family:var(--dsmt-font-head);font-weight:800;font-size:clamp(2rem,5.5vw,3.6rem);line-height:1.05;letter-spacing:-0.03em;color:#fff;margin-bottom:20px}
.dsmt-post-hero-excerpt{font-size:clamp(1rem,1.3vw,1.2rem);color:rgba(255,255,255,0.55);line-height:1.65;max-width:60ch}
.dsmt-post-thumb{max-width:900px;margin:0 auto;padding:0 var(--dsmt-gutter);margin-top:-40px;position:relative;z-index:2}
.dsmt-post-thumb .dsmt-placeholder{width:100%;aspect-ratio:16/9;border-radius:var(--dsmt-radius-xl)}
.dsmt-post-thumb img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--dsmt-radius-xl);display:block}
.dsmt-post-body-wrap{max-width:900px;margin:0 auto;padding:clamp(56px,7vw,88px) var(--dsmt-gutter) 0;}
.dsmt-post-content{font-size:1.05rem;line-height:1.8;color:var(--dsmt-ink-2)}
.dsmt-post-content>*+*{margin-top:1.4em}
.dsmt-post-content h2{font-family:var(--dsmt-font-head);font-weight:700;font-size:clamp(1.4rem,2.6vw,1.9rem);letter-spacing:-0.02em;color:var(--dsmt-ink);margin-top:2em}
.dsmt-post-content h3{font-family:var(--dsmt-font-head);font-weight:600;font-size:clamp(1.15rem,2vw,1.4rem);letter-spacing:-0.015em;color:var(--dsmt-ink);margin-top:1.8em}
.dsmt-post-content a{color:var(--dsmt-blue);text-decoration:underline;text-underline-offset:2px}
.dsmt-post-content ul,.dsmt-post-content ol{padding-left:1.4em}
.dsmt-post-content li+li{margin-top:0.5em}
.dsmt-post-content blockquote{border-left:2px solid var(--dsmt-blue);padding-left:24px;font-family:var(--dsmt-font-head);font-weight:500;font-size:1.2rem;letter-spacing:-0.015em;color:var(--dsmt-ink)}
.dsmt-post-content img{border-radius:var(--dsmt-radius-lg);width:100%;height:auto}
.dsmt-post-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:2.4em;padding-top:2em;border-top:1px solid var(--dsmt-line)}
.dsmt-post-nav{max-width:900px;margin:56px auto 0;padding:0 var(--dsmt-gutter);display:grid;grid-template-columns:1fr 1fr;gap:16px;border-top:1px solid var(--dsmt-line);padding-top:32px}
@media(max-width:640px){.dsmt-post-nav{grid-template-columns:1fr}}
.dsmt-post-nav a{display:block;padding:20px;border:1px solid var(--dsmt-line);border-radius:var(--dsmt-radius-lg);text-decoration:none;color:inherit;transition:border-color 0.15s,background 0.15s}
.dsmt-post-nav a:hover{border-color:var(--dsmt-blue);background:var(--dsmt-blue-dim)}
.dsmt-post-nav-label{font-family:'JetBrains Mono',monospace;font-size:0.65rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--dsmt-ink-3);display:block;margin-bottom:8px}
.dsmt-post-nav-title{font-family:var(--dsmt-font-head);font-weight:600;font-size:0.95rem;letter-spacing:-0.015em;color:var(--dsmt-ink)}
.dsmt-post-nav-next{text-align:right}
.dsmt-post-bottom-spacer{height:clamp(56px,7vw,88px)}

/* Blocksy-native single-post elements (Share Box, Author Box, Comments) —
   spacing/width hooks only, so they sit at this template's rhythm; their
   look & feel otherwise comes from Blocksy's own styling. */
.dsmt-share-box{max-width:900px;margin:2.4em auto 0;padding:2em var(--dsmt-gutter) 0;border-top:1px solid var(--dsmt-line)}
.ct-comments-container{padding:clamp(40px,5vw,56px) 0 0}
.ct-comments-container .ct-container-narrow{max-width:900px;margin:0 auto;padding:0 var(--dsmt-gutter)}

/* Related Posts (rendered via blocksy_display_page_elements — see single.php).
   In its "separated" containment (this site's default) Blocksy deliberately
   skips its own width-constraint class, expecting the theme's page shell to
   cap the width; this custom template has no such ambient shell, so without
   this the card grid stretches edge-to-edge and the title/image render at
   an oversized, uncropped size that crowds the "Related Posts" label above
   it. Pin the container width and give the card image/title sane sizing. */
.ct-related-posts-container{padding:clamp(48px,6vw,72px) var(--dsmt-gutter);border-top:1px solid var(--dsmt-line)}
.ct-related-posts-container .ct-container,
.ct-related-posts-container .ct-container-narrow{max-width:1180px;margin:0 auto;padding:0}
.ct-related-posts-container .ct-module-title{font-family:var(--dsmt-font-head);font-weight:700;font-size:clamp(1.3rem,2.2vw,1.7rem);letter-spacing:-0.02em;color:var(--dsmt-ink);margin:0 0 28px}
.ct-related-posts-items{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;list-style:none;padding:0;margin:0}
@media(max-width:900px){.ct-related-posts-items{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.ct-related-posts-items{grid-template-columns:1fr}}
.ct-related-posts-items>article,
.ct-related-posts-items .entry-card{display:block;margin:0}
.ct-related-posts-items .ct-media-container{display:block}
.ct-related-posts-items figure,
.ct-related-posts-items .ct-media-container,
.ct-related-posts-items .ct-media-container img{border-radius:var(--dsmt-radius-lg);overflow:hidden}
.ct-related-posts-items img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;margin:0}
.related-entry-title{display:block;font-family:var(--dsmt-font-head);font-weight:600;font-size:1.05rem;line-height:1.35;letter-spacing:-0.01em;color:var(--dsmt-ink);margin:16px 0 0}
.related-entry-title a{color:inherit;text-decoration:none}
.related-entry-title a:hover{color:var(--dsmt-blue)}
.ct-related-posts-items .entry-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-family:'JetBrains Mono',monospace;font-size:0.65rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--dsmt-ink-3);list-style:none;padding:0;margin:8px 0 0}
