﻿/* Iron & Ember â€” Components
   BEM naming throughout. No hardcoded values â€” use var() from tokens.css.
   Order: nav â†’ layout â†’ footer â†’ hero â†’ home sections â†’ content â†’ interactive
   ========================================================================== */


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   NAV
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.nav {
  position:        fixed;
  top:             0;
  left:            0;
  right:           0;
  z-index:         100;
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  padding:         0 var(--space-8);
  height:          var(--nav-height);
  background:      var(--color-surface-steel);
  border-bottom:   1px solid var(--color-border-dark);
}

.nav__brand {
  display:     flex;
  align-items: center;
  gap:         var(--space-8);
}

.nav__logo {
  display:         flex;
  align-items:     center;
  gap:             var(--space-2);
  text-decoration: none;
}

.nav__logo-img {
  display: block;
  width:   32px;
  height:  32px;
}

.nav__logo-text {
  font-weight:    800;
  font-size:      1rem;
  letter-spacing: 0.05em;
  color:          var(--color-accent);
}

.nav__links {
  display:     flex;
  align-items: center;
  gap:         var(--space-6);
  list-style:  none;
}

.nav__link {
  font-size:       0.875rem;
  font-weight:     500;
  color:           var(--color-text-inverse);
  text-decoration: none;
  opacity:         0.75;
  transition:      opacity 0.15s, color 0.15s;
  text-transform:  capitalize;
}

.nav__link:hover {
  color:   var(--color-text-inverse);
  opacity: 1;
}

.nav__link--active {
  color:   var(--color-text-inverse);
  opacity: 1;
}

.nav__actions {
  display:     flex;
  align-items: center;
  gap:         var(--space-3);
}

/* Dark mode toggle stub â€” no JS in sprint 1 */
.nav__toggle-theme {
  display:       none;
  align-items:   center;
  justify-content: center;
  width:         32px;
  height:        32px;
  background:    transparent;
  border:        none;
  border-radius: var(--radius-pill);
  color:         var(--color-text-inverse);
  opacity:       0.7;
  cursor:        pointer;
  transition:    opacity 0.15s;
}

body[data-page="docs"] .nav__toggle-theme {
  display: flex;
}

.nav__toggle-theme:hover {
  opacity: 1;
}

.nav__toggle-theme:focus-visible {
  outline:        2px solid var(--color-accent);
  outline-offset: 2px;
  opacity:        1;
}

/* Shared CTA base */
.nav__cta {
  display:         inline-flex;
  align-items:     center;
  font-family:     var(--font-sans);
  font-size:       0.875rem;
  font-weight:     700;
  padding:         0.4rem 1rem;
  border-radius:   var(--radius-button);
  text-decoration: none;
  cursor:          pointer;
  transition:      opacity 0.15s, transform 0.1s;
  white-space:     nowrap;
}

.nav__cta:active {
  transform: scale(0.97);
}

.nav__cta--ghost {
  background:  transparent;
  border:      1px solid var(--color-border-dark);
  color:       var(--color-text-inverse);
}

.nav__cta--ghost:hover {
  color:        var(--color-text-inverse);
  border-color: var(--color-text-inverse);
  opacity:      0.9;
}

.nav__cta--primary {
  background: var(--gradient-cta);
  border:     1px solid transparent;
  color:      var(--color-text-on-accent);
}

.nav__cta--primary:hover {
  color:   var(--color-text-on-accent);
  opacity: 0.9;
}

/* Mobile hamburger â€” hidden by default */
.nav__toggle {
  display:       none;
  align-items:   center;
  justify-content: center;
  width:         36px;
  height:        36px;
  background:    transparent;
  border:        none;
  color:         var(--color-text-inverse);
  cursor:        pointer;
}

