@keyframes slideIn{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}:root{--bg-primary:#faf8f3;--bg-secondary:#f0ebe2;--text-primary:#1a1410;--text-secondary:#5a4f47;--accent-primary:#9a6f0a;--accent-warm:#c45a2e;--accent-cool:#3a6b76;--border-color:#ddd2c5;--code-bg:#1a1410;--code-fg:#faf8f3;--muted:#5a4f47;--subtle:#8b8178;--font-display:'Outfit', sans-serif;--font-body:'Lora', serif;--font-mono:'JetBrains Mono', monospace;--space-xs:0.5rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2rem;--space-xl:3rem;--space-2xl:4rem;--max-width:800px;--transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1)}@media (prefers-color-scheme:dark){:root{--bg-primary:#1a1714;--bg-secondary:#232018;--text-primary:#e8e1d5;--text-secondary:#a89980;--accent-primary:#d4a857;--accent-warm:#e8926a;--accent-cool:#6ba6af;--border-color:#3a3228;--code-bg:#0f0d0a;--code-fg:#e8e1d5;--muted:#a89980;--subtle:#8b7d6f}}html{scroll-behavior:smooth}body{margin:0;padding:0;background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-body);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.skip-link,a{text-decoration:none}a{color:var(--accent-primary);transition:var(--transition);border-bottom:1px solid transparent;padding-bottom:2px}a:hover{color:var(--accent-warm);border-bottom-color:var(--accent-warm)}.skip-link{position:absolute;top:-40px;left:0;background:var(--accent-primary);color:var(--bg-primary);padding:var(--space-sm);z-index:100}.skip-link:focus{top:0}.h3{font-size:13px;color:var(--subtle);margin:0 0 6px;font-weight:600;text-transform:uppercase}.blog-header{background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);border-bottom:1px solid var(--border-color);padding:var(--space-lg) var(--space-md);position:sticky;top:0;z-index:10}.blog-container,.breadcrumb{max-width:var(--max-width);margin:0 auto}.breadcrumb{display:flex;gap:var(--space-sm);font-size:.95rem;color:var(--text-secondary)}.breadcrumb a{color:var(--accent-primary);border-bottom:1px solid transparent}.breadcrumb a:hover{border-bottom-color:var(--accent-primary)}.breadcrumb .sep{opacity:.5}.archive-intro h1,.breadcrumb .current{color:var(--text-primary);font-weight:500}.blog-container{padding:var(--space-2xl) var(--space-md);min-height:calc(100vh - 200px)}.archive-intro{margin-bottom:var(--space-2xl);padding-bottom:var(--space-xl);border-bottom:2px solid var(--border-color)}.archive-intro h1{font-family:var(--font-display);font-size:3rem;font-weight:800;margin:0 0 var(--space-md)0;line-height:1.1}.archive-intro p{font-size:1.1rem;color:var(--text-secondary);margin:0 0 var(--space-lg)0}.archive-stats{display:flex;gap:var(--space-lg);font-size:.95rem;color:var(--text-secondary)}.archive{margin-bottom:var(--space-2xl)}.archive-year{margin-bottom:var(--space-xl)}.archive-year h3,.archive-year li{border-bottom:1px solid var(--border-color)}.archive-year h3{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--accent-primary);margin:0 0 var(--space-lg)0;padding-bottom:var(--space-sm)}.archive-year ul{list-style:none;padding:0;margin:0}.archive-year li{display:flex;justify-content:space-between;align-items:baseline;padding:var(--space-md)0;opacity:0;animation:slideIn .5s ease forwards;gap:var(--space-sm);flex-wrap:wrap}.archive-year li:nth-child(1){animation-delay:.05s}.archive-year li:nth-child(2){animation-delay:.1s}.archive-year li:nth-child(3){animation-delay:.15s}.archive-year li:nth-child(4){animation-delay:.2s}.archive-year li:nth-child(5){animation-delay:.25s}.archive-year li:nth-child(n+6){animation-delay:.3s}.archive-year a{color:var(--text-primary);flex:1;min-width:0}.archive-year a:hover{color:var(--accent-warm)}.archive-views{display:inline-flex;align-items:center;gap:0.25rem;font-size:0.85rem;color:var(--text-secondary);white-space:nowrap;padding:0.2rem 0.5rem;background:var(--bg-secondary);border-radius:4px}.view-icon{font-size:0.9rem;opacity:0.8}.view-count{font-weight:600;min-width:1.5rem;text-align:center}.archive-date{color:var(--text-secondary);font-size:.95rem;white-space:nowrap}.post,.post-header{margin-bottom:var(--space-2xl)}.post-header{padding-bottom:var(--space-xl);border-bottom:2px solid var(--border-color)}.post-content h2,.post-content h3,.post-title{font-family:var(--font-display);color:var(--text-primary)}.post-title{font-size:2.5rem;font-weight:800;margin:0 0 var(--space-lg)0;line-height:1.2;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}.post-meta{display:flex;gap:var(--space-md);font-size:.95rem;color:var(--text-secondary);margin-bottom:var(--space-lg)}.post-date{font-weight:500}.post-content code,.tag{background:var(--bg-secondary)}.tag,.tag:hover{border-bottom:none}.tag{display:inline-block;color:var(--accent-primary);padding:var(--space-xs) var(--space-sm);border-radius:4px;font-size:.85rem;font-weight:500;margin:var(--space-xs) var(--space-xs)0 0}.tag:hover{background:var(--border-color)}.post-content{margin-bottom:var(--space-2xl)}.post-content h2,.post-content h3{font-size:1.8rem;font-weight:700;margin:var(--space-2xl)0 var(--space-lg)0}.post-content h3{font-size:1.4rem;font-weight:600;margin:var(--space-xl)0 var(--space-md)0}.post-content p,.post-content pre{margin:0 0 var(--space-lg)0}.post-content ol,.post-content ul{margin:0 0 var(--space-lg) var(--space-lg);padding-left:var(--space-lg)}.post-content li{margin-bottom:var(--space-sm)}.post-content blockquote{margin:var(--space-lg)0;padding:var(--space-md)0 var(--space-md) var(--space-lg);border-left:4px solid var(--accent-primary);font-style:italic;color:var(--text-secondary)}.post-content code{font-family:var(--font-mono);padding:2px 6px;border-radius:3px;font-size:.9em}.post-content pre{background:var(--code-bg);color:var(--code-fg);padding:var(--space-lg);border-radius:6px;overflow-x:auto;font-family:var(--font-mono);font-size:.9rem;line-height:1.5}.post-content pre code{background:0 0;padding:0;border-radius:0}.post-content img{max-width:100%;height:auto;margin:var(--space-lg)0;border-radius:6px;border:1px solid var(--border-color)}.post-content table{width:100%;border-collapse:collapse;margin:var(--space-lg)0}.post-content td,.post-content th{padding:var(--space-sm);border:1px solid var(--border-color);text-align:left}.post-content th{background:var(--bg-secondary);font-weight:600}.post-footer{padding-top:var(--space-xl);border-top:2px solid var(--border-color)}.post-nav{display:flex;gap:var(--space-md)}.btn{display:inline-block;padding:var(--space-sm) var(--space-md);border-radius:4px;font-family:var(--font-display);font-weight:600;text-decoration:none;border:1px solid var(--border-color);transition:var(--transition);cursor:pointer}.btn-primary{background:var(--accent-primary);color:var(--bg-primary);border-color:var(--accent-primary)}.btn-primary:hover{background:var(--accent-warm);border-color:var(--accent-warm)}.btn-secondary{background:0 0;color:var(--accent-primary);border-color:var(--border-color)}.btn-secondary:hover{background:var(--bg-secondary);border-color:var(--accent-primary)}.blog-footer,.tag-post-list li{display:flex;justify-content:space-between}.blog-footer{margin:32px auto 4px;max-width:var(--max-width);padding:14px var(--space-md)0 var(--space-md);align-items:center;color:var(--muted);font-size:13px;border-top:1px solid rgba(0,132,255,.15)}.footer-stack-label{margin:0;font-size:12px;color:var(--subtle);letter-spacing:.14em;text-transform:uppercase}.blog-footer img{height:12px;vertical-align:middle;margin:0 4px;opacity:.85;transition:opacity .2s ease}.blog-footer img:hover{opacity:1}.archive-footer{margin-top:var(--space-2xl);padding-top:var(--space-xl);border-top:2px solid var(--border-color)}.tag-page .archive-intro h1::before{content:"";display:inline-block;width:12px;height:12px;background:var(--accent-primary);border-radius:2px;margin-right:var(--space-sm);vertical-align:middle}.tag-post-list{list-style:none;padding:0;margin:0}.tag-post-list li{align-items:baseline;padding:var(--space-md)0;border-bottom:1px solid var(--border-color)}.archive-year a,.tag-post-list a{font-weight:500;flex:1}@media (max-width:900px){:root{--space-2xl:2rem;--space-xl:1.75rem;--space-lg:1.5rem}.blog-container{padding:var(--space-lg) var(--space-md)}.blog-footer{flex-direction:column;align-items:flex-start;gap:6px}.archive-intro h1{font-size:2.2rem}.post-title{font-size:2rem}.post-content h2{font-size:1.5rem}}@media (max-width:640px){:root{--space-lg:1.25rem;--space-md:1rem;--space-sm:0.75rem;--space-xs:0.5rem;--radius-lg:10px}.blog-container{padding:18px 14px 30px}.blog-header{padding:var(--space-md) var(--space-sm)}.breadcrumb{font-size:.9rem;gap:var(--space-xs)}.archive-intro h1,.post-title{font-size:1.75rem;margin-bottom:var(--space-md)}.archive-intro p{font-size:.95rem;line-height:1.5}.post-title{font-size:1.5rem}.post-meta{gap:var(--space-xs);font-size:.9rem}.post-content h2,.post-content h3{font-size:1.25rem;margin-top:var(--space-lg);margin-bottom:var(--space-sm)}.post-content h3{font-size:1rem;margin-top:var(--space-md)}.breadcrumb,.post-meta{flex-wrap:wrap}.archive-year li,.tag-post-list li{flex-direction:column;align-items:flex-start;gap:var(--space-xs)}.archive-year li>a{margin-bottom:var(--space-xs)}.archive-meta{display:flex;gap:var(--space-sm);align-items:center;width:100%}.archive-views{font-size:0.8rem;padding:0.15rem 0.4rem}.tag-post-list li{padding:var(--space-md);gap:var(--space-xs)}.tag-post-list .post-title{font-size:1.3rem}.archive-date,.tag-post-list .archive-date{margin-left:0;font-size:.9rem}.archive-footer{padding:var(--space-lg)0}.btn{font-size:.95rem;padding:var(--space-sm) var(--space-md)}.blog-footer{font-size:12px;padding:14px 14px 0}.footer-stack-label{font-size:11px}}
.post-hero {
  margin: 2rem 0 1.5rem;
}
/* Blog post hero wrapper – desktop / tablet baseline */
.blog-post .post-hero[data-hero-wrapper] {
  margin: 2rem 0 1.5rem;
  border-radius: 16px;
  overflow: hidden;
  background: var(--bg-secondary);
  /* Hard cap so it never dominates the viewport */
  max-height: clamp(160px, 35vw, 320px);
}

/* Hero image – landscape banner by default */
.blog-post .post-hero[data-hero-wrapper] img[data-hero-img] {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

/* Mobile / small tablet: very slim banner */
@media (max-width: 900px) {
  .blog-post .post-hero[data-hero-wrapper] {
    margin: 1.25rem 0 1rem;
    border-radius: 12px;
    /* Even stricter cap on vertical space */
    max-height: clamp(100px, 28vw, 180px);
  }

  .blog-post .post-hero[data-hero-wrapper] img[data-hero-img] {
    /* Strong letterbox for phones */
    aspect-ratio: 4 / 1;
    height: 100%;
  }
}

/* RSS Link Styles */
.stats-divider {
  color: #666;
}
.rss-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: #f90;
  text-decoration: none;
  font-weight: 500;
  padding: 0.25rem 0.6rem;
  border-radius: 4px;
  transition: background 0.2s, color 0.2s;
}
.rss-link:hover {
  background: rgba(255, 153, 0, 0.1);
}
.rss-icon {
  width: 14px;
  height: 14px;
}
@media (prefers-color-scheme: dark) {
  .stats-divider { color: #888; }
  .rss-link { color: #ffb347; }
  .rss-link:hover { background: rgba(255, 179, 71, 0.15); }
}
