/* One native zoom button owns the point, invitation, and revealed ship. The image is
   decorative; the retained invitation remains its accessible name at all zooms. */
.quiet-navigation .story-door{--ship-origin:8px}
.quiet-navigation .story-door[data-flip=true]{--ship-origin:calc(100% - 8px)}
.quiet-navigation .story-door[data-revealed=true],.quiet-navigation .story-door[data-distance=near]{opacity:1}
.quiet-navigation .story-invitation{position:relative;touch-action:none;background:none;border:0;text-align:left}
.quiet-navigation .story-invitation>.story-caption{max-width:var(--ship-caption-width,none);padding:7px 10px;background:var(--overlay-surface);border:1px solid var(--overlay-line);border-radius:5px;color:var(--overlay-ink)}
.quiet-navigation .story-door[data-positioned=true]{--ship-origin:50%;width:44px;transform:translate(-50%,-50%);opacity:1}
.quiet-navigation .story-door[data-positioned=true] .story-invitation{display:block;width:44px;height:44px;padding:0}
.story-door[data-positioned=true] .story-signal{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
.story-door[data-positioned=true] .story-leader{display:none}
.quiet-navigation .story-door[data-positioned=true] .story-caption{position:absolute;left:calc(50% + var(--ship-label-x));top:calc(50% + var(--ship-label-y));display:flex;align-items:center;justify-content:center;min-height:44px;width:max-content;transform:translateX(-50%);text-align:center;opacity:var(--ship-label-opacity,1);background:#080e15}
.quiet-navigation .story-door[data-tracked=true]{opacity:1}
.quiet-navigation .story-door[data-tracked=true] .story-caption{background:#080e15}
.story-door[data-label-hidden=true] .story-caption,.story-door[data-label-occluded=true] .story-caption{visibility:hidden;pointer-events:none}
.quiet-navigation .ship-reticle,.quiet-navigation .ship-connector,.quiet-navigation .ship-location-connector,.quiet-navigation .ship-aperture{position:absolute;left:var(--ship-origin);top:50%;padding:0;background:none;border:0;pointer-events:none;visibility:hidden;opacity:0}
.quiet-navigation .ship-reticle{width:24px;height:24px;transform:translate(-50%,-50%);border:3px solid #ffe3ad;border-radius:50%;background:#05080c66;box-shadow:0 0 0 2px #05080de6,0 0 10px #000c}
.ship-reticle:before,.ship-reticle:after{content:'';position:absolute;top:calc(50% - 1.5px);width:10px;height:3px;background:#ffe3ad;box-shadow:0 0 0 1px #05080de6}
.ship-reticle:before{right:calc(100% + 5px)}.ship-reticle:after{left:calc(100% + 5px)}
.quiet-navigation .ship-connector{left:calc(50% + var(--ship-connector-x));top:calc(50% + var(--ship-connector-y));width:var(--ship-length);height:2px;background:#f0d5a4;box-shadow:0 0 0 1px #05080dcc;transform:translateY(-50%) rotate(var(--ship-angle));transform-origin:left center}
.quiet-navigation .ship-location-connector{left:calc(50% + var(--ship-location-x));top:calc(50% + var(--ship-location-y));width:var(--ship-location-length);height:2px;background:#f0d5a4;box-shadow:0 0 0 1px #05080dcc;transform:translateY(-50%) rotate(var(--ship-location-angle));transform-origin:left center}
.quiet-navigation .ship-aperture{left:calc(var(--ship-origin) + var(--ship-x));top:calc(50% + var(--ship-y));width:var(--ship-width);height:var(--ship-width);aspect-ratio:1;overflow:hidden;transform:translate(-50%,-50%) scale(.92);border:1px solid #cfb38688;border-radius:50%;background:#03080d;box-shadow:0 0 0 3px #080d1144,0 5px 18px #0004;transition:opacity .22s,transform .3s}
.ship-aperture img{display:block;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(var(--ship-image-size,60%),calc(100vw - 48px));height:min(var(--ship-image-size,60%),calc(100vw - 48px));object-fit:contain;object-position:50% 60%}
.quiet-navigation .story-door[data-tracked=true] .ship-reticle{visibility:visible;opacity:1}
.quiet-navigation .story-door[data-positioned=true] .ship-connector{visibility:visible;opacity:var(--ship-label-opacity,1)}
.quiet-navigation .story-door[data-ship=portrait][data-revealed=true] .ship-aperture{visibility:visible;opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.story-door[data-ship=portrait][data-revealed=true] .ship-aperture img{animation:ship-drift 14s ease-in-out infinite}
.story-door[hidden] .ship-aperture img,body:has(dialog[open]) .ship-aperture img{animation-play-state:paused}
/* The artwork has extra sky below the hull. Optical centering stays fixed while zooming. */
@keyframes ship-drift{0%,100%{transform:translate(-50%,-50%) rotate(-.6deg)}50%{transform:translate(-50%,-50%) rotate(.6deg)}}
.quiet-navigation .story-door[data-ship=portrait][data-revealed=true] .ship-location-connector{visibility:visible;opacity:1}
.story-door[data-ship=portrait][data-revealed=true] .story-signal{opacity:1;animation:none}
.story-invitation:hover .ship-aperture{border-color:#f5ddb6}
.story-invitation:focus-visible{outline:2px solid #efd6a9;outline-offset:3px;border-radius:4px}
.story-invitation:focus-visible .ship-aperture{outline:2px solid #efd6a9;outline-offset:4px}
.story-invitation:focus-visible .story-caption{outline:2px solid #efd6a9;outline-offset:3px}
/* The enlarged ship remains behind navigation and the masthead. */
.quiet-navigation .story-door[data-takeover=true]{z-index:4}
.quiet-navigation .story-door[data-takeover=true] :is(.ship-reticle,.ship-location-connector,.story-signal){opacity:var(--ship-location-opacity)}
.quiet-navigation .story-door[data-location-visible=false] :is(.ship-reticle,.ship-connector,.story-signal),.quiet-navigation .story-door[data-location-occluded=true] :is(.ship-reticle,.ship-connector,.ship-location-connector,.ship-aperture,.story-signal){visibility:hidden;pointer-events:none}
@media(max-height:500px) and (min-width:600px){
  .quiet-navigation .navigation{width:min(740px,calc(100% - 32px));padding:6px 10px}
  .quiet-navigation #navigation-context{display:flex;align-items:center;gap:12px;padding:0 0 4px;margin-bottom:4px}
  .quiet-navigation .navigation-heading{margin:0;flex:1}
  .quiet-navigation .navigation-help,.quiet-navigation #zoom-level{display:none}
  .quiet-navigation .navigation-actions button{flex-direction:row;min-height:44px}
  .quiet-navigation .navigation-manual button{width:44px}
  .quiet-navigation #status{display:none}
}
@media(prefers-reduced-motion:reduce){.quiet-navigation .ship-aperture{transition:none}.story-door[data-ship=locking] .ship-reticle,.story-door[data-ship=portrait][data-revealed=true] .ship-aperture img{animation:none}}

/* A distant invitation is a small local tease, not an opening headline. */
.quiet-navigation .story-door[data-tracked=false] .story-caption{background:none;border-color:transparent;padding:7px 4px;color:#d4d1c9;text-shadow:0 1px 4px #000}
.quiet-navigation .story-door[data-tracked=false] .ship-connector{height:1px;background:#cfb38688;box-shadow:none}
.quiet-navigation .story-door[data-tracked=false] .story-signal{animation:none}
.discovery-route{position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;transition:opacity 1.4s ease}
.survey-dispatch{position:absolute;inset:0;pointer-events:none;z-index:1}
html[data-intro] .survey-dispatch{visibility:hidden}
.probed-search-points{transition:opacity .7s ease}
@media(prefers-reduced-motion:reduce){.discovery-route,.probed-search-points{transition:none}}
