/* Simulation presentation. Mechanics live exclusively in the data-only engine. */
.atlas-shell{cursor:grab;touch-action:none}
.atlas-shell.is-panning{cursor:grabbing}
.atlas-shell,.atlas-graphic,#solar-atlas{outline:none!important;border:0!important;box-shadow:none!important}
/* SVG focus outlines can be painted by Chromium as the entire viewBox. The
 * atlas supplies its own keyboard focus cues on markers and vessel glyphs. */
#solar-atlas:focus,#solar-atlas:focus-visible,
#solar-atlas [tabindex]:focus,#solar-atlas [tabindex]:focus-visible,
.atlas-shell:focus,.atlas-shell:focus-visible,.atlas-graphic:focus,.atlas-graphic:focus-visible{outline:none!important;box-shadow:none!important}
.planet-marker.agamemnon{pointer-events:auto;cursor:pointer}
#stateful-atlas-sim-traffic,#stateful-atlas-sim-events{pointer-events:none}
body:not(.traffic-visible) #stateful-solar-motion,body:not(.traffic-visible) #stateful-atlas-sim-traffic,body:not(.traffic-visible) #stateful-atlas-sim-events,body:not(.traffic-visible) #stateful-active-traffic-route,body:not(.traffic-visible) #stateful-ship-target-layer{display:none}

/* Solar-motion cue: symmetric around the craft so it reads as motion blur,
 * never exhaust. It is aligned with actual projected velocity and is purposely
 * restrained except on very close, very fast solar passes. */
