/* =================== INVENTORY — numbered archive ledger =================== */
/* Archivo Black (--font-black) for headings, DM Mono (--font-mono) for       */
/* everything administrative. paper-cobalt signature palette.                   */
/* All selectors scoped under .pg-inventory.                                    */

.pg-inventory {
  font-family: var(--font-mono);
  padding-bottom: 0;
}

/* ── Masthead ────────────────────────────────────────────────────────────── */

.pg-inventory .inv-masthead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 52px;
  padding: 0 clamp(1.2rem, 3.6cqw, 2.4rem);
  border-bottom: 2px solid var(--ink);
}

.pg-inventory .inv-logo {
  max-height: 32px;
  display: block;
}

.pg-inventory .inv-wordmark {
  font: 400 clamp(.88rem, 2.2cqw, 1.05rem)/1 var(--font-black);
  text-transform: uppercase;
  letter-spacing: .04em;
}

.pg-inventory .inv-mast-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

.pg-inventory .inv-mast-label {
  font: 500 7px/1 var(--font-mono);
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--muted);
}

.pg-inventory .inv-mast-holdings {
  font: 400 7px/1.5 var(--font-mono);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--muted);
  text-align: right;
}

/* ── Opening ─────────────────────────────────────────────────────────────── */

.pg-inventory .inv-opening {
  display: grid;
  grid-template-columns: 1fr .42fr;
  border-bottom: 2px solid var(--ink);
}

.pg-inventory .inv-opening-meta {
  display: flex;
  align-items: flex-start;
  gap: clamp(1.2rem, 3.4cqw, 2.2rem);
  padding: clamp(2rem, 6cqw, 4rem) clamp(1.2rem, 3.6cqw, 2.4rem);
  border-right: 1px solid var(--line);
}

.pg-inventory .inv-index-num {
  font: 400 clamp(4.4rem, 14cqw, 9.6rem)/1 var(--font-black);
  color: var(--accent);
  letter-spacing: -.03em;
  flex-shrink: 0;
  line-height: .9;
}

.pg-inventory .inv-name-block {
  align-self: center;
  min-width: 0;
}

.pg-inventory .inv-kicker {
  font: 500 8px/1.5 var(--font-mono);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: .7rem;
}

.pg-inventory h1.inv-name {
  font: 400 clamp(2rem, 6.2cqw, 4.2rem)/.86 var(--font-black);
  text-transform: uppercase;
  letter-spacing: -.01em;
  margin-bottom: clamp(.9rem, 2.2cqw, 1.5rem);
}

.pg-inventory .inv-bio {
  font: 400 clamp(.8rem, 1.7cqw, .93rem)/1.78 var(--font-mono);
  max-width: 460px;
  color: var(--muted);
}

.pg-inventory .inv-portrait {
  min-height: clamp(300px, 58cqh, 540px);
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 7px;
  padding: clamp(.9rem, 2.4cqw, 1.5rem);
  background: var(--surface);
}

.pg-inventory .inv-portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(.2) contrast(1.05);
  display: block;
}

.pg-inventory .inv-portrait figcaption {
  font: 400 7px/1 var(--font-mono);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
}

/* ── Holdings card (inverted) ────────────────────────────────────────────── */

.pg-inventory .inv-holdings {
  background: var(--ink);
  color: var(--bg);
  padding: clamp(1.8rem, 4.8cqw, 3.2rem) clamp(1.2rem, 3.6cqw, 2.4rem);
}

.pg-inventory .inv-holdings-label {
  font: 500 7px/1 var(--font-mono);
  letter-spacing: .24em;
  text-transform: uppercase;
  opacity: .6;
  margin-bottom: .8rem;
}

.pg-inventory .inv-holdings-line {
  font: 400 clamp(.8rem, 1.9cqw, .98rem)/1.65 var(--font-mono);
  letter-spacing: .05em;
  text-transform: uppercase;
  margin-bottom: clamp(1.4rem, 3.6cqw, 2.4rem);
}

.pg-inventory .inv-stats-row {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(1.6rem, 4.4cqw, 3.2rem);
}

.pg-inventory .inv-stat {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.pg-inventory .inv-stat b {
  font: 400 clamp(2.2rem, 6cqw, 3.8rem)/1 var(--font-black);
  color: var(--accent);
}

.pg-inventory .inv-stat span {
  font: 400 7px/1 var(--font-mono);
  letter-spacing: .16em;
  text-transform: uppercase;
  opacity: .72;
}

/* ── Shared section head: accent stamp + entry count ─────────────────────── */

.pg-inventory .inv-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .65rem clamp(1.2rem, 3.6cqw, 2.4rem);
  border-bottom: 1px solid var(--line);
}

.pg-inventory .inv-stamp {
  display: inline-block;
  padding: 3px 9px 4px;
  background: var(--accent);
  color: var(--bg);
  font: 700 7px/1 var(--font-mono);
  letter-spacing: .18em;
  text-transform: uppercase;
  transition: transform .15s ease;
}

.pg-inventory .inv-stamp:hover {
  animation: inv-stamp-wiggle .28s ease;
}

