.building-preview { position:relative; min-width:0; }
.building-picture { position:relative; aspect-ratio:1; isolation:isolate; }
.building-picture::before { content:''; position:absolute; inset:18% 6% 3%; border-radius:50%; background:radial-gradient(ellipse,#d9b36b20,transparent 65%); z-index:-1; }
.building-picture img { display:block; width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 16px 15px #03091060); transition:opacity .2s ease; }
.building-picture .building-open { position:absolute; inset:0; opacity:0; }
.building-preview.is-open .building-open { opacity:1; }
.building-preview.is-open .building-closed { opacity:0; }
.building-cutaway-toggle { display:block; margin:0 auto; min-height:44px; padding:10px 16px; border:1px solid #f1c9794d; border-radius:12px; background:#f1c9790d; color:var(--gold); font:inherit; font-size:.76rem; font-weight:650; cursor:pointer; }
.building-cutaway-toggle:hover,.building-cutaway-toggle[aria-pressed="true"] { background:#f1c9791c; border-color:#f1c979a0; }
.building-cutaway-toggle:focus-visible { outline:2px solid var(--gold); outline-offset:4px; }
.building-cutaway-toggle:disabled { cursor:default; opacity:.55; }
.building-image-feedback { display:block; text-align:center; font-size:.72rem; color:var(--muted); }
.building-image-feedback:empty { display:none; }
.image-unavailable .building-picture { min-height:100px; }
.catalog-page { padding-block:48px 85px; }
.catalog-breadcrumb { display:flex; gap:12px; font-size:.78rem; color:var(--muted); margin:0 0 28px; }
.catalog-breadcrumb a { color:var(--gold); }
.catalog-hero { display:grid; grid-template-columns:1.05fr 1fr; gap:35px; align-items:center; }
.catalog-hero h1 { font-size:clamp(2.5rem,5vw,4.7rem); line-height:1.06; letter-spacing:-.055em; margin:18px 0 24px; }
.catalog-hero p { color:var(--muted); max-width:570px; }
.catalog-hero .eyebrow { color:var(--gold); }
.catalog-hero .actions { margin-top:28px; }
.catalog-hero-art { min-width:0; border:1px solid #b8cdee26; border-radius:30px; background:radial-gradient(ellipse at 50% 65%,#41626644,transparent 65%),linear-gradient(150deg,#1c3048,#0c182a); padding:16px 30px 22px; margin:0; }
.catalog-hero-art .building-picture { max-width:470px; margin:auto; }
.catalog-hero-art figcaption { text-align:center; color:var(--muted); font-size:.76rem; margin-top:12px; }
.catalog-facts { display:flex; gap:28px; margin-top:28px; color:var(--muted); font-size:.78rem; }
.catalog-facts strong { display:block; color:var(--text); font-size:1.5rem; letter-spacing:-.03em; }
.catalog-heading { margin-top:68px; display:flex; align-items:end; justify-content:space-between; gap:20px; }
.catalog-heading h2 { margin:8px 0; font-size:clamp(1.8rem,3vw,2.4rem); letter-spacing:-.045em; }
.catalog-heading p { color:var(--muted); max-width:430px; font-size:.83rem; }
.catalog-controls { display:grid; grid-template-columns:1fr 260px; gap:18px; padding:24px; margin:26px 0 12px; background:#13233a80; border:1px solid #829ecd35; border-radius:18px; }
.catalog-controls label { display:grid; gap:9px; font-size:.78rem; color:var(--muted); }
.catalog-controls input,.catalog-controls select,.building-level-select select { min-width:0; min-height:44px; background:#0c182a; color:var(--text); border:1px solid #829ecd55; border-radius:10px; padding:10px 12px; font:inherit; }
.catalog-controls input:focus-visible,.catalog-controls select:focus-visible,.building-level-select select:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
#building-results { font-size:.76rem; color:var(--muted); margin:16px 0 24px; }
.catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.catalog-building { border:1px solid #829ecd36; background:linear-gradient(150deg,#172c43,#0e1b2e 70%); border-radius:22px; padding:23px 22px 24px; min-width:0; scroll-margin-top:30px; }
.catalog-building header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.catalog-building h3 { margin:8px 0 0; font-size:1.12rem; letter-spacing:-.03em; }
.catalog-building .building-category { color:#a7c4d9; font-size:.62rem; text-transform:uppercase; letter-spacing:.12em; margin:0; }
.building-level-select { display:grid; gap:5px; color:var(--muted); font-size:.66rem; flex-shrink:0; }
.building-level-select select { color:var(--gold); font-size:.86rem; width:72px; }
.catalog-building > p { font-size:.8rem; color:var(--muted); line-height:1.7; margin:15px 0 0; }
.catalog-building .building-level-caption { color:var(--gold); font-size:.71rem; }
.catalog-building .building-picture { margin-block:10px 0; }
.catalog-empty { padding:35px; text-align:center; border:1px dashed #829ecd55; border-radius:18px; }
.catalog-note { font-size:.78rem; color:var(--muted); padding-top:26px; max-width:850px; }
.catalog-page [hidden] { display:none!important; }
.building-showcase { margin-block:35px 55px; padding:clamp(24px,4vw,42px); border:1px solid #f1c97940; border-radius:26px; background:linear-gradient(120deg,#18334b,#0f1c30); }
.building-showcase-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.building-showcase h2 { font-size:clamp(1.7rem,3vw,2.7rem); letter-spacing:-.045em; margin:10px 0; }
.building-showcase p { color:var(--muted); max-width:540px; font-size:.86rem; }
.building-showcase .eyebrow { color:var(--gold); }
.building-showcase-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:24px; }
.building-showcase-grid figure { margin:0; min-width:0; }
.building-showcase-grid figcaption { font-size:.85rem; text-align:center; margin-top:12px; }
.building-showcase-grid figcaption span { display:block; font-size:.72rem; color:var(--muted); }
@media(max-width:1000px) { .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) {
 .catalog-page { padding-top:28px; }
 .catalog-hero { grid-template-columns:1fr; gap:28px; }
 .catalog-hero-art { padding:10px 16px 20px; }
 .catalog-heading,.building-showcase-heading { display:block; }
 .catalog-heading { margin-top:42px; }
 .catalog-controls { grid-template-columns:1fr; padding:20px; }
 .catalog-grid { gap:16px; }
 .catalog-building { padding:20px; }
 .building-showcase-heading .button { margin-top:10px; }
}
@media(max-width:560px) { .catalog-grid,.building-showcase-grid { grid-template-columns:1fr; } .building-showcase-grid .building-picture { max-width:330px; margin:auto; } }
@media(prefers-reduced-motion:reduce) { .building-picture img { transition:none; } }