.sim-solar-motion-layer,.sim-solar-motion,.sim-solar-motion *{pointer-events:none!important}
.sim-solar-motion{mix-blend-mode:screen}
.sim-solar-motion-line{fill:none;stroke:#d8c7a0;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.72}
.sim-vessel{transform-box:view-box;transform-origin:0 0;opacity:calc(var(--sim-base-opacity,1) * var(--sim-visibility,1))}
.sim-vessel.sim-interactive{pointer-events:auto;cursor:pointer;outline:none}
.sim-vessel.is-arrived,.sim-vessel.is-arrived *{pointer-events:none!important}
.ship-hit{fill:transparent;stroke:none;pointer-events:all}
.ship-selection-locked .sim-interactive,.ship-selection-locked .sim-interactive *{pointer-events:none!important;cursor:grab!important}
.sim-smallcraft,.sim-smallcraft *{pointer-events:none!important}
.sim-smallcraft.sim-local-l4{--sim-base-opacity:.18}.sim-smallcraft.sim-local-l5{--sim-base-opacity:.11}
.sim-local-l4 .smallcraft-body{fill:#9b927b}.sim-local-l5 .smallcraft-body{fill:#807b70}
.standard-body{fill:#788c87;stroke:#c1cec7;stroke-width:.48}.standard-fins{fill:none;stroke:#879b95;stroke-width:.42;stroke-linecap:round}.standard-drive{fill:#74bbc0;stroke:#ccebed;stroke-width:.28}
.sim-standard-craft:hover .standard-body,.sim-standard-craft.is-focused .standard-body{stroke:#e2d2a6;fill:#8c9c96}
.cargo-pod.is-loaded{fill:#84938a;stroke:#c4c9b2;opacity:.92;stroke-width:.42}.cargo-pod.is-empty{fill:none;stroke:#71847f;opacity:.30;stroke-dasharray:.7 .6;stroke-width:.42}
.sim-plume-glow{filter:drop-shadow(0 0 2px rgba(128,225,226,.65))}
.sim-vane-ferry .standard-body{fill:#4e6461;stroke:#d1c08f;stroke-width:.62}.sim-vane-ferry .standard-fins{stroke:#a8b8a7;stroke-width:.5}.sim-vane-ferry .standard-drive{fill:#b0d7d3;stroke:#efe0b1;stroke-width:.34}
.sim-smuggler{filter:drop-shadow(0 0 2.5px rgba(139,231,224,.28))}.smuggler-body{fill:#172729;stroke:#9ad3cb;stroke-width:.62}.smuggler-fins{fill:none;stroke:#6ea39f;stroke-width:.45}.smuggler-core{fill:#8ae0d6;stroke:#d6fff8;stroke-width:.28}
.smuggler-ghost{fill:none;stroke:#9ce8df;stroke-width:.48;opacity:.22;pointer-events:none}.smuggler-ghost-a{animation:smuggleGhostA .34s steps(2,end) infinite}.smuggler-ghost-b{animation:smuggleGhostB .47s steps(2,end) infinite}.smuggler-static{fill:none;stroke:#d7c58f;stroke-width:.38;opacity:.44;stroke-dasharray:.7 1.1;animation:smuggleStatic .21s steps(2,end) infinite}
@keyframes smuggleGhostA{0%,100%{transform:translate(-1.2px,.4px);opacity:.08}50%{transform:translate(1.4px,-.6px);opacity:.28}}@keyframes smuggleGhostB{0%,100%{transform:translate(.5px,1px);opacity:.2}50%{transform:translate(-1px,-1.2px);opacity:.04}}@keyframes smuggleStatic{0%,100%{opacity:.16}50%{opacity:.55}}
.patrol-hull{fill:#6f4438;stroke:#e2b178;stroke-width:.55;stroke-linejoin:round}.patrol-wing{fill:#8d503d;stroke:#d39a68;stroke-width:.38}.patrol-spine{fill:none;stroke:#f0c590;stroke-width:.48;stroke-linecap:round}.patrol-drive-core{fill:#e7a65d;stroke:#ffd5a0;stroke-width:.3}
.recovery-hull{fill:#546c69;stroke:#d5c38d;stroke-width:.58;stroke-linejoin:round}.recovery-boom{fill:none;stroke:#b6c9bd;stroke-width:.48;stroke-linecap:round}.recovery-module{fill:#2f4747;stroke:#d8bf82;stroke-width:.4}.recovery-radiator{fill:none;stroke:#86a6a2;stroke-width:.42}.recovery-drive{fill:#9fd6d1;stroke:#f0e3b5;stroke-width:.3}.sim-recovery-tender:hover .recovery-hull,.sim-recovery-tender.is-focused .recovery-hull{fill:#637d78;stroke:#efda9d}.sim-recovery-tender .sim-plume-glow{stroke:#86d8d3}.sim-recovery-tender .sim-plume-core{stroke:#e4fff8}
.pirate-hull{fill:#422c30;stroke:#d77b70;stroke-width:.6;stroke-linejoin:round}.pirate-spine{fill:none;stroke:#eea18b;stroke-width:.5}.pirate-drive{fill:#ffc4a2}.sim-pirate .sim-plume-glow{stroke:#e86d59}.sim-pirate .sim-plume-core{stroke:#ffe0bf}.story-contact-pirate .story-contact-label{fill:#dc9285}.story-contact-pirate .story-contact-leader{stroke:#a96c63}.sim-radar-range{fill:rgba(218,172,113,.045);stroke:#c9a06c;stroke-width:.65;stroke-dasharray:3 3;pointer-events:none;vector-effect:non-scaling-stroke}.sim-radar-range.is-hostile{fill:rgba(214,100,86,.05);stroke:#cf796b}
.sim-patrol-replacement:hover .patrol-hull,.sim-patrol-replacement.is-focused .patrol-hull{fill:#8b5140;stroke:#f3cf9a}
.sim-patrol-replacement .sim-plume-glow{stroke:#ff8a50;filter:drop-shadow(0 0 10px rgba(255,93,62,.8)) drop-shadow(0 0 4px rgba(255,224,172,.72))}.sim-patrol-replacement .sim-plume-core{stroke:#fff0c9}
.distress-beacon-fixed{pointer-events:none;filter:drop-shadow(0 0 5px rgba(255,84,74,.82)) drop-shadow(0 0 13px rgba(255,96,63,.38))}
.distress-beacon-fixed .distress-ring{fill:none;stroke:#ff7b68;stroke-width:1.25;opacity:.96;animation:distressRingPulse .72s ease-in-out infinite alternate}
.distress-ring-outer{fill:none;stroke:#ffb06e;stroke-width:.82;stroke-dasharray:3 2;opacity:.9;animation:distressOuterPulse 1.05s linear infinite}.distress-ring-wave{fill:none;stroke:#ff6c62;stroke-width:.65;opacity:.45;animation:distressWave 1.35s ease-out infinite;transform-box:fill-box;transform-origin:center}
.distress-beacon-fixed .distress-core{fill:#fff4df;stroke:#ff604f;stroke-width:.85}.distress-beacon-fixed .distress-cross{stroke:#ffb37d;stroke-width:1.15}.distress-flare{fill:none;stroke:#ff6c54;stroke-width:.7;stroke-dasharray:1.2 1.6;opacity:.86}.distress-beacon-fixed .distress-label{fill:#ffd2a7;font-size:7.2px;font-weight:600;letter-spacing:1.15px;text-shadow:0 0 5px rgba(255,83,62,.8)}
.recovery-debris-layer,.recovery-debris-layer *{pointer-events:none!important}.distress-debris{opacity:.86}.distress-debris-shard{fill:#72695d;stroke:#d6c79e;stroke-width:.42;stroke-linejoin:round}.distress-debris-spar{fill:none;stroke:#8f8777;stroke-width:.36;stroke-linecap:round}.distress-debris-spark{fill:#d7b675;opacity:.82;filter:drop-shadow(0 0 2px rgba(224,181,110,.45))}
@keyframes distressRingPulse{from{opacity:.58}to{opacity:1}}@keyframes distressOuterPulse{to{stroke-dashoffset:-10}}@keyframes distressWave{0%{transform:scale(.72);opacity:.72}100%{transform:scale(1.5);opacity:0}}
.titan-orbit{fill:none;stroke:#96866d;stroke-width:.5;opacity:.45}
.saturn-rings{fill:none;stroke:#b6a17c;stroke-width:2.1;opacity:.8}.saturn-rings-front{stroke:#d5bb8c;stroke-width:1.7}
.saturn-disc{fill:#bda37d;stroke:#e1c99b;stroke-width:.7}.saturn-bands{fill:none;stroke:#8e775e;stroke-width:.8;opacity:.7}
.saturn-label{fill:#c1c5b6;font-size:8px;letter-spacing:1.4px}
.planet-marker.titan{pointer-events:auto}.planet-marker.titan .planet-dot{fill:#bc9159;stroke:#e2c696;stroke-width:.7}

.atlas-earth-icon{filter:drop-shadow(0 0 1.8px rgba(125,202,205,.22))}.atlas-earth-elevator{pointer-events:none}.atlas-elevator-tether{fill:none;stroke:#d6e7df;stroke-width:.62;stroke-linecap:round;opacity:.96}.atlas-elevator-brace{fill:none;stroke:#87b9b8;stroke-width:.42;stroke-linecap:round;opacity:.92}.atlas-elevator-station{fill:rgba(15,30,32,.82);stroke:#e0c98f;stroke-width:.72}.atlas-elevator-platform{fill:none;stroke:#cfe4df;stroke-width:.58;stroke-linecap:round;stroke-linejoin:round}.atlas-elevator-tip{fill:#f0ddb0;stroke:#effff9;stroke-width:.28}.atlas-elevator-orbit{fill:none;stroke:#77a8aa;stroke-width:.46;stroke-dasharray:1.2 1.15;opacity:.72}
#stateful-active-traffic-route{vector-effect:non-scaling-stroke}
.ship-target-reticle{pointer-events:none;filter:drop-shadow(0 0 2px rgba(189,209,201,.28))}.ship-target-ring{fill:none;vector-effect:non-scaling-stroke}.ship-target-ring-outer{stroke:#d1b478;stroke-width:.72;stroke-dasharray:2.6 2.2;animation:shipTargetDash 1.35s linear infinite}.ship-target-ring-inner{stroke:#85b8b6;stroke-width:.55;opacity:.78}.ship-target-ticks{fill:none;stroke:#d7c18c;stroke-width:.72;vector-effect:non-scaling-stroke}.ship-target-brackets{fill:none;stroke:#9dc0b9;stroke-width:.55;opacity:.86;vector-effect:non-scaling-stroke}@keyframes shipTargetDash{to{stroke-dashoffset:-9.6}}
.atlas-ux-hint{position:absolute;left:1.2rem;bottom:1rem;z-index:4;display:inline-flex;gap:.45rem;align-items:center;padding:.5rem .8rem;border:1px solid rgba(210,195,150,.18);background:rgba(7,15,18,.90);color:rgba(225,226,219,.74);font-size:.72rem;line-height:1.35;letter-spacing:.08em;text-transform:uppercase;pointer-events:auto}.atlas-ux-hint button{border:0;background:none;color:#d2bd85;cursor:pointer;font:inherit;text-transform:inherit}
@media(max-width:720px){.atlas-ux-hint{left:.7rem;right:.7rem;bottom:.7rem;flex-wrap:wrap;padding:.46rem .58rem;font-size:.58rem;letter-spacing:.065em}}
@media(prefers-reduced-motion:reduce){.distress-ring,.distress-ring-outer,.distress-ring-wave,.ship-target-ring-outer,.smuggler-ghost-a,.smuggler-ghost-b,.smuggler-static{animation:none!important}}
.planet-marker.ceres,.planet-marker.vesta{pointer-events:auto}.planet-marker.ceres .planet-dot{fill:#c6b989;stroke:#776b50;stroke-width:.55}.planet-marker.vesta .planet-dot{fill:#a99f88;stroke:#776b50;stroke-width:.55}
.planet-marker.ceres .marker-label,.planet-marker.vesta .marker-label,.planet-marker.agamemnon .marker-label{font-size:6.4px;letter-spacing:1.05px}.planet-marker.ceres .marker-subtitle,.planet-marker.vesta .marker-subtitle,.planet-marker.agamemnon .marker-subtitle{font-size:4.7px;letter-spacing:.75px}.planet-marker.agamemnon .marker-label{fill:#d1bb8f}

/* Marker labels are annotations, never hit targets. Passing pointer input through
 * them lets a vessel crossing a label remain the object that is actually clicked. */
#atlas-markers .world-label-anchor,#atlas-markers .marker-copy,#atlas-markers .marker-label,#atlas-markers .marker-subtitle,#atlas-markers .marker-leader{pointer-events:none!important}
#atlas-markers .marker-icon-hit{pointer-events:all}

/* Story contacts and the pirate carry permanent labels. Unrotated, modestly
 * sized, non-interactive, and visible during flight without a selection. */
#simulation-story-labels,.story-contact,.story-contact *{pointer-events:none!important}
body:not(.traffic-visible) #simulation-story-labels{display:none}
.story-contact{color:#d1c08f}
.story-contact-smuggler{color:#9ad3cb}
.story-contact-recovery{color:#d5c38d}
.story-contact-pirate{color:#dc9285}
.story-contact-leader{fill:none;stroke:currentColor;stroke-width:.5;opacity:.62}
#solar-atlas .story-contact-label{fill:currentColor;font-size:6.2px;font-weight:500;letter-spacing:.65px;paint-order:stroke;stroke:#0a1113;stroke-width:2.5px;stroke-linejoin:round}

/* Projected filled circles: sixteen paint batches, no non-scaling stroke work. */
.asteroid-field{pointer-events:none}.belt-field{color:#9a9b83}.trojan-field{color:#b69a68}
.asteroid-field path{fill:currentColor;stroke:none}
/* Ordinary background ships retain two-tone exhaust without per-ship blur. */
.sim-cargo-train:not(.is-focused) .sim-plume-glow,.sim-standard-craft:not(.is-focused) .sim-plume-glow{filter:none}

/* Before the JS terminal mounts, show only the free orrery. The legacy static
 * dossier/nav remain in the HTML for no-JS semantics but never flash on screen. */
.universe-grid:not(.atlas-terminal-mounted){display:block!important;max-width:none!important}
.universe-grid:not(.atlas-terminal-mounted) .atlas-shell{position:relative!important;width:100%!important;margin:0!important;overflow:visible!important;border:0!important;background:transparent!important;box-shadow:none!important}
.universe-grid:not(.atlas-terminal-mounted) .atlas-graphic{height:clamp(560px,70vh,790px)!important;min-height:560px;overflow:visible!important}
.universe-grid:not(.atlas-terminal-mounted) #solar-atlas{width:100%;height:100%;overflow:visible!important}
.universe-grid:not(.atlas-terminal-mounted)>.destination-panel,.universe-grid:not(.atlas-terminal-mounted) .atlas-toolbar,.universe-grid:not(.atlas-terminal-mounted) .atlas-destinations,.universe-grid:not(.atlas-terminal-mounted) .atlas-industry-note{display:none!important}
@media(max-width:900px){.universe-grid:not(.atlas-terminal-mounted) .atlas-graphic{height:64vh!important;min-height:500px}}
@media(max-width:620px){.universe-grid:not(.atlas-terminal-mounted) .atlas-graphic{height:58vh!important;min-height:440px}}