.pg-inventory .inv-section-count {
  font: 400 7px/1 var(--font-mono);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
}

/* ── Sections: thick top rule ────────────────────────────────────────────── */

.pg-inventory .inv-ledger-section,
.pg-inventory .inv-tracks-section,
.pg-inventory .inv-specimens-section,
.pg-inventory .inv-reel-section,
.pg-inventory .inv-catalogue {
  border-top: 2px solid var(--ink);
}

/* ── Productions ledger ──────────────────────────────────────────────────── */

.pg-inventory .inv-ledger {
  padding: 0 clamp(1.2rem, 3.6cqw, 2.4rem);
}

/* Default: rows visible (legible without JS) */
.pg-inventory .inv-row {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) 40px;
  align-items: center;
  gap: 16px;
  min-height: 52px;
  border-bottom: 1px solid var(--line);
  transition: opacity .38s ease, transform .38s ease;
}

/* Editor animate mode: conceal rows until parent .inv-ledger-section gets .in */
.stage.animate .pg-inventory .inv-row {
  opacity: 0;
  transform: translateY(7px);
}

/* Reveal with stagger (transition-delay set inline per row) */
.stage.animate .pg-inventory .inv-ledger-section.in .inv-row {
  opacity: 1;
  transform: translateY(0);
}

.pg-inventory .inv-row-ref {
  font: 400 7.5px/1 var(--font-mono);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--accent);
  white-space: nowrap;
}

.pg-inventory .inv-row-title {
  font: 400 clamp(.88rem, 1.9cqw, 1.02rem)/1.25 var(--font-mono);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pg-inventory .inv-row-num {
  font: 400 7.5px/1 var(--font-mono);
  letter-spacing: .1em;
  color: var(--muted);
  text-align: right;
  white-space: nowrap;
}

.pg-inventory .inv-ledger-more {
  padding: .9rem clamp(1.2rem, 3.6cqw, 2.4rem);
  font: 400 7.5px/1 var(--font-mono);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
  border-top: 1px solid var(--line);
}

/* ── Tracks section ──────────────────────────────────────────────────────── */

.pg-inventory .inv-tracks-section .tracks {
  margin: 0;
  padding: 0 clamp(1.2rem, 3.6cqw, 2.4rem);
}

/* ── Specimen grid ───────────────────────────────────────────────────────── */

.pg-inventory .inv-specimen-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.pg-inventory .inv-specimen {
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--surface);
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  transition: opacity .4s ease, transform .4s ease;
}

/* Specimen animate reveal */
.stage.animate .pg-inventory .inv-specimen {
  opacity: 0;
  transform: scale(.96);
}

.stage.animate .pg-inventory .inv-specimens-section.in .inv-specimen {
  opacity: 1;
  transform: scale(1);
}

.pg-inventory .inv-specimen img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  filter: grayscale(.25) contrast(1.04);
  display: block;
}

.pg-inventory .inv-specimen figcaption {
  font: 400 7px/1 var(--font-mono);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 5px 8px 6px;
}

/* ── Showreel ─────────────────────────────────────────────────────────────── */

.pg-inventory .inv-reel-section .inv-section-head {
  justify-content: flex-start;
}

.pg-inventory .inv-yt {
  aspect-ratio: 16 / 9;
}

.pg-inventory .inv-yt iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* ── Catalogue columns ────────────────────────────────────────────────────── */

.pg-inventory .inv-catalogue {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.pg-inventory .inv-col {
  padding: clamp(1.8rem, 4.8cqw, 3.2rem) clamp(1.2rem, 3cqw, 2rem);
  border-right: 1px solid var(--line);
}

.pg-inventory .inv-col:last-child {
  border-right: 0;
}

.pg-inventory .inv-col-head {
  margin-bottom: 1.1rem;
}

.pg-inventory .inv-col-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.pg-inventory .inv-col-list li {
  display: grid;
  grid-template-columns: 26px 1fr;
  gap: 8px;
  min-height: 38px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  font: 400 clamp(.78rem, 1.65cqw, .9rem)/1.4 var(--font-mono);
}

.pg-inventory .inv-col-num {
  font: 400 7px/1 var(--font-mono);
  letter-spacing: .1em;
  color: var(--muted);
}

.pg-inventory .inv-col-more {
  margin-top: .75rem;
  font: 400 7.5px/1 var(--font-mono);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
}

.pg-inventory .inv-terr-list {
  font: 400 clamp(.78rem, 1.65cqw, .88rem)/1.72 var(--font-mono);
  color: var(--muted);
}

/* ── Contact footer (inverted) ────────────────────────────────────────────── */

.pg-inventory .inv-contact {
  background: var(--ink);
  color: var(--bg);
  padding: clamp(2.8rem, 8cqw, 5.4rem) clamp(1.2rem, 3.6cqw, 2.4rem) 2.4rem;
  border-top: 2px solid var(--ink);
}

.pg-inventory .inv-contact-head-bar {
  display: flex;
  align-items: center;
  padding-bottom: clamp(1.6rem, 4cqw, 2.6rem);
  border-bottom: 1px solid color-mix(in srgb, var(--bg) 28%, transparent);
  margin-bottom: clamp(1.8rem, 4.4cqw, 2.8rem);
}

.pg-inventory h2.inv-contact-name {
  font: 400 clamp(2.8rem, 10cqw, 6.4rem)/.82 var(--font-black);
  text-transform: uppercase;
  letter-spacing: -.01em;
  margin-bottom: clamp(2rem, 5.4cqw, 3.6rem);
}

.pg-inventory .inv-contact-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.4rem;
  padding-top: 18px;
  border-top: 1px solid color-mix(in srgb, var(--bg) 28%, transparent);
}

