.island-shared-image{position:fixed;margin:0;padding:0;border:0;overflow:hidden;pointer-events:none;transform-origin:top left;background:transparent;max-width:none;max-height:none}
.island-shared-image img{position:absolute;inset:0;width:100%;height:100%;display:block}
.island-shared-image::backdrop{background:transparent;pointer-events:none}
.button,.icon-button,.chip,.text-button,.nav-item{transition:background-color 160ms ease,box-shadow 160ms ease,transform 160ms ease}
.button:active,.icon-button:active,.chip:active,.text-button:active{transform:scale(.97)}
.mobile-navigation[open]{animation:island-menu-in 180ms ease-out}
@keyframes island-menu-in{from{opacity:.6;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.button,.icon-button,.chip,.text-button,.nav-item{transition:none}.button:active,.icon-button:active,.chip:active,.text-button:active{transform:none}.mobile-navigation[open]{animation:none}}

.island-departure{pointer-events:none;z-index:5;overflow:hidden}

#media-stage{position:relative}#media-stage .island-gallery-previous{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}

.island-gallery-loading{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);padding:6px 12px;border-radius:16px;background:var(--surface,#f7f5ed);color:var(--text,#174f3f);font-size:12px;pointer-events:none}

/* Clip the cover button only: card controls and menus keep their overflow. */
.post-card .media-open{overflow:hidden}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .post-card .post-image{transition:transform 360ms ease}
  .post-card .card-bottom .icon{transition:transform 180ms ease}
  .post-card:hover .post-image{transform:scale(1.025)}
  .post-card:hover .card-bottom .icon{transform:translateX(3px)}
}
