/* ==========================================================================
   NEGUSTOLONOW — site/css/objects.css
   objects.html only. An index, then ten small entries; the long record of each sits in a closed <details>,
   which holds the release price. Under the ten, #worn: the three things that are worn under the shirt,
   which are not objects. The drawings are pickable, so each stage answers to a hand.
   Tokens only; every override is scoped under body[data-page="objects"]. No new hex here.
   ========================================================================== */

/* I. the class, opened ------------------------------------------------------ */
/* TYPE RULE (stated in full in css/house.css). "Objects" is a class name, not a
   slogan, so it stays large — but 34rem was the page shouting a common noun. It is
   set here at the shared display scale, which is still too large, deliberately. */
body[data-page="objects"] .objects-open h1 { font-size: var(--t-giant); margin-left: -0.035em; }
body[data-page="objects"] .objects-open__grid { margin-top: var(--s-7); }
body[data-page="objects"] .objects-open__class { color: var(--ink-soft); line-height: 1.7; }
body[data-page="objects"] .objects-open__rooms { margin-bottom: var(--s-5); }

/* II. the index -------------------------------------------------------------- */
body[data-page="objects"] #index .room__head { margin-bottom: var(--s-5); }
body[data-page="objects"] #index { padding-bottom: var(--s-8); }
body[data-page="objects"] .objects-missing { margin-bottom: var(--s-5); padding: var(--s-3) var(--s-4); background: var(--buff); color: var(--lampblack); max-width: 44rem; }
body[data-page="objects"] .objects-index .objects-index__row { grid-template-columns: 7.5rem minmax(0, 1fr) minmax(0, 13rem) 6.5rem minmax(0, 15rem); }
body[data-page="objects"] .objects-index__row--head { padding-block: 0.5rem; }
body[data-page="objects"] .objects-index__row[aria-current] { box-shadow: inset 5px 0 0 var(--accent); }
body[data-page="objects"] .objects-index__row--one .objects-index__size { font-style: italic; font-family: var(--f-serif); font-size: 0.92rem; }
body[data-page="objects"] .objects-index__row { padding-inline: var(--s-3); }
@media (max-width: 64rem) {
  body[data-page="objects"] .objects-index .objects-index__row { grid-template-columns: 7.5rem minmax(0, 1fr) 6.5rem minmax(0, 13rem); }
  body[data-page="objects"] .objects-index__type { display: none; }
}
@media (max-width: 40rem) {
  body[data-page="objects"] .objects-index .objects-index__row { grid-template-columns: minmax(0, 1fr) auto; }
  body[data-page="objects"] .objects-index__row > .objects-index__size { grid-column: 2; grid-row: 1; }
  body[data-page="objects"] .objects-index__row > .objects-index__state { grid-column: 1 / -1; grid-row: 3; }
  body[data-page="objects"] .objects-index__row--head { display: none; }
}

/* III. an entry -------------------------------------------------------------- */
body[data-page="objects"] .objects-entry { padding-top: 0; padding-bottom: var(--s-7); }
body[data-page="objects"] .objects-entry__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-5) var(--gutter); align-items: start; }
body[data-page="objects"] .objects-entry__no { display: block; font-size: clamp(6rem, 17vw, 15rem); line-height: 0.74; letter-spacing: -0.03em; margin: -0.035em 0 0 -0.04em; }
body[data-page="objects"] .objects-entry__title { padding-bottom: 0.2rem; }
body[data-page="objects"] .objects-entry__name { font-family: var(--f-display); font-weight: 800; font-size: clamp(2.3rem, 4.6vw, 4.2rem); line-height: 0.92; letter-spacing: -0.005em; text-transform: uppercase; text-wrap: balance; max-width: 13em; }
body[data-page="objects"] .objects-entry__name:focus { outline: none; }
body[data-page="objects"] .objects-entry__name:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
body[data-page="objects"] .objects-entry__title .lede { max-width: 30rem; }
body[data-page="objects"] .objects-entry__text { max-width: 34rem; }
body[data-page="objects"] .objects-entry__text .prose { font-size: 1rem; }
@media (min-width: 56rem) {
  body[data-page="objects"] .objects-entry__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); row-gap: var(--s-7); }
  body[data-page="objects"] .objects-entry__title { align-self: end; }
  body[data-page="objects"] .objects-entry__text { padding-top: var(--s-2); }
}

/* the entry that the address names */
body[data-page="objects"] .objects-entry.is-target { border-top-color: var(--accent); }
body[data-page="objects"] .objects-entry.is-target .objects-entry__no { color: var(--accent); }
@media (prefers-reduced-motion: no-preference) {
  body[data-page="objects"] .objects-entry.is-target { animation: objects-arrive 1.8s var(--ease) 1; }
}
@keyframes objects-arrive { from { background-color: var(--paper-2); } to { background-color: var(--paper); } }

