.house-access{max-width:1000px}.access-intro{padding:40px 0 25px}.access-intro h1{font-size:clamp(3rem,6vw,5.2rem);margin:8px 0}.access-intro h1 em{color:#9bd9ff;font-style:normal}
.house-access .info{margin:20px 0 40px}.access-login form label{display:block;color:#b4cbd9;font-weight:700;margin:15px 0 9px}
.access-field{display:flex;gap:10px}.access-field input,.visitor-form input{padding:12px;background:#08121c;color:#e4f5ff;border:1px solid #43607b;border-radius:10px;font:inherit;min-width:0}.access-field input{flex:1}.access-field button{cursor:pointer}.access-login p{color:#afd2e7;font-size:.89rem}
.access-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:35px}.access-detail{padding:20px;background:#0d1c2a;border:1px solid #30506a;border-radius:13px;overflow-wrap:anywhere}.access-detail h3{font-size:1.1rem;margin:0 0 10px}.access-detail p{color:#d6e8f7;margin:0}.access-detail a{color:#95d2fc}.access-contact{display:flex;justify-content:space-between;gap:15px;padding:6px 0}.access-dashboard-top{display:flex;justify-content:space-between;align-items:center;gap:15px}.access-dashboard-top button{cursor:pointer}.visitor-form{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:10px;align-items:end}.visitor-form label{display:flex;flex-direction:column;gap:5px;color:#b8cdda}.visitor-form input{width:100%}.visitor-form button{cursor:pointer}.visitor-list{display:grid;gap:11px;margin-top:20px}.visitor-card{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px;border:1px solid #29495f;border-radius:10px}.visitor-card div{display:grid;gap:4px}.visitor-card span{color:#8fd5fa}.visitor-card p{color:#afc8d7;margin:0}.visitor-card button{color:#f5c7c7;background:#382227;border:1px solid #724954;border-radius:8px;padding:8px 15px;cursor:pointer}
@media(max-width:700px){.access-detail-grid{grid-template-columns:1fr}.visitor-form{grid-template-columns:1fr 1fr}.access-field{flex-direction:column}}@media(max-width:420px){.visitor-form{grid-template-columns:1fr}}

/* v0.9 Private resident photo gallery */
.house-album-section{margin-top:42px;scroll-margin-top:110px}.house-photo-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:end}.house-photo-form label{display:grid;gap:7px;color:#c0d7e6;font-weight:650}.house-photo-form input{display:block;background:#08121c;border:1px solid #43607b;border-radius:10px;padding:12px;color:#eff8ff;min-width:0;width:100%;font:inherit}.house-photo-form input[type=file]{max-width:100%}.house-photo-form button{justify-self:start}.house-photo-filter{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.house-photo-filter button{background:#101e2b;color:#cfebff;border:1px solid #365573;border-radius:50px;padding:8px 15px;cursor:pointer}.house-photo-filter button[aria-pressed=true]{background:#286391;border-color:#9bd1f7}.house-photo-album{margin:18px 0 36px}.house-photo-album h3{font-size:1.45rem;color:#e8f5ff;margin:15px 0}.house-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:10px}.house-photo-tile{padding:0;background:#0c2131;border:1px solid #32516a;border-radius:12px;overflow:hidden;aspect-ratio:1;cursor:pointer;position:relative}.house-photo-tile img{width:100%;height:100%;object-fit:cover;transition:transform .18s}.house-photo-tile:hover img{transform:scale(1.045)}.house-photo-tile:focus-visible{outline:3px solid #b3e4ff}.house-photo-tile span{position:absolute;bottom:0;left:0;right:0;padding:6px 8px;background:#061421dc;color:#e6f5ff;font-size:.78rem}.house-photo-lightbox{background:#07131e;border:1px solid #42729a;border-radius:18px;color:#eaf5fc;width:min(94vw,1040px);max-height:92vh;padding:22px}.house-photo-lightbox::backdrop{background:#010408d9}.house-photo-lightbox img{max-width:100%;max-height:70vh;object-fit:contain;margin:auto}.house-photo-lightbox #house-photo-details{margin-top:15px;color:#b9d0df}.house-photo-lightbox #house-photo-details p{margin:6px 0}.house-photo-close{float:right;border-radius:8px;border:1px solid #517795;background:#182b3e;color:white;cursor:pointer;padding:7px 12px}.house-photo-delete{margin:13px 0 0;background:#41222e;border:1px solid #965564;color:#ffe7ec;padding:8px 14px;border-radius:9px;cursor:pointer}@media(max-width:720px){.house-photo-form{grid-template-columns:1fr}.house-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* Embedded resident portal on the main PERC House page. */
.house-portal{scroll-margin-top:110px}
.house-embedded-portal{max-width:none;width:100%}
.house-embedded-portal .access-login{margin:0 0 28px}
.house-embedded-portal .access-dashboard{margin-top:12px}
.house-embedded-portal .access-detail-grid{margin-top:20px}
.house-embedded-portal .house-album-section{padding-top:18px;border-top:1px solid #36526a}
.house-embedded-portal .access-dashboard-top{margin:12px 0}
.access-rules{grid-column:1 / -1}
.access-rules ol{padding-left:23px;margin:6px 0 0;display:grid;gap:9px;color:#d6e8f7}
.access-rules li{padding-left:4px;line-height:1.45}
.house-embedded-portal [hidden]{display:none!important}
@media(max-width:700px){.house-portal .access-dashboard-top{flex-wrap:wrap}.house-embedded-portal .access-field{flex-direction:column}}

/* Public opt-in PERC House photo gallery */
.house-public-gallery{scroll-margin-top:105px}.house-public-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.house-public-photo{border:1px solid #345c77;border-radius:18px;background:#0b1927;overflow:hidden}.house-public-photo img{width:100%;height:260px;object-fit:cover;display:block}.house-public-photo p{padding:12px 16px;margin:0;color:#d2e8f7;overflow-wrap:anywhere}.house-photo-visibility{display:inline-flex;margin:12px 12px 0 0;padding:8px 14px;background:#1a4764;border:1px solid #66add5;border-radius:9px;color:#fff;cursor:pointer}

/* Three fixed photo slots on desktop; viewer with full image and metadata. */
.house-public-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:16px}
.house-public-photo{display:flex;flex-direction:column;width:100%;min-width:0;padding:0;text-align:left;color:#e6f6ff;cursor:pointer;font:inherit}
.house-public-photo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.house-public-photo-caption{display:block;padding:12px 15px;color:#d2e8f7;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.house-public-photo:focus-visible{outline:3px solid #94d9ff;outline-offset:3px}
.house-public-lightbox{position:fixed;max-width:min(1100px,94vw);max-height:94vh;width:min(960px,94vw);padding:18px;background:#08131f;border:1px solid #497595;border-radius:18px;color:#e8f5ff;overflow:auto}
.house-public-lightbox::backdrop{background:#02060ae8}
.house-public-lightbox img{width:100%;height:auto;max-height:68vh;object-fit:contain;display:block;margin:auto}
.house-public-close{float:right;margin:0 0 10px 10px;background:#153047;color:white;border:1px solid #537b96;border-radius:9px;padding:9px 13px;cursor:pointer}
.house-public-lightbox-info{padding:16px 6px 5px}.house-public-lightbox-info h3{font-size:1.25rem;margin:8px 0}.house-public-lightbox-info p{color:#b5d5e9}
.house-public-tags{display:flex;gap:7px;flex-wrap:wrap}.house-public-tag{padding:5px 11px;border-radius:99px;border:1px solid #467d9e;background:#132b40;color:#c9eaff;font-size:.8rem}
@media(max-width:650px){.house-public-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.house-public-photo img{aspect-ratio:1}.house-public-photo-caption{padding:9px 10px}}
@media(max-width:410px){.house-public-photo-grid{grid-template-columns:1fr}}

/* Compact public previews, including when only one photo exists. */
.house-public-gallery .house-public-photo-grid{
 display:grid!important;
 grid-template-columns:repeat(3,minmax(0,220px))!important;
 justify-content:start;
 align-items:start;
 gap:16px;
}
.house-public-gallery .house-public-photo{
 box-sizing:border-box;max-width:220px;width:100%;height:auto;
}
.house-public-gallery .house-public-photo img{
 display:block;width:100%;height:160px!important;
 aspect-ratio:auto;object-fit:cover;
}
@media(max-width:700px){
 .house-public-gallery .house-public-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .house-public-gallery .house-public-photo{max-width:220px}
}
@media(max-width:380px){
 .house-public-gallery .house-public-photo-grid{grid-template-columns:1fr!important}
}

/* Six recent public memories; compact responsive thumbnails. */
.house-public-gallery .house-public-photo-grid{
 grid-template-columns:repeat(6,minmax(0,1fr))!important;
 gap:12px;
}
.house-public-gallery .house-public-photo{max-width:none}
.house-public-gallery .house-public-photo img{height:135px!important}
@media(max-width:1080px){
 .house-public-gallery .house-public-photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
}
@media(max-width:700px){
 .house-public-gallery .house-public-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