/* Mobile nav */
@media (max-width: 767px) {
  .nav {
    padding: 0 var(--space-4);
  }

  .nav__toggle {
    display: flex;
  }

  .nav__links {
    display:        none;
    position:       absolute;
    top:            var(--nav-height);
    left:           0;
    right:          0;
    flex-direction: column;
    align-items:    flex-start;
    gap:            0;
    background:     var(--color-surface-steel);
    border-bottom:  1px solid var(--color-border-dark);
    padding:        var(--space-2) 0;
    list-style:     none;
  }

  .nav--open .nav__links {
    display: flex;
  }

  .nav__links li {
    width: 100%;
  }

  .nav__link {
    display:  block;
    padding:  var(--space-3) var(--space-6);
    width:    100%;
    opacity:  0.8;
    font-size: 1rem;
  }

  /* Hide desktop CTAs on mobile â€” links in menu are enough */
  .nav__cta--ghost {
    display: none;
  }
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   LAYOUT
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* Main content container used by devlog, docs, solved pages */
.layout {
  max-width: var(--max-width);
  margin:    0 auto;
  padding:   calc(var(--nav-height) + var(--space-8)) var(--space-8) 0;
}

/* â”€â”€ .section â€” used in devlog, docs content pages â”€â”€ */
.section {
  padding:    var(--space-16) 0;
  border-top: 1px solid var(--color-border);
}

.section:first-child {
  border-top: none;
}

.section__label {
  font-size:     0.875rem;
  font-weight:   600;
  color:         var(--color-text-muted);
  margin-bottom: var(--space-4);
  letter-spacing: 0.05em;
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   FOOTER
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.footer {
  background:  var(--color-surface-dark);
  border-top:  4px solid var(--color-accent);
  width:       100%;
}

.page-dark .footer {
  border-top: 1px solid var(--color-border-dark);
}

.footer__inner {
  max-width:       var(--max-width);
  margin:          0 auto;
  padding:         var(--space-6) var(--space-8);
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  gap:             var(--space-4);
}

.footer__brand {
  display:         flex;
  align-items:     center;
  gap:             var(--space-2);
  text-decoration: none;
  color:           var(--color-text-inverse);
}

.footer__brand-img {
  display: block;
  width:   28px;
  height:  28px;
}

.footer__brand-text {
  font-weight:    800;
  font-size:      0.875rem;
  letter-spacing: 0.05em;
  color:          var(--color-accent);
}

.footer__copy {
  font-size:   0.875rem;
  font-weight: 500;
  color:       var(--color-text-muted-dark);
}

.footer__icons {
  display:     flex;
  align-items: center;
  gap:         var(--space-4);
}

.footer__icon-link {
  display:       flex;
  align-items:   center;
  color:         var(--color-text-inverse);
  opacity:       0.6;
  transition:    opacity 0.15s;
  text-decoration: none;
}

.footer__icon-link:hover {
  color:   var(--color-text-inverse);
  opacity: 1;
}

@media (max-width: 767px) {
  .footer__inner {
    flex-wrap:   wrap;
    row-gap:     var(--space-3);
  }

  .footer__brand {
    flex: 1 0 auto;
  }

  .footer__copy {
    order:      3;
    width:      100%;
    text-align: center;
  }
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   HERO â€” homepage
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.hero {
  background:  var(--color-surface-warm);
  padding:     calc(var(--nav-height) + var(--space-20)) var(--space-8) var(--space-20);
  text-align:  center;
  border-bottom: 1px solid var(--color-border);
}

.hero__inner {
  max-width: var(--content-width);
  margin:    0 auto;
}

.hero__eyebrow {
  display:        block;
  font-size:      0.75rem;
  font-weight:    800;
  color:          var(--color-accent);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom:  var(--space-6);
}

.hero__heading {
  font-size:     clamp(2.5rem, 6vw, 5rem);
  font-weight:   800;
  line-height:   1.05;
  letter-spacing: -0.04em;
  margin-bottom: var(--space-6);
}

.hero__heading--primary {
  display: block;
  color:   var(--color-text-primary);
}

.hero__heading--accent {
  display: block;
  color:   var(--color-accent);
}

.hero__sub {
  font-size:     clamp(1rem, 2vw, 1.2rem);
  font-weight:   500;
  color:         var(--color-text-muted-warm);
  max-width:     56ch;
  margin:        0 auto var(--space-8);
  line-height:   1.7;
}

.hero__actions {
  display:       flex;
  align-items:   center;
  justify-content: center;
  gap:           var(--space-4);
  flex-wrap:     wrap;
  margin-bottom: var(--space-8);
}

.hero__meta {
  font-size:      0.8rem;
  font-weight:    700;
  color:          var(--color-text-muted-warm);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  opacity:        0.6;
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   HOME SECTIONS â€” full-width wrappers with internal containers
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* Shared inner container for home page sections */
.home-container {
  max-width: var(--max-width);
  margin:    0 auto;
  padding:   0 var(--space-8);
}

/* Section heading â€” h2 with orange left accent */
.section-heading {
  font-size:     clamp(2.25rem, 5vw, 3.75rem);
  font-weight:   800;
  letter-spacing: -0.04em;
  color:         var(--color-text-primary);
  border-left:   12px solid var(--color-accent);
  padding-left:  var(--space-6);
  margin-bottom: var(--space-12);
}

/* â”€â”€ How it works â”€â”€ */
.how-section {
  background: var(--color-surface-page);
  padding:    var(--space-20) var(--space-8);
  border-bottom: 1px solid var(--color-border);
}

.how-grid {
  display:               grid;
  grid-template-columns: repeat(3, 1fr);
  border:                1px solid var(--color-border-warm);
  border-radius:         var(--radius-card);
  overflow:              hidden;
}

.how {
  padding:      var(--space-10);
  border-right: 1px solid var(--color-border-warm);
  background:   var(--color-surface-subtle);
}

.how:last-child {
  border-right: none;
}

.how--mid,
.how:nth-child(2) {
  background: var(--color-surface-container);
}

.how__heading {
  font-size:     1.875rem;
  font-weight:   700;
  letter-spacing: -0.03em;
  color:         var(--color-text-primary);
  margin-bottom: var(--space-3);
}

.how__icon svg {
  width:  36px;
  height: 36px;
}

.how__desc {
  font-size:   1rem;
  color:       var(--color-text-muted);
  line-height: 1.65;
}

/* â”€â”€ Why Forge (bento grid) â”€â”€ */
.why-section {
  background: var(--color-surface-page);
  padding:    var(--space-20) var(--space-8);
  border-bottom: 1px solid var(--color-border);
}

.bento-grid {
  display:               grid;
  grid-template-columns: repeat(2, 1fr);
  gap:                   var(--space-6);
}

.bento {
  background:    var(--color-surface-cool);
  border-top:    4px solid var(--color-border);
  border-radius: var(--radius-card);
  padding:       var(--space-10);
}

.bento--accent {
  position:      relative;
  overflow:      hidden;
  grid-column:   1 / -1;
  background:    var(--color-accent);
  border-color:  var(--color-accent);
}

.bento--accent .bento__heading,
.bento--accent .bento__desc {
  color: var(--color-text-on-accent);
}

.bento__icon {
  color: var(--color-text-muted);
}

.bento__icon svg {
  width:  32px;
  height: 32px;
  margin-bottom: var(--space-6);
}

.bento__heading {
  font-size:     1.875rem;
  font-weight:   800;
  letter-spacing: -0.03em;
  color:         var(--color-text-primary);
  margin-bottom: var(--space-6);
}

.bento__desc {
  font-size:   1.125rem;
  color:       var(--color-text-muted);
  line-height: 1.65;
}

.bento--accent::after {
  content:        '';
  position:       absolute;
  right:          -20px;
  top:            0;
  bottom:         0;
  width:          40%;
  background:     rgba(255, 255, 255, 0.1);
  transform:      skewX(-12deg);
  pointer-events: none;
}

/* â”€â”€ Developer section â”€â”€ */
.dev-section {
  background:  var(--color-surface-dark);
  border-top:  4px solid var(--color-accent);
  padding:     var(--space-20) var(--space-8);
}

.dev-section__inner {
  display:     flex;
  gap:         var(--space-16);
  align-items: center;
}

.dev-section__content {
  flex: 1;
}

.dev-section__label {
  font-size:      0.7rem;
  font-weight:    800;
  color:          var(--color-text-muted-dark);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  margin-bottom:  var(--space-6);
}

.dev-section__heading {
  font-size:      clamp(2rem, 3vw, 2.75rem);
  font-weight:    800;
  letter-spacing: -0.04em;
  line-height:    0.95;
  color:          var(--color-text-inverse);
  margin-bottom:  var(--space-8);
}

.dev-section__desc {
  font-size:     1rem;
  color:         var(--color-text-muted-dark);
  margin-bottom: var(--space-6);
  line-height:   1.6;
}

.dev-section__link {
  display:         inline-flex;
  align-items:     center;
  gap:             var(--space-2);
  font-size:       1.125rem;
  font-weight:     700;
  color:           var(--color-accent);
  text-decoration: none;
  transition:      opacity 0.15s;
}

.dev-section__link:hover {
  color:   var(--color-accent);
  opacity: 0.8;
}

.dev-section__arrow {
  display:    inline-block;
  font-size:  1.25rem;
  transition: transform 0.2s ease;
}

.dev-section__link:hover .dev-section__arrow {
  transform: translateX(5px);
}

.dev-section__code {
  flex: 1;
  min-width: 0;
}

/* â”€â”€ Posts section â”€â”€ */
.posts-section {
  background:  var(--color-surface-dark);
  padding:     var(--space-20) var(--space-8);
}

.posts-section__more {
  margin-top: var(--space-6);
  font-size:  0.875rem;
}

.posts-section__more a {
  color:  var(--color-accent);
  transition: opacity 0.15s;
}

.posts-section__more a:hover {
  color:   var(--color-accent);
  opacity: 0.8;
}

.posts-section .section-heading {
  color:       var(--color-text-inverse);
  border-color: var(--color-accent);
}

/* â”€â”€ Install section â”€â”€ */
.install-section {
  background: var(--color-surface-page);
  padding:    var(--space-16) var(--space-8);
  border-top: 1px solid var(--color-border);
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   CODE BLOCK
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.code-block {
  border:        1px solid var(--color-border-dark);
  border-left:   8px solid var(--color-accent);
  border-radius: var(--radius-card);
  overflow:      hidden;
  background:    var(--color-surface-code);
}

.code-block__bar {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  padding:         0.75rem var(--space-6);
}

.code-block__dots {
  display: flex;
  gap:     5px;
}

.code-block__dot {
  width:         9px;
  height:        9px;
  border-radius: 50%;
  background:    var(--color-border-dark);
}

.code-block__dot:nth-child(1) { background: rgba(239, 68,  68,  0.6); }
.code-block__dot:nth-child(2) { background: rgba(234, 179, 8,   0.6); }
.code-block__dot:nth-child(3) { background: rgba(34,  197, 94,  0.6); }

.code-block__filename {
  font-size: 0.75rem;
  color:     var(--color-text-muted);
}

.code-block__body {
  padding:     1.5rem;
  font-size:   1.125rem;
  line-height: 1.9;
  overflow-x:  auto;
  color:       var(--color-text-inverse);
}

.code-block__body pre {
  font-family: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
  color:       var(--color-text-code);
}

.code-block__body pre code {
  color: var(--color-text-code);
}

.code-block__body ::selection {
  background: var(--color-accent);
  color:      var(--color-text-inverse);
}

/* Syntax highlight tokens */
.tok-kw  { color: var(--color-accent); }
.tok-tp  { color: var(--color-text-code); }
.tok-fn  { color: var(--color-accent); }
.tok-str { color: var(--color-text-muted-dark); }
.tok-cm  { color: var(--color-text-muted-dark); font-style: italic; }
.tok-ac  { color: var(--color-accent); }
.tok-num { color: var(--color-text-code); }


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   POST LIST â€” devlog
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.post-list {
  border:        1px solid var(--color-border);
  border-radius: var(--radius-card);
  overflow:      hidden;
}

.post {
  display:         flex;
  align-items:     baseline;
  gap:             var(--space-8);
  padding:         var(--space-4) var(--space-6);
  border-bottom:   1px solid var(--color-border);
  text-decoration: none;
  transition:      background 0.12s;
}

.post:last-child {
  border-bottom: none;
}

.post:hover {
  background: var(--color-surface-subtle);
}

.post__date {
  font-size:   0.75rem;
  color:       var(--color-text-muted);
  white-space: nowrap;
  min-width:   80px;
}

.post__title {
  font-size:   1rem;
  color:       var(--color-text-primary);
  font-weight: 500;
}

.post__arrow {
  color:       var(--color-text-muted);
  margin-left: auto;
  font-size:   0.875rem;
}

/* Posts on dark surfaces (home page posts-section) */
.posts-section .post-list {
  border-color: var(--color-border-dark);
}

.posts-section .post {
  border-bottom-color: var(--color-border-dark);
}

.posts-section .post:hover {
  background: var(--color-surface-steel);
}

.posts-section .post__date {
  color: var(--color-text-muted);
}

.posts-section .post__title {
  color: var(--color-text-inverse);
}

.posts-section .post__arrow {
  color: var(--color-text-muted);
}


/* ══════════════════════════════════════════════════════════════════════════
   DEVLOG LIST
   ══════════════════════════════════════════════════════════════════════════ */

.devlog-list {
  background:      var(--color-surface-dark);
  min-height:      100vh;
  padding-top:     8rem;
  padding-bottom:  6rem;
  padding-inline:  1.5rem;
  max-width:       var(--max-width);
  margin:          0 auto;
  color:           var(--color-text-inverse);
}

@media (min-width: 768px) {
  .devlog-list {
    padding-inline: 3rem;
  }
}

body.page-dark {
  background-color: var(--color-surface-dark);
}

body.page-warm {
  background-color: #FCFAF9;
}

.devlog-list__header {
  max-width:     48rem;
  margin-bottom: var(--space-16);
}

.devlog-list__eyebrow {
  display:        block;
  font-size:      0.75rem;
  font-weight:    700;
  color:          var(--color-accent);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom:  var(--space-4);
}

.devlog-list__heading {
  font-size:      clamp(3rem, 5vw, 3.75rem);
  font-weight:    800;
  color:          var(--color-text-inverse);
  letter-spacing: -0.015em;
  line-height:    1.1;
  margin-bottom:  var(--space-6);
}

.devlog-list__sub {
  font-size:   1.25rem;
  font-weight: 500;
  color:       var(--color-text-muted-dark);
  line-height: 1.625;
}

/* ── Filter pills ── */

.devlog-filter {
  display:       flex;
  flex-wrap:     wrap;
  align-items:   center;
  gap:           0.75rem;
  margin-bottom: var(--space-12);
}

.devlog-filter__pill {
  padding:        0.5rem 1.25rem;
  background:     var(--color-surface-dark);
  color:          var(--color-text-muted-dark);
  border:         none;
  border-radius:  var(--radius-pill);
  font-family:    var(--font-sans);
  font-size:      0.75rem;
  font-weight:    700;
  letter-spacing: 0.05em;
  cursor:         pointer;
  transition:     background 0.15s, color 0.15s;
}

.devlog-filter__pill:hover {
  background: var(--color-surface-steel);
  color:      var(--color-text-inverse);
}

.devlog-filter__pill--active {
  background: var(--color-accent);
  color:      var(--color-text-on-accent);
}

/* ── Entry list ── */

.devlog-entries {
  display: block;
}

.devlog-entry {
  display:               grid;
  grid-template-columns: 1fr;
  gap:                   var(--space-3);
  padding-block:         2.5rem;
  border-top:            1px solid rgba(255, 255, 255, 0.05);
  text-decoration:       none;
  color:                 inherit;
  transition:            background 0.12s;
}

.devlog-entry:last-child {
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.devlog-entry:hover {
  background: rgba(255, 255, 255, 0.02);
}

@media (min-width: 768px) {
  .devlog-entry {
    grid-template-columns: 3fr 9fr;
    gap:                   var(--space-6);
    align-items:           start;
    margin-inline:         calc(var(--space-6) * -1);
    padding-inline:        var(--space-6);
  }
}

.devlog-entry__meta {
  display:        flex;
  flex-direction: column;
  gap:            var(--space-2);
}

.devlog-entry__date {
  font-family: monospace;
  font-size:   0.875rem;
  color:       var(--color-text-muted-dark);
}

.devlog-entry__tags {
  display:   flex;
  gap:       var(--space-2);
  flex-wrap: wrap;
}

.devlog-entry__tag {
  font-size:      10px;
  font-weight:    700;
  color:          var(--color-accent-deep);
  background:     rgba(171, 54, 0, 0.1);
  border-radius:  2px;
  padding:        0.125rem 0.5rem;
  letter-spacing: 0.05em;
}

.devlog-entry__tag--blue {
  color:      var(--color-interactive);
  background: rgba(0, 100, 147, 0.1);
}

.devlog-entry__tag--warm {
  color:      var(--color-accent);
  background: rgba(255, 95, 31, 0.1);
}

.devlog-entry__content {
  display:        flex;
  flex-direction: column;
}

.devlog-entry__title {
  font-size:     1.5rem;
  font-weight:   700;
  color:         var(--color-text-inverse);
  margin-bottom: 0.75rem;
  transition:    color 0.15s;
  line-height:   1.2;
}

.devlog-entry:hover .devlog-entry__title {
  color: var(--color-accent);
}

.devlog-entry__excerpt {
  font-size:   1rem;
  color:       var(--color-text-muted-dark);
  line-height: 1.625;
  max-width:   672px;
  margin:      0;
}

/* ── Pagination ── */

.devlog-pagination {
  display:         flex;
  justify-content: center;
  align-items:     center;
  gap:             var(--space-4);
  margin-top:      var(--space-20);
}

.devlog-pagination__page {
  display:         flex;
  align-items:     center;
  justify-content: center;
  width:           2.5rem;
  height:          2.5rem;
  border-radius:   var(--radius-card);
  font-size:       0.875rem;
  font-weight:     500;
  color:           var(--color-text-muted-dark);
  text-decoration: none;
  transition:      background 0.15s, color 0.15s;
}

.devlog-pagination__page:hover {
  color:      var(--color-text-inverse);
  background: rgba(255, 255, 255, 0.05);
}

.devlog-pagination__page--active {
  background:  var(--color-accent);
  color:       var(--color-text-on-accent);
  font-weight: 700;
}

.devlog-pagination__page--active:hover {
  background: var(--color-accent);
  color:      var(--color-text-on-accent);
}



/* ============================================================================
   DEVLOG ARTICLE
   ============================================================================ */

.devlog-article {
  max-width:      var(--max-width);
  margin:         0 auto;
  padding-top:    calc(var(--nav-height) + 3rem);
  padding-bottom: 6rem;
  padding-inline: 1.5rem;
}

@media (min-width: 768px) {
  .devlog-article {
    padding-inline: 3rem;
  }
}

/* -- Hero -- */

.devlog-article__hero {
  margin-bottom: var(--space-20);
}

.devlog-article__hero-inner {
  display:        flex;
  flex-direction: column;
  gap:            var(--space-6);
}

.devlog-article__title {
  font-size:      clamp(2rem, 10vw, 5rem);
  line-height:    1.05;
  font-weight:    800;
  letter-spacing: -0.03em;
  color:          var(--color-text-inverse);
  margin:         0;
}

.devlog-article__sub {
  font-size:      1.25rem;
  color:          var(--color-text-muted-dark);
  max-width:      42rem;
  line-height:    1.625;
  letter-spacing: -0.01em;
  margin:         0;
}

.devlog-article__meta {
  display:     flex;
  flex-wrap:   wrap;
  align-items: center;
  gap:         var(--space-6);
}

.devlog-article__date {
  display:        flex;
  flex-direction: column;
}

.devlog-article__date-label {
  font-size:      10px;
  font-weight:    700;
  color:          var(--color-text-muted-dark);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom:  0.25rem;
}

.devlog-article__date-value {
  font-family: monospace;
  color:       var(--color-text-inverse);
}

.devlog-article__tags {
  display:   flex;
  gap:       var(--space-2);
  flex-wrap: wrap;
}

/* Badge override for dark surface */
.devlog-article .badge {
  background:    rgba(255, 255, 255, 0.05);
  border:        none;
  border-radius: 2px;
  color:         rgba(255, 255, 255, 0.5);
  font-family:   monospace;
  font-size:     10px;
  font-weight:   400;
  padding:       0.25rem 0.5rem;
}

/* -- Main grid -- */

.devlog-article__grid {
  display:               grid;
  grid-template-columns: 1fr;
  gap:                   var(--space-16);
}

@media (min-width: 768px) {
  .devlog-article__grid {
    grid-template-columns: 4fr 8fr;
    gap:                   4rem;
  }
}

/* -- Sidebar -- */

.devlog-article__sidebar {
  display:        flex;
  flex-direction: column;
  gap:            var(--space-12);
}

@media (min-width: 768px) {
  .devlog-article__sidebar {
    position:   sticky;
    top:        calc(var(--nav-height) + 2rem);
    align-self: start;
  }
}

.devlog-article__author {
  display:     flex;
  align-items: center;
  gap:         var(--space-4);
}

.devlog-article__author-avatar {
  width:         4rem;
  height:        4rem;
  border-radius: var(--radius-pill);
  filter:        grayscale(1);
  border:        1px solid rgba(255, 255, 255, 0.1);
  object-fit:    cover;
  flex-shrink:   0;
  transition:    filter 0.5s;
}

.devlog-article__author-avatar:hover {
  filter: grayscale(0);
}

.devlog-article__author-info {
  display:        flex;
  flex-direction: column;
  gap:            0.25rem;
}

.devlog-article__author-name {
  color:           var(--color-text-inverse);
  font-weight:     700;
  text-decoration: none;
  transition:      color 0.15s;
}

.devlog-article__author-name:hover {
  color: var(--color-accent);
}

.devlog-article__author-role {
  font-size:      10px;
  font-weight:    700;
  color:          var(--color-text-muted-dark);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.devlog-article__pullquote {
  border-left:   8px solid var(--color-accent);
  padding-left:  var(--space-6);
  padding-block: var(--space-2);
  font-size:     1.25rem;
  font-weight:   700;
  font-style:    italic;
  color:         var(--color-text-inverse);
  line-height:   1.3;
  margin:        0;
}

.devlog-article__pullquote::before {
  content: "\201C";
}

.devlog-article__pullquote::after {
  content: "\201D";
}

.devlog-article__related {
  padding-top: var(--space-12);
}

.devlog-article__related-label {
  font-size:      10px;
  font-weight:    900;
  color:          var(--color-accent);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom:  var(--space-6);
}

.devlog-article__related-list {
  display:        flex;
  flex-direction: column;
  gap:            var(--space-4);
}

.devlog-article__related-item {
  display:         block;
  text-decoration: none;
}

.devlog-article__related-date {
  font-family:   monospace;
  font-size:     10px;
  color:         var(--color-text-muted-dark);
  margin-bottom: 0.25rem;
}

.devlog-article__related-title {
  display:     block;
  color:       var(--color-text-inverse);
  font-weight: 700;
  font-size:   0.875rem;
  transition:  color 0.15s;
}

.devlog-article__related-item:hover .devlog-article__related-title {
  color: var(--color-accent);
}

/* -- Body content -- */

.devlog-article__body {
  counter-reset: section;
  min-width:     0;
}

.devlog-article .prose {
  color:       var(--color-text-code);
  font-size:   1.125rem;
  line-height: 1.625;
}

.devlog-article .prose p {
  margin-bottom: var(--space-6);
}

.devlog-article .prose h2 {
  display:        flex;
  flex-wrap:      wrap;
  align-items:    baseline;
  gap:            var(--space-4);
  font-size:      1.875rem;
  font-weight:    900;
  text-transform: uppercase;
  letter-spacing: -0.03em;
  color:          var(--color-text-inverse);
  margin-top:     var(--space-20);
  margin-bottom:  var(--space-8);
}

.devlog-article .prose h2::before {
  counter-increment: section;
  content:           "0" counter(section) ".";
  font-size:         2.25rem;
  font-weight:       900;
  color:             rgba(255, 95, 31, 0.2);
  flex-shrink:       0;
}

.devlog-article .prose pre {
  background:    var(--color-surface-dark);
  border-left:   8px solid var(--color-accent);
  border-radius: var(--radius-card);
  overflow-x:    auto;
  padding:       var(--space-6);
  margin-bottom: var(--space-8);
}

.devlog-article .prose pre code {
  font-size:   0.875rem;
  line-height: 1.625;
}

.devlog-article .prose code:not(pre code) {
  background:   rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.1);
  color:        var(--color-text-muted-dark);
}

.devlog-article .prose a {
  color: var(--color-interactive-dark);
}

.devlog-article .prose strong {
  color: var(--color-text-inverse);
}

.devlog-article code:not(pre code) {
  background:   rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.1);
  color:        var(--color-text-muted-dark);
}

.prose-code-block pre code {
  background:   transparent;
  border:       none;
  color:        var(--color-text-code);
  padding:      0;
}

/* -- Post navigation -- */

.devlog-article__postnav {
  display:         flex;
  justify-content: space-between;
  align-items:     center;
  padding-top:     var(--space-12);
  margin-top:      var(--space-20);
  border-top:      1px solid rgba(255, 255, 255, 0.1);
}

.devlog-article__postnav-prev,
.devlog-article__postnav-next {
  display:         flex;
  flex-direction:  column;
  text-decoration: none;
  gap:             var(--space-2);
}

.devlog-article__postnav-next {
  align-items: flex-end;
  text-align:  right;
}

.devlog-article__postnav-label {
  font-size:      10px;
  font-weight:    700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:          var(--color-text-muted-dark);
  transition:     color 0.15s;
}

.devlog-article__postnav-title {
  font-size:   0.875rem;
  font-weight: 700;
  color:       var(--color-text-inverse);
}

.devlog-article__postnav-prev:hover .devlog-article__postnav-label,
.devlog-article__postnav-next:hover .devlog-article__postnav-label {
  color: var(--color-accent);
}

.devlog-article__postnav-prev:hover .devlog-article__postnav-title,
.devlog-article__postnav-next:hover .devlog-article__postnav-title {
  text-decoration: underline;
}

/* ============================================================================
   FEATURE GRID -- 2-column card pattern for use in markdown body (raw HTML)
   ============================================================================ */

.feature-grid {
  display:               grid;
  grid-template-columns: 1fr;
  gap:                   var(--space-6);
  margin-bottom:         var(--space-8);
}

@media (min-width: 768px) {
  .feature-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.feature-card {
  background:    var(--color-surface-dark);
  padding:       var(--space-8);
  border-top:    4px solid var(--color-accent);
  border-radius: var(--radius-card);
  transition:    transform 0.3s;
}

.feature-card:hover {
  transform: translateY(-4px);
}

.feature-card__title {
  font-size:      1.25rem;
  font-weight:    700;
  color:          var(--color-text-inverse);
  margin-bottom:  var(--space-2);
  letter-spacing: -0.02em;
  line-height:    1.3;
}

.feature-card__body {
  font-size:   0.875rem;
  color:       var(--color-text-muted-dark);
  line-height: 1.625;
  margin:      0;
}


/* ============================================================================
   PROSE CODE BLOCK -- rich terminal pattern for markdown body (raw HTML)
   Use class="prose-code-block" -- avoids conflict with homepage .code-block
   ============================================================================ */

.prose-code-block {
  background:    var(--color-surface-dark);
  border-left:   8px solid var(--color-accent);
  border-radius: var(--radius-card);
  overflow:      hidden;
  margin-bottom: var(--space-8);
}

.prose-code-block__header {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  padding:         0.5rem var(--space-4);
  background:      var(--color-surface-steel);
  border-bottom:   1px solid rgba(255, 255, 255, 0.05);
}

.prose-code-block__filename {
  font-family: monospace;
  font-size:   10px;
  color:       var(--color-text-muted-dark);
}

.prose-code-block__dots {
  display: flex;
  gap:     0.375rem;
}

.prose-code-block__dot {
  width:         0.5rem;
  height:        0.5rem;
  border-radius: var(--radius-pill);
}

.prose-code-block__dot--red    { background: rgba(239, 68, 68, 0.5); }
.prose-code-block__dot--yellow { background: rgba(234, 179, 8, 0.5); }
.prose-code-block__dot--green  { background: rgba(34, 197, 94, 0.5); }

.prose-code-block pre {
  padding:    var(--space-6);
  margin:     0;
  overflow-x: auto;
}


/* ============================================================
   SOLVED LIST
   ============================================================ */

/* Page header — dark zone with molten texture */
.solved-list__header {
  position:         relative;
  overflow:         hidden;
  background-color: var(--color-surface-dark);
  padding-top:      calc(var(--nav-height) + 3rem);
  padding-bottom:   3rem;
  padding-inline:   2rem;
}

.solved-list__header::before {
  content:             '';
  position:            absolute;
  inset:               0;
  background-image:    url('/static/img/molten.webp');
  background-size:     cover;
  background-position: center;
  opacity:             0.25;
  z-index:             0;
}

.solved-list__header > * {
  position:      relative;
  z-index:       1;
  max-width:     1440px;
  margin-inline: auto;
}

.solved-list__eyebrow {
  font-family:    monospace;
  font-size:      0.75rem;
  font-weight:    600;
  text-transform: uppercase;
  letter-spacing: 0.3em;
  color:          var(--color-accent);
  margin-bottom:  1.5rem;
  display:        block;
}

.solved-list__heading {
  color:          var(--color-text-inverse);
  font-size:      3rem;
  font-weight:    800;
  letter-spacing: -0.02em;
  margin-bottom:  1.5rem;
  max-width:      48rem;
}

.solved-list__sub {
  color:       rgba(255, 255, 255, 0.6);
  font-size:   1.125rem;
  font-weight: 500;
  line-height: 1.625;
  max-width:   42rem;
}

/* Content zone */
.solved-content {
  background-color: var(--color-surface-page);
  padding:          6rem 2rem;
  min-height:       100vh;
  display:          flex;
  flex-direction:   column;
  gap:              6rem;
}

.solved-content > * {
  max-width:     1440px;
  margin-inline: auto;
  width:         100%;
}

/* Featured card */
.solved-featured {
  display:          flex;
  flex-direction:   column;
  text-decoration:  none;
  background-color: var(--color-surface-page);
  border-left:      6px solid var(--color-accent);
  box-shadow:       0 32px 64px -16px rgba(0, 0, 0, 0.08);
  overflow:         hidden;
}

.solved-featured__content {
  padding: 3rem;
  flex:    1;
}

.solved-featured__image {
  overflow:    hidden;
  height:      16rem;
  flex-shrink: 0;
}

.solved-featured__image img {
  width:           100%;
  height:          100%;
  object-fit:      cover;
  object-position: center;
  display:         block;
  transition:      transform 0.7s ease;
}

.solved-featured:hover .solved-featured__image img {
  transform: scale(1.05);
}

.solved-featured__label {
  display:        block;
  font-size:      0.75rem;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color:          var(--color-accent);
  margin-bottom:  1rem;
}

.solved-featured__title {
  color:          var(--color-text-primary);
  font-size:      1.875rem;
  font-weight:    800;
  letter-spacing: -0.015em;
  line-height:    1.1;
  margin-bottom:  1.5rem;
}

.solved-featured__excerpt {
  color:         var(--color-text-muted-warm);
  font-size:     1.125rem;
  line-height:   1.625;
  margin-bottom: 2rem;
}

.solved-featured__link {
  display:         inline-flex;
  align-items:     center;
  color:           var(--color-accent-deep);
  font-weight:     700;
  text-decoration: none;
}

.solved-featured__arrow {
  margin-left: 0.5rem;
}

/* Story grid */
.solved-grid {
  display:               grid;
  grid-template-columns: 1fr;
  gap:                   3rem;
}

.story-card {
  display:          block;
  text-decoration:  none;
  padding:          2.5rem;
  background-color: var(--color-surface-subtle);
  border-left:      4px solid transparent;
  transition:       border-color 0.2s ease;
}

.story-card:hover {
  border-left-color: var(--color-accent);
}

.story-card__title {
  color:          var(--color-text-primary);
  font-size:      1.5rem;
  font-weight:    700;
  letter-spacing: -0.015em;
  margin-bottom:  1rem;
}

.story-card__excerpt {
  color:         var(--color-text-muted-warm);
  font-weight:   500;
  line-height:   1.625;
  margin-bottom: 2rem;
}

.story-card__link {
  display:     flex;
  align-items: center;
  gap:         0.5rem;
  color:       var(--color-interactive);
  font-weight: 700;
}

/* Case study banner */
.case-study-banner {
  background-color: var(--color-surface-steel);
  padding:          3rem;
  display:          flex;
  flex-direction:   column;
  align-items:      center;
  gap:              2rem;
  border-radius:    2px;
}

.case-study-banner__text {
  color:       var(--color-text-inverse);
  font-size:   1.5rem;
  font-weight: 700;
  line-height: 1.3;
  max-width:   36rem;
}

.case-study-banner__sub {
  color:       rgba(255, 255, 255, 0.6);
  margin-top:  0.75rem;
  line-height: 1.625;
}

/* Responsive */
@media (min-width: 768px) {
  .solved-list__heading {
    font-size: 4.5rem;
  }

  .solved-list__sub {
    font-size: 1.25rem;
  }

  .solved-featured {
    flex-direction: row;
  }

  .solved-featured__content {
    width: 60%;
  }

  .solved-featured__image {
    width:  40%;
    height: auto;
  }

  .solved-featured__title {
    font-size: 2.25rem;
  }

  .solved-grid {
    grid-template-columns: 1fr 1fr;
  }

  .case-study-banner {
    flex-direction:  row;
    justify-content: space-between;
    align-items:     center;
  }

  .case-study-banner__text {
    font-size: 1.875rem;
  }
}

/* ════════════════════════════════════════════════════════════════════════════
   SOLVED ARTICLE
   ════════════════════════════════════════════════════════════════════════════ */

.solved-hero {
  background-color: var(--color-surface-warm);
  padding-top: calc(var(--nav-height) + 6rem);
  padding-bottom: 4rem;
  padding-inline: 2rem;
}

.solved-hero__inner {
  max-width: var(--max-width);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: 4rem;
  align-items: center;
}

.solved-hero__text {
  flex: 1;
}

.solved-hero__media {
  width: 100%;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
}

.solved-hero__image {
  width: 100%;
  height: 20rem;
  object-fit: cover;
  object-position: top center;
  display: block;
}

.solved-hero__eyebrow {
  display: block;
  color: var(--color-accent);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}

.solved-hero__heading {
  color: var(--color-text-primary);
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: -0.015em;
  line-height: 1.05;
  margin-bottom: 2rem;
}

.solved-hero__byline {
  color: var(--color-text-muted-warm);
  font-size: 0.875rem;
}

.solved-hero__author {
  color: var(--color-interactive);
  font-weight: 700;
  text-decoration: none;
}

.solved-hero__author:hover {
  text-decoration: underline;
}

.solved-hero__cta {
  margin-top: 2rem;
}

/* WIIFM */
.wiifm {
  background-color: var(--color-surface-warm);
  padding: 3rem 2rem;
  border-bottom: 1px solid var(--color-border);
}

.wiifm__inner {
  max-width: var(--max-width);
  margin-inline: auto;
}

.wiifm__excerpt {
  font-size: 1rem;
  font-weight: 500;
  color: var(--color-text-muted-warm);
  line-height: 1.625;
  max-width: 42rem;
}

.wiifm-grid {
  background-color: var(--color-surface-warm);
  padding: 4rem 2rem;
}

.wiifm-grid__inner {
  max-width: var(--max-width);
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
}

.wiifm-card {
  border-left: 4px solid rgba(255, 95, 31, 0.3);
  padding-left: 1.5rem;
  transition: border-color 0.3s ease;
}

.wiifm-card:hover {
  border-left-color: var(--color-accent);
}

.wiifm-card__icon {
  display: block;
  width: 2rem;
  height: 2rem;
  color: var(--color-accent);
  margin-bottom: 1.5rem;
}

.wiifm-card__icon svg {
  width: 100%;
  height: 100%;
}

.wiifm-card__title {
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--color-text-primary);
  margin-bottom: 0.75rem;
}

.wiifm-card__body {
  color: var(--color-text-primary);
  line-height: 1.625;
}

/* Article body */
.solved-body {
  background-color: var(--color-surface-page);
  padding: 4rem 2rem;
}

.solved-body__inner {
  max-width: 56rem;
  margin-inline: auto;
}

/* Prose scoped to solved article */
.solved-article .prose h2 {
  border-left: 12px solid var(--color-accent-deep);
  padding-left: 2rem;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.1;
  margin-top: 4rem;
  margin-bottom: 2rem;
  color: var(--color-text-primary);
}

.solved-article .prose p {
  font-size: 1rem;
  color: var(--color-text-primary);
  line-height: 1.625;
  margin-bottom: 3rem;
}

.pull-quote {
  position: relative;
  background-color: var(--color-surface-container);
  padding: 3rem;
  margin-bottom: 3rem;
}

.pull-quote::before {
  content: '\201C';
  position: absolute;
  top: -1rem;
  left: 1rem;
  font-size: 4.5rem;
  color: var(--color-accent);
  opacity: 0.5;
  line-height: 1;
}

.solved-article .prose .pull-quote p {
  font-size: 1.875rem;
  font-weight: 700;
  font-style: italic;
  letter-spacing: -0.015em;
  line-height: 1.2;
  color: var(--color-accent);
  margin: 0;
}

/* Case study callout */
.solved-callout {
  background-color: var(--color-surface-warm);
  padding: 0 2rem 6rem;
}

.solved-callout__inner {
  max-width: var(--max-width);
  margin-inline: auto;
  background-color: var(--color-surface-steel);
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 3rem;
  align-items: flex-start;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

.solved-callout__label {
  display: inline-block;
  font-size: 0.625rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-accent);
  margin-bottom: 1.5rem;
}

.solved-callout__heading {
  color: var(--color-text-inverse);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.1;
  max-width: 42rem;
}

.solved-callout__link {
  display: flex;
  align-items: center;
  gap: 1rem;
  color: var(--color-text-inverse);
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  text-decoration: none;
  flex-shrink: 0;
  transition: color 0.2s ease;
}

.solved-callout__link:hover {
  color: var(--color-accent);
}

.solved-callout__arrow {
  transition: transform 0.2s ease;
}

.solved-callout__link:hover .solved-callout__arrow {
  transform: translateX(0.5rem);
}

/* CTA section */
.solved-cta {
  background-color: var(--color-surface-container);
  padding: 8rem 2rem;
  text-align: center;
}

.solved-cta__inner {
  max-width: 48rem;
  margin-inline: auto;
}

.solved-cta__heading {
  color: var(--color-text-primary);
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.1;
  margin-bottom: 1.5rem;
}

.solved-cta__sub {
  font-size: 1.25rem;
  color: var(--color-text-primary);
  letter-spacing: -0.015em;
  margin-bottom: 3rem;
}

.solved-cta__actions {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  justify-content: center;
  align-items: center;
}

/* Responsive */
@media (min-width: 768px) {
  .solved-hero__heading {
    font-size: 2.5rem;
  }

  .wiifm__excerpt {
    font-size: 1.125rem;
  }

  .solved-article .prose h2 {
    font-size: 2rem;
  }

  .solved-article .prose p {
    font-size: 1.125rem;
  }

  .solved-article .prose .pull-quote p {
    font-size: 2.25rem;
  }

  .solved-callout__inner {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 3rem;
  }

  .solved-callout__heading {
    font-size: 2rem;
  }

  .solved-cta__heading {
    font-size: 2.5rem;
  }

  .solved-cta__sub {
    font-size: 1.5rem;
  }

  .solved-cta__actions {
    flex-direction: row;
  }

  .wiifm-grid__inner {
    grid-template-columns: 1fr 1fr 1fr;
  }
}

@media (min-width: 1024px) {
  .solved-hero__heading {
    font-size: 3.75rem;
  }

  .solved-hero__inner {
    flex-direction: row;
    align-items: center;
    gap: 6rem;
  }

  .solved-hero__text {
    flex: 7;
  }

  .solved-hero__media {
    flex: 5;
    width: auto;
  }

  .solved-hero__image {
    height: 32rem;
  }
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   DOCS
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.docs-layout {
  padding-top: var(--nav-height);
  /* Sidebar bg on the outer container — always matches full page height */
  background: linear-gradient(
    to right,
    var(--color-surface-subtle) 239px,
    var(--color-border)         239px,
    var(--color-border)         240px,
    transparent                 240px
  );
}

.doc-page {
  display:               grid;
  grid-template-columns: 240px 1fr 240px;
  min-height:            calc(100vh - var(--nav-height));
  align-items:           start;
}

.doc-page__sidebar {
  /* grid cell only — decoration via .docs-layout gradient */
}

.doc-nav {
  position: sticky;
  top:      var(--nav-height);
  padding:  var(--space-8) 0 var(--space-4) 0;
}

.doc-nav__title {
  font-size:      0.6875rem;
  font-weight:    800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:          var(--color-text-muted);
  margin:         0 0 var(--space-6);
  padding:        0 var(--space-4) 0 var(--space-6);
}

.doc-page__content {
  padding:        var(--space-8) var(--space-10);
  padding-bottom: var(--space-20);
  min-width:      0;
}

.doc-page__title {
  font-size:      2rem;
  font-weight:    800;
  letter-spacing: -0.03em;
  line-height:    1.2;
  color:          var(--color-text-primary);
  margin-bottom:  var(--space-6);
}

.doc-page__meta {
  font-size:     0.875rem;
  color:         var(--color-text-muted);
  margin-bottom: var(--space-8);
}

/* â”€â”€ Doc nav (sidebar) â”€â”€ */
.doc-nav__section {
  margin-top:    var(--space-6);
  margin-bottom: var(--space-1);
}

.doc-nav__section:first-of-type {
  margin-top: 0;
}

.doc-nav__section-label {
  font-size:      0.7rem;
  font-weight:    700;
  color:          var(--color-text-muted);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom:  var(--space-3);
  padding:        0 var(--space-4) 0 var(--space-6);
}

.doc-nav__link {
  display:          block;
  font-size:        0.8125rem;
  font-weight:      500;
  color:            var(--color-text-primary);
  text-decoration:  none;
  padding:          var(--space-2) var(--space-4) var(--space-2) calc(var(--space-6) - 4px);
  border-left:      4px solid transparent;
  transition:       color 0.12s, background-color 0.12s;
}

.doc-nav__link:hover {
  color:            var(--color-text-primary);
  background-color: var(--color-surface-subtle);
}

.doc-nav__link--active {
  color:            var(--color-accent-deep);
  font-weight:      700;
  background-color: var(--color-surface-page);
  border-left:      4px solid var(--color-accent);
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   INSTALL BLOCK
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* ── Breadcrumbs ── */
.doc-breadcrumbs {
  display:       flex;
  align-items:   center;
  gap:           var(--space-2);
  font-size:     0.75rem;
  color:         var(--color-text-muted);
  margin-bottom: var(--space-6);
}

.doc-breadcrumbs__link {
  color:           var(--color-text-muted);
  text-decoration: none;
}

.doc-breadcrumbs__link:hover {
  color: var(--color-text-primary);
}

.doc-breadcrumbs__sep {
  color: var(--color-text-muted);
}

/* ── Page header ── */
.doc-page__header {
  margin-bottom: var(--space-8);
}

.doc-page__eyebrow {
  display:        block;
  font-size:      0.7rem;
  font-weight:    700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:          var(--color-accent);
  margin-bottom:  var(--space-2);
}

/* ── Doc table (HTML passthrough pattern) ── */
.doc-table-wrapper {
  border-radius: var(--radius-callout);
  overflow:      hidden;
  margin-bottom: var(--space-8);
  border:        1px solid var(--color-border);
}

.doc-table {
  width:           100%;
  border-collapse: collapse;
  font-size:       0.875rem;
  background:      var(--color-surface-page);
}

.doc-table thead tr {
  background: var(--color-surface-subtle);
}

.doc-table th {
  font-size:      0.65rem;
  font-weight:    700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color:          var(--color-text-muted);
  padding:        var(--space-3) var(--space-4);
  text-align:     left;
  border-bottom:  2px solid var(--color-border);
}

.doc-table tbody tr {
  transition: background-color 0.12s;
}

.doc-table tbody tr:nth-child(even) {
  background: var(--color-surface-subtle);
}

.doc-table tbody tr:hover {
  background: var(--color-surface-container);
}

.doc-table td {
  padding:        var(--space-3) var(--space-4);
  border-bottom:  1px solid var(--color-border);
  color:          var(--color-text-primary);
  vertical-align: top;
}

.doc-table tbody tr:last-child td {
  border-bottom: none;
}

.doc-table td code {
  color:       var(--color-interactive);
  font-family: monospace;
  font-size:   0.8125rem;
}

/* ── Feature cards (HTML passthrough pattern) ── */
.doc-feature-grid {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   var(--space-6);
  margin-top:            var(--space-8);
  margin-bottom:         var(--space-8);
}

.doc-feature-card {
  background: var(--color-surface-subtle);
  padding:    var(--space-6);
}

.doc-feature-card__icon {
  display:       block;
  color:         var(--color-interactive);
  margin-bottom: var(--space-3);
  line-height:   1;
}

.doc-feature-card__icon svg {
  display: block;
}

.doc-feature-card__title {
  font-size:     1rem;
  font-weight:   700;
  color:         var(--color-text-primary);
  margin-bottom: var(--space-2);
}

.doc-feature-card__body {
  font-size:   0.8125rem;
  color:       var(--color-text-muted);
  line-height: 1.6;
}

/* ── Info callout (HTML passthrough pattern) ── */
.info-callout {
  display:          flex;
  gap:              var(--space-4);
  align-items:      flex-start;
  background-color: var(--color-info-bg);
  border-left:      4px solid var(--color-info-border);
  border-radius:    0 var(--radius-callout) var(--radius-callout) 0;
  padding:          var(--space-4) var(--space-6);
  margin-bottom:    var(--space-8);
  color:            var(--color-text-primary);
  font-size:        0.9375rem;
  line-height:      1.6;
}

.info-callout::before {
  content:      'ℹ';
  flex-shrink:  0;
  color:        var(--color-interactive);
  font-size:    1.1rem;
  font-weight:  700;
  margin-top:   0.1em;
}

.info-callout p {
  margin: 0;
}

/* ── Code block with filename header (HTML passthrough pattern) ── */
.doc-code-block {
  margin-bottom: var(--space-8);
  overflow-x:    auto;
}

.doc-code-block__header {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  background:      var(--color-surface-steel);
  padding:         var(--space-2) var(--space-4);
  border-radius:   var(--radius-callout) var(--radius-callout) 0 0;
}

.doc-code-block__filename {
  font-size:      0.7rem;
  font-weight:    700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:          var(--color-interactive);
}

.doc-code-block pre {
  background:    var(--color-surface-dark);
  margin:        0;
  padding:       var(--space-6);
  overflow-x:    auto;
  max-width:     100%;
  border-radius: 0;
}

.doc-code-block code {
  font-family: monospace;
  font-size:   0.875rem;
  color:       var(--color-text-code);
  line-height: 1.7;
}

/* ── Prose scoped to docs content ── */
.doc-page__content .prose {
  counter-reset: doc-section;
}

.doc-page__content .prose h2 {
  display:     flex;
  align-items: baseline;
  gap:         var(--space-3);
}

.doc-page__content .prose h2::before {
  counter-increment: doc-section;
  content:           counter(doc-section, decimal-leading-zero);
  flex-shrink:       0;
  font-size:         0.75rem;
  font-weight:       900;
  color:             var(--color-accent);
}

.doc-page__content .prose a {
  color:           var(--color-interactive);
  text-decoration: underline;
}

.doc-page__content .prose a:hover {
  color: var(--color-accent-deep);
}

/* ── Right TOC sidebar ── */
.doc-toc {
  position:       sticky;
  top:            var(--nav-height);
  padding-top:    var(--space-8);
  padding-left:   var(--space-6);
  border-left:    1px solid var(--color-border);
  display:        flex;
  flex-direction: column;
  gap:            var(--space-6);
}

.doc-toc__heading {
  font-size:      0.75rem;
  font-weight:    700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color:          var(--color-text-primary);
  margin:         0;
}

.doc-toc__nav {
  display:        flex;
  flex-direction: column;
  gap:            var(--space-1);
  border-left:    1px solid var(--color-border);
}

.doc-toc__link {
  display:         block;
  font-size:       0.8125rem;
  color:           var(--color-text-muted);
  text-decoration: none;
  padding:         var(--space-1) var(--space-4);
  border-left:     2px solid transparent;
  margin-left:     -1px;
  transition:      color 0.12s, border-color 0.12s;
  line-height:     1.4;
}

.doc-toc__link:hover {
  color:        var(--color-text-primary);
  border-color: var(--color-border);
}


.doc-toc__github {
  margin-top:       var(--space-8);
  background-color: var(--color-surface-subtle);
  border-radius:    var(--radius-card);
  padding:          var(--space-4) var(--space-6);
}

.doc-toc__github-label {
  font-size:  0.6875rem;
  font-style: italic;
  color:      var(--color-text-muted);
  margin:     0 0 var(--space-2);
}

.doc-toc__github-link {
  font-size:       0.8125rem;
  font-weight:     700;
  color:           var(--color-interactive);
  text-decoration: none;
}

.doc-toc__github-link:hover {
  text-decoration: underline;
}


.install-block {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  gap:             var(--space-4);
  background:      var(--color-surface-subtle);
  border:          1px solid var(--color-border);
  border-radius:   var(--radius-card);
  padding:         var(--space-4) var(--space-6);
  font-size:       0.875rem;
  color:           var(--color-text-muted);
}

.install-block__prompt {
  color:        var(--color-text-muted);
  margin-right: var(--space-2);
  user-select:  none;
}

.install-block__cmd {
  color:       var(--color-text-primary);
  font-weight: 500;
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   BUTTONS
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.btn {
  display:         inline-flex;
  align-items:     center;
  gap:             var(--space-2);
  font-family:     var(--font-sans);
  font-size:       1.125rem;
  font-weight:     700;
  padding:         1rem 2rem;
  border-radius:   var(--radius-button);
  text-decoration: none;
  border:          1px solid transparent;
  cursor:          pointer;
  transition:      opacity 0.15s, transform 0.15s;
  line-height:     1.75rem;
  white-space:     nowrap;
}

.btn:active {
  transform: scale(0.97);
}

.btn--primary {
  background:  var(--gradient-cta);
  color:       var(--color-text-on-accent);
  box-shadow:  0 4px 20px rgba(171, 54, 0, 0.3);
}

.btn--primary:hover {
  color:     var(--color-text-on-accent);
  opacity:   0.9;
  transform: scale(1.02);
}

.btn--ghost,
.btn--ghost:visited {
  background:  transparent;
  border:      2px solid var(--color-border);
  color:       var(--color-accent-deep);
}

.btn--ghost:hover {
  color:            var(--color-accent-deep);
  border-color:     var(--color-border);
  background-color: var(--color-surface-subtle);
  opacity:          1;
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   COPY BUTTON
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.copy-btn {
  font-family:   var(--font-sans);
  font-size:     0.75rem;
  font-weight:   500;
  color:         var(--color-text-muted);
  background:    transparent;
  border:        1px solid var(--color-border-dark);
  padding:       0.25rem 0.6rem;
  border-radius: var(--radius-callout);
  cursor:        pointer;
  transition:    color 0.12s, border-color 0.12s;
  white-space:   nowrap;
}

.copy-btn:hover {
  color:        var(--color-text-inverse);
  border-color: var(--color-text-muted);
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   BADGE
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.badge {
  display:       inline-flex;
  align-items:   center;
  padding:       0.2rem 0.5rem;
  background:    color-mix(in srgb, var(--color-accent) 12%, transparent);
  border:        1px solid color-mix(in srgb, var(--color-accent) 30%, transparent);
  border-radius: var(--radius-pill);
  color:         var(--color-accent);
  font-size:     0.7rem;
  font-weight:   600;
  white-space:   nowrap;
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   RESPONSIVE
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

@media (max-width: 1280px) {
  .doc-page {
    grid-template-columns: 240px 1fr;
  }

  .doc-toc {
    display: none;
  }
}

@media (max-width: 1023px) {
  .how-grid {
    grid-template-columns: 1fr;
  }

  .how {
    border-right:  none;
    border-bottom: 1px solid var(--color-border);
  }

  .how:last-child {
    border-bottom: none;
  }

  .bento-grid {
    grid-template-columns: 1fr;
  }

  .bento--accent {
    grid-column: auto;
  }

  .dev-section__inner {
    flex-direction: column;
  }

  .dev-section__code {
    width: 100%;
  }
}

@media (max-width: 767px) {
  .layout {
    padding-top:   calc(var(--nav-height) + var(--space-4));
    padding-left:  var(--space-4);
    padding-right: var(--space-4);
  }

  .hero {
    padding-left:  var(--space-4);
    padding-right: var(--space-4);
    padding-top:   calc(var(--nav-height) + var(--space-12));
    padding-bottom: var(--space-12);
  }

  .how-section,
  .why-section,
  .dev-section,
  .posts-section,
  .install-section {
    padding-left:  var(--space-4);
    padding-right: var(--space-4);
  }

  .home-container {
    padding-left:  0;
    padding-right: 0;
  }

  .docs-layout {
    background: none;
  }

  .doc-page {
    grid-template-columns: 1fr;
  }

  .doc-page__sidebar {
    display: none;
  }

  .doc-toc {
    display: none;
  }

  .doc-page__content {
    padding: var(--space-6) var(--space-4);
  }

  .post {
    flex-wrap: wrap;
    gap:       var(--space-1) var(--space-8);
  }

  .post__date {
    width:     100%;
    min-width: unset;
  }

  .post__title {
    flex: 1;
  }
}


/* ══════════════════════════════════════════════════════════════════════
   DOCS LIST — /docs landing page
   ══════════════════════════════════════════════════════════════════════ */

/* ── Page container ── */
.docs-list {
  background:     var(--color-surface-page);
  padding-top:    calc(var(--nav-height) + var(--space-16));
  padding-bottom: var(--space-24);
  padding-left:   var(--space-6);
  padding-right:  var(--space-6);
  max-width:      var(--max-width);
  margin-left:    auto;
  margin-right:   auto;
}

/* ── Page header ── */
.docs-header {
  margin-bottom: var(--space-20);
  max-width: 48rem;
}

.docs-header__heading {
  font-size:      clamp(2.5rem, 6vw, 4.5rem);
  font-weight:    800;
  letter-spacing: -0.03em;
  line-height:    1.05;
  color:          var(--color-text-primary);
  margin-bottom:  var(--space-6);
}

.docs-header__sub {
  font-size:   1.125rem;
  color:       var(--color-text-muted-warm);
  line-height: 1.6;
}

/* ── Two-path cards ── */
.docs-paths {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   var(--space-8);
  margin-bottom:         var(--space-24);
}

.docs-path {
  display:         flex;
  flex-direction:  column;
  padding:         var(--space-10);
  border-radius:   var(--radius-card);
  text-decoration: none;
  color:           var(--color-text-primary);
  transition:      box-shadow 0.2s;
}

.docs-path:hover {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

.docs-path--decision {
  background:  var(--color-surface-page);
  border:      1px solid var(--color-border);
  border-top:  4px solid var(--color-accent);
}

.docs-path--developer {
  background: var(--color-info-bg);
  border-top: 4px solid var(--color-interactive);
}

.docs-path__tag {
  font-size:      0.75rem;
  font-weight:    700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom:  var(--space-2);
}

.docs-path--decision .docs-path__tag { color: var(--color-accent); }
.docs-path--developer .docs-path__tag { color: var(--color-interactive); }

.docs-path__heading {
  font-size:      1.75rem;
  font-weight:    700;
  letter-spacing: -0.02em;
  color:          var(--color-text-primary);
  margin-bottom:  var(--space-4);
}

.docs-path__desc {
  font-size:     1rem;
  color:         var(--color-text-muted-warm);
  line-height:   1.6;
  flex:          1;
  margin-bottom: var(--space-8);
}

/* CTA — orange gradient button for decision-maker */
.docs-path--decision .docs-path__cta {
  display:         inline-block;
  align-self:      flex-start;
  background:      var(--gradient-cta);
  color:           var(--color-text-on-accent);
  padding:         var(--space-3) var(--space-6);
  border-radius:   var(--radius-button);
  font-weight:     700;
  font-size:       0.9375rem;
  text-decoration: none;
}

/* CTA — blue text link for developer */
.docs-path--developer .docs-path__cta {
  display:         inline-block;
  align-self:      flex-start;
  color:           var(--color-interactive);
  font-weight:     700;
  font-size:       0.9375rem;
  text-decoration: none;
}

.docs-path--developer .docs-path__cta:hover {
  text-decoration: underline;
}

/* ── Section cards ── */
.docs-sections {
  display:               grid;
  grid-template-columns: repeat(4, 1fr);
  gap:                   var(--space-12);
  margin-bottom:         var(--space-32);
}

.docs-section-card {
  display:         flex;
  flex-direction:  column;
  gap:             var(--space-4);
  text-decoration: none;
  color:           var(--color-text-primary);
  padding:         var(--space-6);
}

.docs-section-card:hover .docs-section-card__link {
  text-decoration: underline;
}

.docs-section-card__icon {
  display:     flex;
  align-items: center;
  color:       var(--color-accent);
  width:       1.5rem;
  height:      1.5rem;
}

.docs-section-card__icon svg {
  width:  100%;
  height: 100%;
}

.docs-section-card__title {
  font-size:      1rem;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color:          var(--color-text-primary);
}

.docs-section-card__sub {
  font-size:   0.875rem;
  color:       var(--color-text-muted-warm);
  line-height: 1.6;
  flex:        1;
}

.docs-section-card__count {
  font-size: 0.75rem;
  color:     var(--color-text-muted);
  opacity:   0.6;
}

.docs-section-card__link {
  font-size:   0.875rem;
  font-weight: 700;
  color:       var(--color-interactive);
}

/* ── Latest updates strip ── */
.docs-updates {
  background:     var(--color-surface-subtle);
  border-left:    4px solid var(--color-accent);
  border-radius:  var(--radius-card);
  padding:        var(--space-6) var(--space-8);
  display:        flex;
  flex-direction: column;
  gap:            var(--space-6);
}

.docs-updates__label {
  font-size:      0.75rem;
  font-weight:    800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color:          var(--color-text-muted-warm);
  white-space:    nowrap;
}

.docs-updates__items {
  display:   flex;
  flex-wrap: wrap;
  gap:       var(--space-4) var(--space-12);
}

.docs-update-item {
  display:         flex;
  align-items:     baseline;
  gap:             var(--space-4);
  text-decoration: none;
  color:           var(--color-text-primary);
}

.docs-update-item__date {
  font-size:      0.75rem;
  font-weight:    700;
  color:          var(--color-accent);
  text-transform: uppercase;
  white-space:    nowrap;
  flex-shrink:    0;
}

.docs-update-item__title {
  font-size:   0.9375rem;
  font-weight: 500;
  color:       var(--color-text-primary);
}

.docs-update-item:hover .docs-update-item__title {
  color: var(--color-interactive);
}

/* ── Docs list responsive ── */
@media (min-width: 768px) {
  .docs-updates {
    flex-direction: row;
    align-items:    center;
    gap:            var(--space-16);
  }
}

@media (max-width: 1023px) {
  .docs-sections {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-8);
  }
}

@media (max-width: 767px) {
  .docs-paths {
    grid-template-columns: 1fr;
  }

  .docs-sections {
    grid-template-columns: 1fr;
  }
}

/* Sun/moon icon swap on nav theme toggle */
.nav__theme-sun  { display: none; }
.nav__theme-moon { display: block; }

.docs-dark .nav__theme-moon { display: none; }
.docs-dark .nav__theme-sun  { display: block; }

.docs-dark .nav__toggle-theme {
  color:   var(--color-accent);
  opacity: 1;
}

/* ─────────────────────────────────────────────────────────────────
   DOC MOBILE NAV BAR + DIALOG
───────────────────────────────────────────────────────────────── */

.doc-mobile-bar {
  display: none;
}

@media (max-width: 767px) {
  .doc-mobile-bar {
    display:         flex;
    align-items:     center;
    gap:             var(--space-2);
    position:        sticky;
    top:             var(--nav-height);
    z-index:         90;
    width:           100%;
    padding:         var(--space-3) var(--space-4);
    background:      var(--color-surface-subtle);
    border:          none;
    border-bottom:   1px solid var(--color-border);
    font-size:       0.875rem;
    font-weight:     600;
    color:           var(--color-text-primary);
    cursor:          pointer;
    text-align:      left;
  }

  .docs-dark .doc-mobile-bar {
    background:    var(--color-surface-subtle);
    border-bottom: 1px solid var(--color-border);
    color:         var(--color-text-primary);
  }
}

.doc-mobile-dialog {
  position:   fixed;
  inset:      0;
  width:      min(320px, 88vw);
  height:     100%;
  max-height: 100%;
  margin:     0;
  padding:    0;
  border:     none;
  background: var(--color-surface-subtle);
  border-right: 1px solid var(--color-border);
  overflow-y: auto;
}

.doc-mobile-dialog::backdrop {
  background: rgba(0, 0, 0, 0.5);
}

.docs-dark .doc-mobile-dialog {
  background:   var(--color-surface-subtle);
  border-right: 1px solid var(--color-border);
}

.doc-mobile-dialog__inner {
  display:        flex;
  flex-direction: column;
  min-height:     100%;
}

.doc-mobile-dialog__header {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  padding:         var(--space-4) var(--space-6);
  border-bottom:   1px solid var(--color-border);
  position:        sticky;
  top:             0;
  background:      var(--color-surface-subtle);
  z-index:         1;
}

.docs-dark .doc-mobile-dialog__header {
  background:    var(--color-surface-subtle);
  border-bottom: 1px solid var(--color-border);
}

.doc-mobile-dialog__title {
  font-size:      0.75rem;
  font-weight:    800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:          var(--color-text-muted);
}

.doc-mobile-dialog__close {
  display:     flex;
  align-items: center;
  background:  none;
  border:      none;
  font-size:   1rem;
  color:       var(--color-text-muted);
  cursor:      pointer;
  padding:     var(--space-1) var(--space-2);
  line-height: 1;
}

.doc-mobile-dialog__close:hover {
  color: var(--color-text-primary);
}

.doc-mobile-dialog__nav {
  padding: var(--space-3) 0 var(--space-8);
}

.doc-mobile-dialog__section {
  font-size:      0.7rem;
  font-weight:    800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color:          var(--color-text-muted);
  padding:        var(--space-4) var(--space-4) var(--space-2) var(--space-6);
  margin:         0;
}

.doc-mobile-dialog__link {
  display:         block;
  padding:         var(--space-3) var(--space-4) var(--space-3) var(--space-6);
  font-size:       0.9375rem;
  font-weight:     500;
  color:           var(--color-text-primary);
  text-decoration: none;
  border-left:     4px solid transparent;
}

.doc-mobile-dialog__link:hover {
  background:  var(--color-surface-container);
  border-left: 4px solid var(--color-border);
}

.doc-mobile-dialog__link--active {
  color:       var(--color-accent-deep);
  border-left: 4px solid var(--color-accent);
  background:  transparent;
  font-weight: 700;
}

/* ==========================================================================
   ESSAY — /thinking route
   Typography-first long-form essay. No dark mode. Always page-warm.
   ========================================================================== */

/* Page shell */
.essay-list-page,
.essay-page {
  background: #FCFAF9;
  min-height: 100vh;
}

/* Content column */
.essay-list-wrap,
.essay-wrap {
  max-width: 760px;
  margin: 0 auto;
  padding: calc(var(--nav-height) + var(--space-20)) var(--space-6) var(--space-24);
}

@media (max-width: 599px) {
  .essay-list-wrap,
  .essay-wrap {
    padding-top: calc(var(--nav-height) + var(--space-12));
  }
}

/* ---- List page ---- */

.essay-list__heading {
  font-family:  var(--sans);
  font-size:    28px;
  font-weight:  600;
  line-height:  1.15;
  color:        var(--color-text-primary);
  margin:       0 0 var(--space-10);
}

.essay-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.essay-list__item {
  display:       block;
  padding:       var(--space-6) 0 var(--space-6);
  border-bottom: 1px solid var(--color-border);
}

.essay-list__item:first-child {
  border-top: 1px solid var(--color-border);
}

.essay-list__meta {
  display:         flex;
  justify-content: space-between;
  align-items:     baseline;
  gap:             var(--space-4);
  margin-bottom:   var(--space-2);
}

.essay-list__title {
  font-family:     var(--sans);
  font-size:       17px;
  font-weight:     500;
  color:           var(--color-text-primary);
  text-decoration: none;
  flex:            1;
}

.essay-list__title:hover {
  text-decoration: underline;
}

.essay-list__date {
  font-family:  var(--sans);
  font-size:    var(--text-sm);
  color:        var(--color-text-muted);
  white-space:  nowrap;
}

.essay-list__excerpt {
  font-family: var(--sans);
  font-size:   var(--text-sm);
  color:       var(--color-text-muted);
  line-height: 1.55;
  margin:      0;
}

.essay-list__empty {
  font-size:  var(--text-base);
  color:      var(--color-text-muted);
  margin-top: var(--space-6);
}

@media (max-width: 480px) {
  .essay-list__meta {
    flex-direction: column;
    gap:            var(--space-1);
  }
}

/* ---- Article header ---- */

.essay-header {
  margin-bottom: var(--space-8);
}

.essay-header__kicker {
  font-family:     var(--mono);
  font-size:       13px;
  font-weight:     400;
  color:           var(--color-text-muted);
  text-transform:  uppercase;
  letter-spacing:  0.1em;
  margin:          0 0 var(--space-3);
}

.essay-header__title {
  font-family:  var(--sans);
  font-size:    38px;
  font-weight:  700;
  line-height:  1.15;
  color:        var(--color-text-primary);
  margin:       0 0 var(--space-3);
}

@media (max-width: 599px) {
  .essay-header__title {
    font-size: 28px;
  }
}

.essay-header__meta {
  font-family: var(--mono);
  font-size:   14px;
  font-weight: 400;
  color:       var(--color-text-muted);
  margin:      0;
}

.essay-header__rule {
  border:     none;
  border-top: 1px solid var(--color-border);
  margin:     var(--space-6) 0 var(--space-8);
}

/* ---- Essay prose overrides ---- */
/* Applied in addition to .prose — essay-specific typography */

.essay-prose {
  font-family:  var(--sans);
  font-size:    18px;
  line-height:  1.75;
  color:        var(--color-text-primary);
}

.essay-prose p {
  margin-top:    0;
  margin-bottom: 1.5em;
}

.essay-prose h2 {
  font-family:  var(--sans);
  font-size:    22px;
  font-weight:  600;
  color:        var(--color-text-primary);
  margin-top:   2.5em;
  margin-bottom: var(--space-3);
}

.essay-prose h3 {
  font-family:  var(--sans);
  font-size:    18px;
  font-weight:  600;
  color:        var(--color-text-primary);
  margin-top:   2em;
  margin-bottom: var(--space-2);
}

.essay-prose blockquote {
  border-left:  3px solid var(--color-accent);
  padding-left: 20px;
  margin:       1.5em 0;
  font-style:   normal;
  font-size:    18px;
  color:        var(--color-text-muted);
  background:   transparent;
}

.essay-prose blockquote p {
  margin-bottom: 0;
}

.essay-prose hr {
  border:     none;
  border-top: 1px solid var(--color-border);
  margin:     2.5em 0;
}

.essay-prose table {
  width:           100%;
  border-collapse: collapse;
  margin:          1.5em 0;
}

.essay-prose thead th {
  font-family:    var(--mono);
  font-size:      13px;
  font-weight:    600;
  text-transform: uppercase;
  color:          var(--color-text-muted);
  border-bottom:  1.5px solid var(--color-border);
  padding:        12px 16px;
  text-align:     left;
}

.essay-prose tbody tr:nth-child(odd) {
  background: var(--color-surface-warm);
}

.essay-prose tbody tr:nth-child(even) {
  background: var(--color-surface-subtle);
}

.essay-prose tbody td {
  font-size: 15px;
  color:     var(--color-text-muted);
  padding:   12px 16px;
}

/* ---- More thinking section ---- */

.essay-more {
  margin-top: var(--space-10);
}

.essay-more__rule {
  border:        none;
  border-top:    1px solid var(--color-border);
  margin-bottom: var(--space-5);
}

.essay-more__label {
  font-family:    var(--mono);
  font-size:      13px;
  font-weight:    400;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color:          var(--color-text-muted);
  margin:         0 0 var(--space-4);
}

.essay-more__list {
  list-style: none;
  padding:    0;
  margin:     0;
  display:    flex;
  flex-direction: column;
  gap:        var(--space-3);
}

.essay-more__link {
  font-family:     var(--mono);
  font-size:       var(--text-base);
  color:           var(--color-interactive);
  text-decoration: none;
}

.essay-more__link:hover {
  text-decoration: underline;
}
