/* CULTMEDIA portfolio only. Install identically at both approved CSS destinations. */
.portfolio-section { border-top: 1px solid var(--line); padding: clamp(64px, 9vw, 120px) 0; }
.portfolio-heading { display: grid; gap: 22px; margin-bottom: clamp(32px, 5vw, 58px); }
.portfolio-heading .kicker { display: block; margin-bottom: 16px; }
.portfolio-heading h2 { color: var(--soft); font-size: clamp(30px, 5vw, 58px); font-weight: 800; letter-spacing: -0.05em; line-height: .98; }
.portfolio-heading p { color: var(--muted); font-size: 16px; line-height: 1.65; max-width: 52ch; }
.portfolio-grid { display: grid; grid-template-columns: 1fr; border-top: 1px solid var(--line); }
.portfolio-card { grid-template-rows: auto 1fr; color: inherit; border-bottom: 1px solid var(--line); display: grid; padding: 18px 0 32px; text-decoration: none; }
a.portfolio-card { border-bottom-color: var(--line); }
.portfolio-card__cover { aspect-ratio: 3 / 2; background: rgba(232, 238, 224, .06); margin: 0 0 20px; overflow: hidden; }
.portfolio-card__cover img { display: block; height: 100%; object-fit: cover; transition: transform .5s ease; width: 100%; }
a.portfolio-card:hover .portfolio-card__cover img { transform: scale(1.025); }
.portfolio-card__copy { align-content: start; display: grid; gap: 12px; }
.portfolio-card__meta { color: var(--dim); display: flex; flex-wrap: wrap; font-size: 12px; gap: 8px 16px; letter-spacing: .08em; line-height: 1.4; text-transform: uppercase; }
.portfolio-card__meta span + span::before { content: '•'; margin-right: 16px; opacity: .72; }
.portfolio-card h3 { color: var(--soft); font-size: clamp(24px, 5vw, 36px); font-weight: 700; letter-spacing: -.045em; line-height: 1.02; }
.portfolio-card p { color: var(--muted); font-size: 16px; line-height: 1.6; max-width: 47ch; }
.portfolio-card__link { align-items: center; color: var(--accent); display: inline-flex; font-size: 14px; gap: 7px; margin-top: 8px; min-height: 44px; }
a.portfolio-card:hover .portfolio-card__link span { transform: translateX(4px); }
.portfolio-card__link span { transition: transform .2s ease; }
.portfolio-section__action { margin-top: 30px; }
.portfolio-card__placeholder { aspect-ratio: 3 / 2; background: rgba(232, 238, 224, .035); border: 1px solid var(--line); margin-bottom: 20px; }
.portfolio-card__status { border: 1px solid var(--accent); border-radius: 999px; color: var(--accent); font-size: 14px; justify-self: start; padding: 5px 14px; }
.portfolio-card--soon .portfolio-card__copy { align-content: start; }
@media (min-width: 720px) {
  .portfolio-heading { align-items: end; grid-template-columns: minmax(0, 1fr) minmax(260px, .62fr); }
  .portfolio-heading p { justify-self: end; }
  .portfolio-grid { gap: 0 30px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portfolio-card { padding: 24px 0 38px; }
  .portfolio-card--featured { grid-template-rows: 1fr; grid-column: span 2; grid-template-columns: minmax(0, 1.5fr) minmax(260px, 1fr); gap: 30px; }
  .portfolio-card--featured .portfolio-card__cover { margin-bottom: 0; }
  .portfolio-card--featured .portfolio-card__copy { align-content: end; padding: 8px 0 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .portfolio-card__cover img, .portfolio-card__link span { transition: none; }
  a.portfolio-card:hover .portfolio-card__cover img, a.portfolio-card:hover .portfolio-card__link span { transform: none; }
}

/* Portfolio index card kickers: 12px → 11px. */
#projects .portfolio-card__meta { font-size: 11px; }

/* Home portfolio carousel: one complete project per native scroll-snap slide. */
.portfolio-section--carousel .portfolio-carousel__track { display: grid; grid-auto-flow: column; grid-auto-columns: 100%; grid-template-columns: none; gap: 0; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--dim) transparent; }
.portfolio-carousel__track > .portfolio-card { grid-column: auto; min-width: 0; scroll-snap-align: start; scroll-snap-stop: always; }
.portfolio-carousel__track .portfolio-card__copy { min-width: 0; }
.portfolio-carousel__controls { display: none; align-items: center; justify-content: flex-end; gap: 16px; margin-top: 22px; }
[data-carousel-ready] .portfolio-carousel__controls { display: flex; }
.portfolio-carousel__button { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0; border: 1px solid var(--dim); border-radius: 50%; color: var(--soft); background: transparent; cursor: pointer; font: inherit; font-size: 24px; }
.portfolio-carousel__button:hover { color: var(--accent); border-color: var(--accent); }
.portfolio-carousel__button[aria-disabled="true"] { color: var(--dim); border-color: var(--line); cursor: default; }
.portfolio-carousel__button:focus-visible,
.portfolio-carousel__track:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.portfolio-carousel__counter { color: var(--muted); min-width: 68px; text-align: center; font-size: 13px; font-variant-numeric: tabular-nums; letter-spacing: .08em; }
.portfolio-carousel__current { color: var(--soft); }
@media (max-width: 719px) {
  .portfolio-carousel__track > .portfolio-card { grid-template-columns: minmax(0, 1fr); }
}
