.orbit-3d-stage { position: absolute; inset: 0; overflow: hidden; opacity: 0; pointer-events: none; transition: opacity 1400ms ease; }
.orbit-3d-stage canvas { display: block; width: 100%; height: 100%; }
.scene-panel[data-webgl-ready="true"] { background-color: #000; }
.scene-panel[data-webgl-ready="true"] .orbit-3d-stage { opacity: 1; }
.scene-panel:not([data-webgl-ready="true"]) .orbit-3d-stage { transition: none; }
.header-tools .orbit-3d-motion { position: relative; flex: 0 0 auto; align-self: center; border: 0; }
.header-tools .orbit-3d-motion:hover { background: transparent; }
.header-tools .cv-link { white-space: nowrap; }
.motion-switch-track { position: relative; display: block; width: 30px; height: 18px; border: 1px solid var(--line); border-radius: 9px; background: rgb(164 180 200 / 5%); transition: background-color 180ms ease, border-color 180ms ease; }
.motion-switch-thumb { position: absolute; top: 2px; left: 2px; width: 12px; height: 12px; border-radius: 50%; background: var(--subtle); opacity: 0.7; transition: transform 180ms ease, background-color 180ms ease, opacity 180ms ease; }
.orbit-3d-motion[aria-checked="true"] .motion-switch-track { background: rgb(192 225 255 / 16%); border-color: rgb(192 225 255 / 40%); }
.orbit-3d-motion[aria-checked="true"] .motion-switch-thumb { transform: translateX(12px); background: var(--accent); opacity: 1; }
.orbit-3d-motion:hover:not(:disabled) .motion-switch-track { border-color: var(--accent); }
.orbit-3d-motion::after { content: attr(data-tooltip); position: absolute; z-index: 1; top: calc(100% + 9px); right: 0; padding: 6px 10px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); color: var(--muted); font-size: 10px; line-height: 1.6; white-space: nowrap; pointer-events: none; opacity: 0; visibility: hidden; transition: opacity 160ms ease, visibility 160ms ease; }
.orbit-3d-motion:focus-visible::after { opacity: 1; visibility: visible; }
.orbit-3d-motion:disabled { opacity: 0.45; cursor: default; }
@media (hover: hover) {
  .orbit-3d-motion:hover::after { opacity: 1; visibility: visible; }
}
.orbit-map-credit { margin-left: auto; color: var(--subtle); font-size: 9px; }
@media (max-width: 600px) {
  .site-footer { flex-wrap: wrap; column-gap: 12px; }
  .orbit-map-credit { margin-left: 0; }
}
@media (max-width: 380px) {
  .scene-label { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .orbit-3d-stage { transition: none; }
  .motion-switch-track, .motion-switch-thumb { transition: none; }
}
