/* ============================ PORTFOLIO ============================ */
/* Minimal stub page. Matches the home page's cream tone, type scale, and
   nav/footer. Built deliberately bare — long-form write-ups land in a later
   sweep that pulls from JUSTIN.md and active/. */

/* ---------- HEADER ---------- */
.pf-header {
  background: var(--color-cream);
  padding-block: clamp(7rem, 5rem + 8vw, 11rem) var(--space-section);
  border-bottom: var(--border-hair);
}
.pf-header__title {
  font-size: clamp(2.5rem, 1.4rem + 4.6vw, 5rem);
  line-height: var(--leading-tight);
  margin: var(--space-md) 0 var(--space-lg);
  max-width: 18ch;
}
.pf-header__sub {
  font-size: var(--text-lg);
  color: var(--color-muted);
  max-width: 56ch;
  line-height: var(--leading-snug);
}

/* ---------- ENTRIES ---------- */
.pf-entries {
  background: var(--color-cream);
  padding-block: var(--space-section);
}
.pf-entry {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(2rem, 1rem + 4vw, 5rem);
  padding-block: clamp(3rem, 2rem + 4vw, 6rem);
  border-top: var(--border-hair);
}
.pf-entry:last-child {
  border-bottom: var(--border-hair);
}
.pf-entry__num {
  font-family: var(--font-display);
  font-size: var(--text-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-muted);
  margin: 0 0 var(--space-2xs);
}
.pf-entry__kicker {
  font-family: var(--font-display);
  font-size: var(--text-base);
  letter-spacing: -0.005em;
  color: var(--color-ink);
  margin: 0;
  font-weight: 600;
}
.pf-entry__title {
  font-size: clamp(1.75rem, 1.2rem + 2.4vw, 3rem);
  line-height: var(--leading-tight);
  margin: 0 0 var(--space-md);
  max-width: 18ch;
}
.pf-entry__lede {
  font-size: var(--text-lg);
  color: var(--color-muted);
  line-height: var(--leading-snug);
  margin: 0 0 var(--space-lg);
  max-width: 56ch;
}
.pf-entry__facts {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: var(--space-sm);
  border-top: var(--border-hair);
  padding-top: var(--space-md);
  max-width: 56ch;
}
.pf-entry__facts li {
  display: grid;
  grid-template-columns: 7rem 1fr;
  gap: var(--space-sm);
  font-size: var(--text-sm);
  color: var(--color-ink);
}
.pf-entry__facts li span {
  font-family: var(--font-display);
  font-size: var(--text-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-muted);
  align-self: center;
}

/* ---------- LONG TAIL ---------- */
/* Dense magazine-index feel. Bold name + em-dash + muted descriptor, grouped
   by domain with small-caps category headers, multi-column on desktop. */
.pf-longtail {
  background: var(--color-cream);
  padding-block: var(--space-section);
  border-top: var(--border-hair);
}
.pf-longtail__head {
  max-width: 64ch;
  margin-bottom: clamp(3rem, 2rem + 3vw, 5rem);
}
.pf-longtail__title {
  font-size: clamp(2rem, 1.4rem + 2.4vw, 3.25rem);
  line-height: var(--leading-tight);
  margin: var(--space-md) 0 var(--space-lg);
  max-width: 22ch;
}
.pf-longtail__sub {
  font-size: var(--text-lg);
  color: var(--color-muted);
  line-height: var(--leading-snug);
  max-width: 60ch;
  margin: 0;
}
.pf-longtail__group {
  margin-top: clamp(2rem, 1.5rem + 2vw, 3.5rem);
  padding-top: var(--space-lg);
  border-top: var(--border-hair);
}
.pf-longtail__cat {
  font-family: var(--font-display);
  font-size: var(--text-xs);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-muted);
  font-weight: 600;
  margin: 0 0 var(--space-lg);
}
.pf-longtail__cat a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: var(--color-line);
  text-underline-offset: 3px;
}
.pf-longtail__cat a:hover {
  text-decoration-color: var(--color-ink);
}
.pf-longtail__list {
  list-style: none;
  padding: 0;
  margin: 0;
  columns: 2;
  column-gap: clamp(2rem, 1rem + 4vw, 4rem);
}
.pf-longtail__list li {
  break-inside: avoid;
  margin-bottom: var(--space-md);
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-muted);
}
.pf-longtail__list li strong {
  font-weight: 600;
  color: var(--color-ink);
  /* Display family for the monospace-ish name look without locking in a mono font */
  letter-spacing: -0.005em;
}

/* ---------- OUTRO (dark) ---------- */
.pf-outro {
  background: var(--color-black);
  color: var(--color-on-dark);
  padding-block: var(--space-section);
}
.pf-outro__inner {
  max-width: 60ch;
}
.pf-outro__eyebrow {
  color: var(--color-on-dark-muted);
}
.pf-outro__title {
  font-size: clamp(2rem, 1.4rem + 2.8vw, 3.5rem);
  line-height: var(--leading-tight);
  margin: var(--space-md) 0 var(--space-md);
  max-width: 18ch;
}
.pf-outro__text {
  font-size: var(--text-lg);
  color: var(--color-on-dark-muted);
  margin: 0 0 var(--space-lg);
  max-width: 48ch;
  line-height: var(--leading-snug);
}
.pf-outro__cta {
  display: inline-block;
  padding: 0.95rem 1.4rem;
  background: var(--color-on-dark);
  color: var(--color-black);
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: -0.005em;
  border-radius: 2px;
  text-decoration: none;
  transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1),
              background-color 200ms ease;
}
.pf-outro__cta:hover {
  transform: translateY(-1px);
  background: #fff;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 900px) {
  .pf-entry {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }
  .pf-entry__facts li {
    grid-template-columns: 1fr;
    gap: var(--space-2xs);
  }
  .pf-longtail__list {
    columns: 1;
  }
}
