*{box-sizing:border-box}
body{margin:0;background:#f5f1e9;color:#151515;font-family:Georgia,'Times New Roman',serif}
main{max-width:1240px;margin:auto;padding:26px}
.hero{min-height:86vh;display:flex;flex-direction:column;justify-content:center;border-bottom:1px solid #111}
.small,.show-head span{font-family:Arial,sans-serif;text-transform:uppercase;letter-spacing:.18em;font-size:.75rem}
h1{font-size:clamp(3.4rem,10vw,9rem);line-height:.82;margin:18px 0}
.intro{font-size:clamp(1.1rem,2vw,1.55rem);line-height:1.45;max-width:880px}
.buttons,.filter{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
button{border:1px solid #111;background:#111;color:white;border-radius:999px;padding:12px 18px;cursor:pointer;font-size:1rem}
button:hover{background:transparent;color:#111}
.show-head{display:grid;grid-template-columns:2fr 1fr 1fr;gap:20px;padding:28px 0;border-bottom:1px solid #111}
.show-head h2,.show-head p{margin:8px 0 0}
.searchbar{padding:18px 0 0}
.searchbar input{width:100%;padding:14px 16px;border:1px solid #111;background:rgba(255,255,255,.55);font-size:1rem;border-radius:999px}
.filter{padding:18px 0;border-bottom:1px solid #111;margin-top:0}
.filter button{font-size:.9rem;padding:9px 14px;background:transparent;color:#111}
.filter button.active{background:#111;color:white}
.rooms{display:grid;gap:28px;padding:34px 0}
.room{display:grid;grid-template-columns:.78fr 1.22fr;gap:26px;border:1px solid #111;background:rgba(255,255,255,.52);padding:24px;min-height:360px}
.room h3{font-size:clamp(1.8rem,4vw,4.3rem);line-height:.92;margin:12px 0 18px}
.room-number,.meta{font-family:Arial,sans-serif}
.room-number{text-transform:uppercase;letter-spacing:.15em;font-size:.75rem}
.meta{font-size:.92rem;line-height:1.55}
.quote{font-size:1.25rem;line-height:1.4;font-style:italic}
.media{min-height:285px;background:#e5ded2;display:grid;place-items:center;text-align:center;overflow:hidden;padding:20px}
.placeholder{font-size:clamp(1.8rem,5vw,4.4rem);opacity:.58;line-height:1}
.archive-link{display:inline-block;margin-top:15px;color:#111;font-weight:bold;text-decoration:underline}
.tag{display:inline-block;border:1px solid #111;border-radius:999px;padding:4px 8px;margin:3px 4px 0 0;font-family:Arial,sans-serif;font-size:.75rem}
.about{border-top:1px solid #111;padding:40px 0;max-width:900px}
.about h2{font-size:clamp(2.2rem,5vw,5rem);line-height:.9;margin:0 0 20px}
.about p{font-size:1.22rem;line-height:1.45}
.note{font-size:1rem!important;font-family:Arial,sans-serif}
footer{border-top:1px solid #111;padding:26px 0 60px;font-family:Arial,sans-serif;font-size:.92rem}
@media(max-width:760px){main{padding:18px}.show-head,.room{grid-template-columns:1fr}.hero{min-height:75vh}}


/* Modalità installazione / Infinite Exhibition */
body.installation-mode {
  background: #111;
  color: #f5f1e9;
  transition: background 2s ease, color 2s ease;
}

body.installation-mode .hero,
body.installation-mode .show-head,
body.installation-mode .filter,
body.installation-mode .about,
body.installation-mode footer {
  border-color: #f5f1e9;
}

body.installation-mode button {
  border-color: #f5f1e9;
  background: #f5f1e9;
  color: #111;
}

body.installation-mode button:hover {
  background: transparent;
  color: #f5f1e9;
}

body.installation-mode .searchbar input {
  border-color: #f5f1e9;
  color: #f5f1e9;
  background: rgba(255,255,255,.08);
}

body.installation-mode .room {
  background: rgba(255,255,255,.06);
  border-color: #f5f1e9;
}

body.installation-mode .media {
  background: rgba(255,255,255,.08);
}

body.installation-mode .archive-link {
  color: #f5f1e9;
}

.room {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 1.8s ease, transform 1.8s ease;
}

.room.entering {
  opacity: 0;
  transform: translateY(28px);
}

.room.leaving {
  opacity: 0;
  transform: translateY(-28px);
}

.installation-note {
  font-family: Arial, sans-serif;
  font-size: .95rem;
  opacity: .75;
  margin-top: 18px;
}


/* Pagina elenco completo: apre direttamente le schede, senza pagina iniziale lunga */
.elenco-page .elenco-header{
  min-height:auto;
  padding:26px 0 22px;
  border-bottom:1px solid #111;
}
.elenco-page .elenco-header h1{
  font-size:clamp(2.4rem,7vw,6rem);
  line-height:.9;
  margin:12px 0;
}
.elenco-page .elenco-header .intro{
  margin:0;
  max-width:780px;
}
.elenco-page .show-head{
  padding-top:22px;
}