/* the drawing, held to the height of the window */
body[data-page="objects"] .objects-plate { --r: 0.62; max-width: min(100%, calc(54vh * var(--r))); min-width: min(100%, 13rem); }
body[data-page="objects"] .objects-plate--jacket { --r: 0.95; }
body[data-page="objects"] .objects-plate--shirt { --r: 0.86; }
body[data-page="objects"] .objects-plate--trouser { --r: 0.6; }
body[data-page="objects"] .objects-plate--knit { --r: 1; }
body[data-page="objects"] .objects-plate--bag { --r: 0.5; }
body[data-page="objects"] .objects-plate--ring { --r: 1.3; }
body[data-page="objects"] .objects-plate--book { --r: 0.8; }
body[data-page="objects"] .objects-plate .plate__frame { border: var(--rule-hair) solid var(--hair); }

/* the drawing is the thing there is to pick up, so the whole stage answers to a hand */
body[data-page="objects"] .objects-plate__pick { display: block; color: inherit; text-decoration: none; cursor: pointer; }
body[data-page="objects"] .objects-plate__pick:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
body[data-page="objects"] .objects-plate__pick:hover .plate__frame,
body[data-page="objects"] .objects-plate__pick:focus-visible .plate__frame { border-color: var(--accent); }
body[data-page="objects"] .objects-plate__pick.is-kept .plate__frame { border-color: var(--accent); border-width: var(--rule); }
body[data-page="objects"] .objects-plate__pick.is-notyet .plate__frame { border-style: dotted; }
body[data-page="objects"] .objects-plate__take { display: block; margin-top: var(--s-3); font-family: var(--f-mono); font-size: var(--t-micro); letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-soft); }
body[data-page="objects"] .objects-plate__take i { font-style: normal; display: inline-block; transition: transform 0.35s var(--ease); }
body[data-page="objects"] .objects-plate__pick:hover .objects-plate__take,
body[data-page="objects"] .objects-plate__pick:focus-visible .objects-plate__take { color: var(--accent); }
body[data-page="objects"] .objects-plate__pick:hover .objects-plate__take i,
body[data-page="objects"] .objects-plate__pick:focus-visible .objects-plate__take i { transform: translateX(4px); }
body[data-page="objects"] .objects-plate__pick.is-kept .objects-plate__take::after { content: " ·"; color: var(--accent); }
@media (prefers-reduced-motion: reduce) { body[data-page="objects"] .objects-plate__take i { transition: none; } }

/* edition, price, the request */
body[data-page="objects"] .objects-edition { width: 100%; padding-bottom: var(--s-3); border-bottom: var(--rule) solid var(--line); }
body[data-page="objects"] .objects-edition.edition--inline .edition__object, body[data-page="objects"] .objects-edition.edition--inline .edition__no { font-size: 1.35rem; letter-spacing: 0.04em; }
body[data-page="objects"] .objects-acquire { margin-top: var(--s-6); max-width: 22rem; gap: var(--s-3); }

/* the state line, in the Counter's mono, where the price used to stand. The price is inside the record. */
body[data-page="objects"] .objects-state { margin-top: var(--s-6); padding-top: var(--s-3); border-top: var(--rule-hair) solid var(--hair); max-width: 22rem; color: var(--ink-soft); letter-spacing: 0.02em; }
body[data-page="objects"] .objects-release { margin-top: var(--s-6); color: var(--ink-soft); letter-spacing: 0.02em; }

/* the full record: one closed <details> per object */
body[data-page="objects"] .objects-record { margin-top: var(--s-7); border-top: var(--rule-hair) solid var(--line); }
body[data-page="objects"] .objects-record__summary { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s-4); padding-block: var(--s-4); cursor: pointer; list-style: none; font-family: var(--f-display); font-weight: 700; font-size: 1.05rem; letter-spacing: 0.12em; line-height: 1; text-transform: uppercase; }
body[data-page="objects"] .objects-record__summary::-webkit-details-marker { display: none; }
body[data-page="objects"] .objects-record__summary:hover .objects-record__label { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
body[data-page="objects"] .objects-record__mark { font-family: var(--f-mono); font-weight: 400; font-size: 1rem; letter-spacing: 0; color: var(--ink-soft); }
body[data-page="objects"] .objects-record__mark::before { content: "+"; }
body[data-page="objects"] .objects-record[open] .objects-record__mark::before { content: "–"; }
body[data-page="objects"] .objects-record[open] > .objects-record__summary { border-bottom: var(--rule) solid var(--line); }
body[data-page="objects"] .objects-record__body { padding-bottom: var(--s-5); }

body[data-page="objects"] .objects-part { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-4) var(--gutter); padding-block: var(--s-6); border-bottom: var(--rule-hair) solid var(--hair); }
body[data-page="objects"] .objects-part__h { font-family: var(--f-display); font-weight: 700; font-size: 0.86rem; letter-spacing: 0.14em; line-height: 1.2; text-transform: uppercase; color: var(--ink-soft); }
body[data-page="objects"] .objects-part__body { min-width: 0; max-width: 58rem; }
@media (min-width: 56rem) { body[data-page="objects"] .objects-part { grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); } }
body[data-page="objects"] .objects-cited-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 11rem), 15rem)); gap: var(--s-5) var(--gutter); margin-top: var(--s-6); align-items: start; }
body[data-page="objects"] .objects-cited .caption { max-width: 22rem; }
body[data-page="objects"] .objects-part .concepts { max-width: 30rem; }

