:root{--ease-out:cubic-bezier(.22,1,.36,1);--ease-soft:cubic-bezier(.2,.75,.25,1);--motion-fast:180ms;--motion-medium:360ms;--motion-slow:650ms}

/* Consistent, quiet feedback on both touch and mouse input. */
button,a,select{-webkit-tap-highlight-color:transparent}
button:not(:disabled),.primary-button,.secondary-button{transition:color var(--motion-fast),background-color var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-medium),transform var(--motion-medium) var(--ease-out),scale var(--motion-fast) var(--ease-out)}
button:not(:disabled):active,.primary-button:active,.secondary-button:active{scale:.97}
button:disabled{opacity:.42;cursor:default}
:where(button,a,select,[role=button]):focus-visible{outline:2px solid #c8b37c;outline-offset:4px}
.nav-button:after{transition:transform var(--motion-medium) var(--ease-out)}
.nav-count{transition:background var(--motion-medium),border-color var(--motion-medium)}
.nav-button.active .nav-count{background:#d9c89f15;border-color:#d9c89f70}
.brand svg{transition:transform var(--motion-slow) var(--ease-out)}
.brand:hover svg{transform:rotate(-5deg)}

/* Animated selected surfaces do not move or resize the interactive targets. */
.has-selection-surface{position:relative;isolation:isolate}
.has-selection-surface>button{position:relative;z-index:1}
.selection-surface{position:absolute;top:0;left:0;z-index:0;pointer-events:none;display:block;background:#d9e8dd;border-radius:5px;box-shadow:0 2px 8px #0001;transition:transform 420ms var(--ease-out),width 420ms var(--ease-out),height 420ms var(--ease-out)}
.selection-surface.selection-line{background:#d9c89f;border-radius:2px;box-shadow:none}
.nav.has-selection-surface .nav-button:after{display:none}
.filter-pills.has-selection-surface button[aria-pressed=true]{background:transparent;box-shadow:none}
.residence-modes.has-selection-surface button[aria-selected=true]{border-bottom-color:transparent}

/* The artwork, border, shadow and affordance respond together. */
.apartment-card,.villa-card{transition:transform 460ms var(--ease-out),box-shadow 460ms var(--ease-out),border-color 260ms}
.apartment-card-art .room-crop{transform-origin:50% 55%;transition:transform 700ms var(--ease-out),filter 700ms var(--ease-out)}
.apartment-card-open,.card-open{transition:transform 420ms var(--ease-out),background 240ms,color 240ms,border-color 240ms}
.apartment-card-bottom>span:last-child{transition:transform 360ms var(--ease-out)}
.residences-cover img,.detail-hero img,.photo-tile img{transition:transform 850ms var(--ease-out)}
.residences-cover>span>span,.hero-expand{transition:transform 420ms var(--ease-out),background 240ms}
.apartment-card:focus-visible,.villa-card:focus-visible{border-color:#d9c89f;box-shadow:0 0 0 4px #d9c89f24}
@media(hover:hover) and (pointer:fine){
  .apartment-card:hover{transform:translateY(-6px);border-color:#cfbb87;box-shadow:0 18px 35px -12px #001a20a6,0 0 0 1px #d9c89f20}
  .apartment-card:hover .room-crop{transform:translateY(-2px) scale(1.035);filter:drop-shadow(0 12px 10px #15272230)}
  .apartment-card:hover .apartment-card-open,.villa-card:hover .card-open{transform:rotate(90deg);background:#17463c;border-color:#17463c;color:#fff}
  .apartment-card:hover .apartment-card-bottom>span:last-child{transform:translateX(3px)}
  .villa-card:hover{transform:translateY(-6px);border-color:#a6c8b8;box-shadow:0 18px 38px -16px #001619bb}
  .residences-cover:hover img,.detail-hero:hover img{transform:scale(1.04)}
  .residences-cover:hover>span>span,.detail-hero:hover .hero-expand{transform:scale(1.12)}
  .primary-button:hover{transform:translateY(-2px);box-shadow:0 7px 18px -8px #0a423b99}
  .floor-choice:hover:not(.is-active){border-color:#a5b8a0;background:#21443f;transform:translateY(-2px)}
  .apartment-chip:hover{transform:translateY(-2px);box-shadow:0 6px 14px -8px #0008}
  .media-thumbs button:hover{opacity:1;transform:translateY(-3px)}
  .gallery-step:hover{background:#d9c89f;color:#163d35;border-color:#d9c89f;transform:scale(1.06)}
}
@media(hover:none){.apartment-card:hover,.villa-card:hover{transform:none}.apartment-card:active,.villa-card:active{scale:.98;border-color:#d9c89f}}
.floor-check{transition:opacity 220ms,scale 380ms var(--ease-out);scale:.7}.is-active .floor-check{scale:1}
.floor-choice img{transition:opacity 320ms}
.hotel-room polygon{transition:fill 240ms,stroke 240ms,stroke-width 240ms}
.plan-room-label rect,.plan-room-label text{transition:fill 220ms,stroke 220ms}
.hotel-room:focus-visible .plan-room-label rect{fill:#e7d5a4}.hotel-room:focus-visible .plan-room-label text{fill:#15372d}
.hover-card{border:1px solid #d9e2d5;border-radius:12px;box-shadow:0 22px 55px #041c3160;transform:translateY(10px) scale(.985);transition:opacity 200ms,transform 380ms var(--ease-out)}
.hover-card.visible{transform:translateY(0) scale(1)}
.hover-image{height:116px}.hover-body{padding:15px 17px}.hover-label{letter-spacing:1.3px}
.detail-panel{animation:none}
.map-world.is-easing{transition:transform 450ms var(--ease-out)}

dialog[open]::backdrop{animation:backdrop-in 360ms ease-out both}
dialog.is-closing::backdrop{animation:backdrop-out 180ms ease-in both}
@keyframes backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes backdrop-out{from{opacity:1}to{opacity:0}}
.apartment-dialog,.about-dialog,.plan-dialog{box-shadow:0 28px 100px #00191c80}
.apartment-dialog{overflow-x:hidden}
.apt-dialog-footer button{border-radius:5px;padding-inline:10px}
.apt-dialog-footer button:hover{background:#dfe8da}
.apt-location-preview{transition:box-shadow 360ms,border-color 240ms}
.apt-location-preview:hover{border-color:#809c7f;box-shadow:0 5px 18px -9px #24492a66}
.apt-close,.dialog-close{transition:background 180ms,transform 360ms var(--ease-out),scale 180ms}
.apt-close:hover,.dialog-close:hover{transform:rotate(90deg)}
.media-stage{overflow:hidden}
.media-stage>img{grid-area:1/1}
.media-thumbs{scroll-behavior:smooth;padding-top:7px;padding-bottom:7px}
.media-thumbs button{transition:opacity 240ms,transform 360ms var(--ease-out),border-color 240ms}
.media-thumbs button.active{border-color:#d9c89f;box-shadow:0 0 0 1px #d9c89f40}
.media-caption{line-height:1.5}
.hotel-view,.list-view,.detail-panel,.apartment-dialog{scrollbar-width:thin;scrollbar-color:#78988a70 transparent}

@media(max-width:700px){
  .apt-close,.dialog-close{min-width:44px;min-height:44px}
  .apt-dialog-footer button,.sidebar-pagination button{min-height:44px;min-width:44px}
  .gallery-step{width:44px;height:44px}
  .plan-tools button{min-height:44px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after,*::backdrop{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  button:active,.primary-button:active,.secondary-button:active{scale:1!important}
  .apartment-card:hover,.villa-card:hover,.primary-button:hover,.apartment-chip:hover,.floor-choice:hover,.apt-close:hover,.dialog-close:hover,.gallery-step:hover{transform:none!important}
  .apartment-card:hover .room-crop,.apartment-card:hover .apartment-card-open,.villa-card:hover .card-open,.residences-cover:hover img,.detail-hero:hover img,.photo-tile:hover img{transform:none!important}
}
