/* Project photographs open into a quiet, square-edged RENOVA slideshow. */
.city-project-image{position:relative}
.city-gallery-invitation{position:absolute;bottom:18px;left:18px;display:flex;align-items:center;gap:30px;background:transparent;text-shadow:0 1px 4px rgba(0,0,0,.7);border:1px solid rgba(241,239,233,.5);color:#f1efe9;padding:12px 15px;font-size:9px;letter-spacing:.12em;text-transform:uppercase}
.city-gallery-invitation>span{font-size:17px;line-height:1}
.city-project-detail>a{display:block}
.city-project-detail a:focus-visible{outline-offset:3px}
html.city-gallery-open{overflow:hidden;scroll-behavior:auto!important}
.city-lightbox{box-sizing:border-box;position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;overflow:auto;background:#23221f;color:#f1efe9;overscroll-behavior:contain}
.city-lightbox:not([open]){display:none}
.city-lightbox::backdrop{background:#23221f}
.city-lightbox *{box-sizing:border-box}
.city-lightbox-inner{width:88%;max-width:1320px;min-height:100%;margin:auto;padding:26px 0 30px;display:flex;flex-direction:column;justify-content:center}
.city-lightbox-header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px;transition:opacity .4s ease}
.city-lightbox-header>div>span{display:block;font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:#c6b897;margin-bottom:9px}
.city-lightbox h2{margin:0;font-size:clamp(22px,2.8vw,40px);font-weight:400;letter-spacing:-.035em;line-height:1.08;color:inherit}
.city-lightbox button{font-family:inherit;color:inherit;cursor:pointer;border-radius:0;-webkit-tap-highlight-color:transparent}
.city-lightbox-close{flex:none;display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid rgba(241,239,233,.4);background:transparent;font-size:34px;font-weight:300;line-height:1}
.city-lightbox-close:hover,.city-slide-controls button:hover{background:rgba(241,239,233,.1)}
.city-lightbox :focus-visible{outline:2px solid #c6b897;outline-offset:5px}
/* Keep one frame; focus strengthens the existing border. */
.city-lightbox .city-lightbox-close:focus-visible{outline:none;border:2px solid #c6b897;background:rgba(241,239,233,.1)}
.city-lightbox-stage{position:relative;width:100%;height:min(65svh,740px);min-height:230px;margin-bottom:38px;touch-action:pan-y pinch-zoom;isolation:isolate}
.city-slide-main{position:absolute;inset:0 34px 0 0;background:#2b2a27;overflow:hidden}
.city-slide-main>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.city-slide-next{position:absolute;z-index:2;right:0;bottom:-26px;width:clamp(112px,17vw,210px);padding:0;border:0;background:#23221f;color:#f1efe9!important;text-align:left;transition:opacity .35s ease,background .2s}
.city-slide-next>img{display:block;width:100%;height:clamp(105px,13vw,166px);object-fit:cover;object-position:center}
.city-slide-next>span{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 4px 4px;font-size:9px;letter-spacing:.1em;text-transform:uppercase}
.city-slide-next>span>span{font-size:15px;line-height:1}
.city-slide-next.is-traveling{opacity:0;transition:opacity .16s}
.city-lightbox-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:10px;border-top:1px solid rgba(241,239,233,.22);transition:opacity .4s ease}
.city-slide-caption p{font-family:var(--serif,Georgia,serif);font-size:23px;font-style:italic;color:#f1efe9;margin:0;line-height:1.25}
.city-slide-caption>span{display:block;margin-top:9px;font-size:10px;letter-spacing:.12em;color:#c6b897;font-variant-numeric:tabular-nums}
.city-slide-controls{display:flex;flex:none;align-items:center;gap:8px}
.city-slide-controls button{min-width:44px;height:44px;padding:0 10px;border:1px solid rgba(241,239,233,.35);background:transparent;font-size:20px}
.city-slide-controls [data-action="pause"]{width:68px;font-size:10px;letter-spacing:.07em;text-transform:uppercase}
.city-slide-controls button:disabled{cursor:default;opacity:.4}
.city-slide-flight{position:fixed;z-index:20;overflow:hidden;background:#23221f;pointer-events:none;will-change:left,top,width,height}
.city-slide-flight>img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;transform:none!important;opacity:1!important}
.city-gallery-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.city-lightbox.is-opening .city-slide-main,.city-lightbox.is-opening .city-slide-next,.city-lightbox.is-opening .city-lightbox-header,.city-lightbox.is-opening .city-lightbox-footer{opacity:0}
@media(max-width:760px){
 .city-gallery-invitation{left:12px;bottom:12px;padding:10px 12px;font-size:8px;gap:20px}
 .city-lightbox-inner{width:94%;padding:calc(18px + env(safe-area-inset-top)) 0 calc(22px + env(safe-area-inset-bottom));justify-content:center}
 .city-lightbox-header{gap:14px;margin-bottom:25px}.city-lightbox-header>div>span{font-size:8px}.city-lightbox h2{font-size:26px;max-width:250px}.city-lightbox-close{width:44px;height:44px}
 .city-lightbox-stage{height:52svh;max-height:540px;min-height:220px;margin-bottom:44px}
 .city-slide-main{right:12px}.city-slide-next{width:31%;padding:0;bottom:-26px}.city-slide-next>img{height:clamp(100px,29vw,148px)}.city-slide-next>span{font-size:8px;padding:8px 3px 3px}
 .city-lightbox-footer{gap:12px;align-items:center}.city-slide-caption p{font-size:20px;max-width:160px}.city-slide-caption>span{font-size:9px;margin-top:7px}.city-slide-controls{gap:5px}.city-slide-controls [data-action="pause"]{width:57px;padding:0 6px;font-size:9px}
}
@media(max-height:540px) and (min-width:761px){.city-lightbox-inner{padding-block:14px}.city-lightbox-header{margin-bottom:15px}.city-lightbox h2{font-size:24px}.city-lightbox-stage{height:55svh;min-height:150px;margin-bottom:28px}.city-slide-next{width:110px;bottom:-20px}.city-slide-next>img{height:75px}.city-slide-caption p{font-size:19px}}
@media(prefers-reduced-motion:reduce){.city-lightbox *,.city-gallery-invitation{transition:none!important}}
