/* Shared Project Doorway system — House and Chronicle indexes. */
[data-protected-art] { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
[data-protected-art] img { pointer-events: none; }
.house-projects { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: clamp(2.5rem, 4.5vw, 4.5rem) clamp(1.4rem, 2.8vw, 2.6rem); }
.house-project { display: grid; grid-template-rows: auto 1fr; min-width: 0; color: inherit; text-decoration: none; }
.house-project__visual { position: relative; aspect-ratio: 4 / 5; margin: 0; overflow: hidden; border: 1px solid rgba(215, 185, 111, 0.24); background: rgba(3, 5, 10, 0.94); -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
.house-project__visual::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent 58%, rgba(2, 3, 7, 0.2)); box-shadow: inset 0 0 2rem rgba(2, 3, 7, 0.14); }
.house-project__visual img { display: block; width: 100%; height: 100%; object-fit: cover; pointer-events: none; transition: filter 260ms ease, transform 420ms ease; }
.house-project--full-poster .house-project__visual img { object-fit: contain; }
.house-project__body { display: flex; flex-direction: column; align-items: flex-start; padding: 1.4rem 0.2rem 0; border-top: 1px solid rgba(215, 185, 111, 0.17); }
.house-project__code { margin: 0 0 1.15rem; color: var(--house-gold); font: 700 0.72rem/1 var(--house-ui); letter-spacing: 0.18em; text-transform: uppercase; }
.house-project h3 { margin: 0 0 0.55rem; color: var(--house-ivory); font-size: clamp(1.75rem, 2.7vw, 2.6rem); font-weight: 400; letter-spacing: -0.025em; line-height: 1.02; }
.house-project__subtitle { margin: 0 0 0.85rem; color: var(--house-gold); font-size: 0.94rem; font-style: italic; line-height: 1.4; }
.house-project__medium { margin: 0 0 1rem; color: var(--house-faint); font: 700 0.75rem/1.4 var(--house-ui); letter-spacing: 0.13em; text-transform: uppercase; }
.house-project__tagline { margin: 0 0 0.75rem; color: var(--house-ivory); font-size: 1.08rem; font-style: italic; line-height: 1.45; }
.house-project__text { margin: 0; color: var(--house-ivory-muted); font-size: 1rem; line-height: 1.65; }
.house-project__threshold { display: inline-flex; align-items: center; gap: 0.65rem; margin-top: auto; padding-top: 1.35rem; color: var(--house-gold); font: 700 0.76rem/1.3 var(--house-ui); letter-spacing: 0.13em; text-transform: uppercase; }
a.house-project .house-project__threshold::after { content: "→"; color: var(--house-gold-bright); font-size: 0.95rem; }
a.house-project:hover .house-project__visual img, a.house-project:focus-visible .house-project__visual img { filter: brightness(1.08); transform: scale(1.025); }
a.house-project:hover .house-project__threshold, a.house-project:focus-visible .house-project__threshold { color: var(--house-gold-bright); }
a.house-project:focus-visible { outline: 1px solid var(--house-gold); outline-offset: 0.55rem; }
.house-project--forming .house-project__visual { border-color: rgba(238, 232, 220, 0.13); }
.house-project--forming .house-project__threshold { color: var(--house-faint); }
.house-projects__status { grid-column: 1 / -1; margin: 0; color: var(--house-faint); font: 0.72rem/1.5 var(--house-ui); letter-spacing: 0.1em; text-transform: uppercase; }
@media (max-width: 640px) { .house-projects { gap: 3.5rem; } }
@media print { .house-project__visual::after { display: none; } .house-project h3 { color: #111; } }
@media (prefers-reduced-motion: reduce) { .house-project__visual img { transition: none; } }