/* rejected versions: pale, crossed through, kept */
body[data-page="objects"] .objects-ancestors { grid-template-columns: repeat(auto-fill, minmax(min(100%, 10rem), 13rem)); }
body[data-page="objects"] .objects-ancestors--ring, body[data-page="objects"] .objects-ancestors--knit, body[data-page="objects"] .objects-ancestors--jacket { grid-template-columns: repeat(auto-fill, minmax(min(100%, 12rem), 16rem)); }
body[data-page="objects"] .objects-ghost { opacity: 0.86; }
body[data-page="objects"] .objects-ghost .plate__frame { border: var(--rule-hair) dashed var(--hair); }

/* references out: ledger threads, single pieces */
body[data-page="objects"] .objects-refs-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: var(--s-5) var(--gutter); max-width: 46rem; }
body[data-page="objects"] .objects-refs { margin-top: var(--s-3); border-top: var(--rule-hair) solid var(--line); }
body[data-page="objects"] .objects-refs li { display: grid; gap: 0.15rem; padding-block: 0.6rem; border-bottom: var(--rule-hair) solid var(--hair); font-size: var(--t-small); line-height: 1.4; }
body[data-page="objects"] .objects-refs__meta { font-family: var(--f-mono); font-size: var(--t-micro); color: var(--ink-faint); text-transform: uppercase; }
body[data-page="objects"] .objects-entry__foot { margin-top: var(--s-5); color: var(--ink-soft); }

/* OBJECT 010, one of one. The room holds no iodine, because the coat holds none. */
body[data-page="objects"] .objects-entry--one { --accent: var(--slack); }
body[data-page="objects"] .objects-entry--one .objects-entry__no { color: var(--ink-faint); }
@supports (-webkit-text-stroke: 1px black) {
  body[data-page="objects"] .objects-entry--one .objects-entry__no { color: transparent; -webkit-text-stroke: 1.5px var(--ink-soft); }
  body[data-page="objects"] .objects-entry--one.is-target .objects-entry__no { color: transparent; -webkit-text-stroke-color: var(--ink); }
}
body[data-page="objects"] .objects-entry--one .objects-edition { border-bottom-color: var(--hair); }
body[data-page="objects"] .objects-entry--one .btn--solid:hover, body[data-page="objects"] .objects-entry--one .btn--solid:focus-visible { background: var(--buff); border-color: var(--buff); color: var(--lampblack); }
body[data-page="objects"] .objects-entry--one .objects-ghost { opacity: 1; }

/* IV. worn under the shirt ---------------------------------------------------- */
/* Three things that are not objects: no accession, no edition, no number. The plates are
   [data-plate] mounts, which art.js fills from PLATES when the files land; until then the
   pending frame stands with its description on it. The page carries no <img>. */
body[data-page="objects"] .worn__line { margin-bottom: var(--s-6); }
body[data-page="objects"] .worn__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: var(--s-7) var(--gutter); align-items: start; }
body[data-page="objects"] .worn-card__plate { max-width: 24rem; }
body[data-page="objects"] .objects-record__plate { max-width: 24rem; margin-bottom: var(--s-6); }
body[data-page="objects"] .worn-card__h { margin-top: var(--s-5); font-family: var(--f-display); font-weight: 700; font-size: 1.45rem; line-height: 1; letter-spacing: 0.02em; text-transform: uppercase; }
body[data-page="objects"] .worn-card .prose { margin-top: var(--s-3); font-size: 1rem; max-width: 30rem; }
body[data-page="objects"] .worn-card .objects-state { margin-top: var(--s-5); max-width: none; }

body[data-page="objects"] .plate-pending__frame { position: relative; aspect-ratio: var(--plate-ratio, 4 / 5); background: var(--board); border: var(--rule-hair) solid var(--hair); }
body[data-page="objects"] .plate-pending__frame::before { content: ""; position: absolute; inset: 7%; border: var(--rule-hair) dashed var(--ink-faint); }
body[data-page="objects"] .plate-pending__mark { position: absolute; left: 7%; bottom: 7%; transform: translateY(1.6em); font-family: var(--f-mono); font-size: 0.7rem; letter-spacing: 0.04em; color: var(--ink-faint); }
body[data-page="objects"] .plate-pending .caption { margin-top: calc(var(--s-3) + 1.6em); }

/* V. onward */
body[data-page="objects"] .objects-onward .cat-grid { row-gap: var(--s-6); }

@media (max-width: 47.99rem) {
  body[data-page="objects"] .objects-record { margin-top: var(--s-6); }
  body[data-page="objects"] .objects-part { padding-block: var(--s-5); }
}

@media print {
  body[data-page="objects"] .objects-entry { break-before: page; }
  body[data-page="objects"] .objects-entry--one { --ink: var(--lampblack); }
}
