/* components/cards.css — catalogue plates: bone sheet, 1px ink hairline,
   stipple shadow, corner clamps. The rust dread line is retired; hover is
   a held breath, not a light. */
.card{
  background-color:var(--paper);
  border:1px solid var(--ink); border-radius:0;
  padding:1.6rem; position:relative;
  transition:box-shadow .25s;
}
.card__media{ overflow:hidden }
/* deep shadow = tight dense stipple below the plate */
.card::after{
  content:""; position:absolute; left:6px; right:0; top:100%; height:9px; pointer-events:none;
  background:var(--tone-dense); background-size:4px 4px; opacity:.45; transition:opacity .3s;
}
/* one registration clamp, top-left only — the corner is wrong, quietly */
.card::before{
  content:""; position:absolute; top:-1px; left:-1px; width:12px; height:12px; pointer-events:none;
  border-top:1px solid var(--ink); border-left:1px solid var(--ink); opacity:.9;
}
.card:hover{ box-shadow:0 0 0 1px var(--ink) }   /* a second hairline, no layout shift */
.card:hover::after{ opacity:.6 }
/* the dread smear is retired — a rust hairline appears once, along the foot */
.card .card__dread{ position:absolute; inset:auto 0 0 0; height:1px; opacity:0; transition:opacity .8s;
  background:var(--rust) }
.card:hover .card__dread{ opacity:.55 }
/* recurring archive stamp — a catalogue code, ghosted on every plate */
.card__stamp{ position:absolute; right:.65rem; top:.65rem; z-index:3; pointer-events:none;
  font-family:var(--font-mono); font-size:10px; font-weight:400; line-height:1.6;
  letter-spacing:.26em; text-transform:uppercase; text-align:right; color:var(--fg-muted);
  opacity:.5; transform:rotate(-.6deg);
  border:1px solid var(--rule); padding:.2rem .4rem; }
.card__stamp::before{ content:"REC. 04 · UNVERIFIED"; white-space:pre }
.card__stamp::after{ content:"DO NOT DISTRIBUTE"; display:block; color:var(--rust) }
.card:hover .card__stamp{ opacity:.7 }
.card--link{ cursor:pointer; display:flex; flex-direction:column; color:inherit; text-decoration:none }
.card__media{ flex:0 0 auto; aspect-ratio:16/9; border-radius:0; margin:-1.6rem -1.6rem 1.4rem;
  border-bottom:1px solid var(--ink); display:grid; place-items:center; overflow:hidden; position:relative }
/* image media: soft monochrome atmosphere — never dithered, never dot-overlaid */
.card__media > img{ filter:grayscale(1) contrast(1.04) }
/* refined plate (one per route, ≤512px source, lazy, aspect box reserved) */
.card__media.plate{ background:var(--bone) }
.card__media.plate > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover }
.card__glyph{ font-size:3rem; opacity:.6; filter:grayscale(1) }
.card__title{ font-size:1.35rem; margin:0 0 .45rem; letter-spacing:.005em }
.card__desc{ color:var(--fg-muted); font-size:.95rem; margin:0 0 2rem; flex:1 1 auto }
.card .row{ flex:0 0 auto }
/* tags: hairline-topped log codes, never pills with fills */
.tag{ display:inline-block; position:relative; font-family:var(--font-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  padding:.22rem .1rem; border:0; border-bottom:1px solid var(--ink); color:var(--ink);
  background:none; margin:0 .7rem .35rem 0; opacity:.8 }
.tag--muted{ border-bottom-color:var(--rule); color:var(--fg-muted) }
/* status reads as a log code: live = plain ink rule, dev = grey wash,
   archive = rust hairline box. No glow, no green. */
.pill-status{ font-family:var(--font-mono); font-size:11px; text-transform:uppercase; letter-spacing:.22em;
  padding:.25rem .6rem; border-radius:0; font-weight:400; background:none }
.pill-status[data-s="live"]{ color:var(--ink); border:1px solid var(--ink) }
.pill-status[data-s="dev"]{ color:var(--fg-muted); border:1px solid var(--rule) }
.pill-status[data-s="archive"]{ color:var(--wash); border:1px solid var(--rule);
  filter:saturate(.4); text-decoration:line-through }
.card__meta{ display:flex; justify-content:space-between; align-items:center; margin-top:auto;
  font-family:var(--font-mono); font-size:11px; color:var(--fg-muted); letter-spacing:.08em }