.pg-inventory .inv-contact-link {
  font: 500 9px/1 var(--font-mono);
  letter-spacing: .08em;
  text-decoration: underline;
  text-underline-offset: 4px;
  color: inherit;
}

.pg-inventory .inv-contact-link:hover {
  color: var(--accent);
}

.pg-inventory .inv-soc {
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem;
}

.pg-inventory .inv-contact .colophon {
  color: inherit;
  opacity: .45;
  margin-top: 3rem;
}

/* ── Responsive: 700px ────────────────────────────────────────────────────── */

@container page (max-width: 700px) {
  .pg-inventory .inv-opening {
    grid-template-columns: 1fr;
  }

  .pg-inventory .inv-opening-meta {
    border-right: 0;
  }

  .pg-inventory .inv-portrait {
    min-height: clamp(220px, 52cqh, 360px);
    border-top: 1px solid var(--line);
  }

  .pg-inventory .inv-index-num {
    font-size: clamp(3.6rem, 18cqw, 5.8rem);
  }

  .pg-inventory .inv-specimen-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .pg-inventory .inv-catalogue {
    grid-template-columns: 1fr 1fr;
  }

  .pg-inventory .inv-col:nth-child(2) {
    border-right: 0;
  }

  .pg-inventory .inv-col:nth-child(3) {
    grid-column: 1 / -1;
    border-right: 0;
    border-top: 1px solid var(--line);
  }

  .pg-inventory .inv-mast-holdings {
    display: none;
  }
}

/* ======== MOTION POLISH — scroll-reveal & hover ========================== */

/* ::selection accent */
.pg-inventory ::selection {
  background: var(--accent);
  color: var(--bg);
}

/* Tabular-nums for all index/ref counters — crisp, mechanical */
.pg-inventory .inv-row-num,
.pg-inventory .inv-index-num,
.pg-inventory .inv-col-num,
.pg-inventory .inv-stat b {
  font-variant-numeric: tabular-nums;
}

/* ── Accession label stamp settle: scale 1.1 → 1 just after the row slides in ── */
/* --rd is set inline per span, matching the parent row's transition-delay.        */
/* delay = rd + 300ms ≈ moment row opacity finishes (row transition is 380ms).    */

.stage.animate .pg-inventory .inv-row-ref {
  transform: scale(1.1);
  transition: transform .3s cubic-bezier(.22, 1, .36, 1)
              calc(var(--rd, 0ms) + 310ms);
}

.stage.animate .pg-inventory .inv-ledger-section.in .inv-row-ref {
  transform: scale(1);
}

/* ── Specimen grid: hover lifts to full colour ── */

.pg-inventory .inv-specimen:hover img {
  filter: grayscale(0) contrast(1.06);
}

/* ── Classification stamp: subtle one-shot wiggle on hover ── */

@keyframes inv-stamp-wiggle {
  0%   { transform: rotate(0deg); }
  28%  { transform: rotate(-.8deg); }
  72%  { transform: rotate(1deg); }
  100% { transform: rotate(0deg); }
}

/* ── prefers-reduced-motion ── */

@media (prefers-reduced-motion: reduce) {
  .stage.animate .pg-inventory .inv-row-ref {
    transform: scale(1) !important;
    transition: none !important;
  }

  .pg-inventory .inv-stamp:hover {
    animation: none !important;
  }
}

/* ── Responsive: 480px ────────────────────────────────────────────────────── */

@container page (max-width: 480px) {
  .pg-inventory .inv-opening-meta {
    flex-wrap: wrap;
  }

  .pg-inventory .inv-index-num {
    width: 100%;
    font-size: clamp(4rem, 22cqw, 7rem);
    line-height: 1;
  }

  .pg-inventory .inv-specimen-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .pg-inventory .inv-catalogue {
    grid-template-columns: 1fr;
  }

  .pg-inventory .inv-col {
    border-right: 0;
    border-top: 1px solid var(--line);
  }

  .pg-inventory .inv-col:first-child {
    border-top: 0;
  }

  .pg-inventory .inv-row {
    grid-template-columns: 66px minmax(0, 1fr);
  }

  .pg-inventory .inv-row-num {
    display: none;
  }

  .pg-inventory .inv-stats-row {
    gap: 1.2rem 2rem;
  }

  .pg-inventory .inv-holdings-line {
    font-size: .78rem;
  }
}
