/* Mobile Safari: a scrollable photograph and reversible direct manipulation. */
.swipe-neighbour{position:absolute;max-width:none!important;object-fit:fill;pointer-events:none;opacity:0;z-index:0}
body.landing .people-scene{z-index:1}
body.landing .person-hit:after,body.landing .person-guide,body.landing .vehicle-hit span{opacity:0;transition:opacity 1.2s ease;animation:none}
body.landing .people-scene.hint-cycle .person-hit:after,body.landing .people-scene.hint-cycle .person-guide,body.landing .people-scene.hint-cycle .vehicle-hit span{animation:three-invitations 6s .3s both}
@keyframes three-invitations{0%,18%,38%{opacity:0}8%,28%,48%,60%{opacity:1}100%{opacity:0}}
body.landing .people-scene.drag-hints .person-hit:after,body.landing .people-scene.drag-hints .person-guide,body.landing .people-scene.drag-hints .vehicle-hit span{animation:none;opacity:1;transition:opacity .12s}
body.landing .person-hit:focus-visible:after,body.landing .vehicle-hit:focus-visible span{opacity:1;animation:none}
.timeline-ui .location-map,.timeline-ui .story-panel,.timeline-ui .thread-preview{max-height:var(--popup-room,60svh);overflow-y:auto;overscroll-behavior:contain;box-sizing:border-box}
body.landing .home-account-entry{width:44px;height:44px;padding:0;display:grid;place-items:center;border-radius:50%;box-sizing:border-box}
.home-account-entry svg{width:22px;height:22px;display:block}
@media(pointer:coarse){
 body.landing{overflow-y:auto;overflow-x:hidden;min-height:100vh;min-height:100lvh}
 body.landing .people-hero{height:100vh;height:100lvh}
 body.landing .timeline-ui{position:absolute;top:calc(100lvh - 130px - env(safe-area-inset-bottom,0px));bottom:auto}
 body.landing .home-account-entry{position:absolute;top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right))}
 body.landing .person-name{display:none!important}
 .people-scene,.swipe-neighbour{will-change:transform}
}
@media(pointer:coarse) and (orientation:landscape){
 .timeline-ui .location-map{width:min(440px,85vw);padding:8px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
 .timeline-ui .location-map .memory-frame{min-width:0;aspect-ratio:4/3;max-height:130px}
 .timeline-ui .location-map svg{width:100%;align-self:center;height:auto}
 .timeline-ui .location-map .timeline-status{grid-column:1/-1}
 #photo-story-panel .season-story-card>img{max-height:25svh}
}
@media(prefers-reduced-motion:reduce){body.landing .people-scene.hint-cycle .person-hit:after,body.landing .people-scene.hint-cycle .person-guide,body.landing .people-scene.hint-cycle .vehicle-hit span{animation:quiet-invitation 4s both}@keyframes quiet-invitation{0%,70%{opacity:1}100%{opacity:0}}}

/* Decode the full-resolution photograph offscreen, then fade it over the same-size preview. */
body.landing .people-scene>.photo-detail{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;z-index:1;transition:opacity .8s ease}
@media(prefers-reduced-motion:reduce){body.landing .people-scene>.photo-detail{transition:none}}
