.lamp-contact { display: none; }
@media (min-width: 1101px) and (hover: hover) and (pointer: fine) {
  .lamp-contact {
    display: block;
    position: absolute;
    z-index: 5;
    visibility: hidden;
    width: var(--lamp-hit-width, 48px);
    height: var(--lamp-hit-height, 80px);
    translate: -50% -50%;
    transform: translate3d(var(--scene-x, 0px), var(--scene-y, 0px), 0);
    cursor: pointer;
    border-radius: 3px;
  }
  .lamp-contact-tip {
    position: absolute;
    left: calc(100% + 12px);
    top: 50%;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    color: #eee9df;
    background: #12201bec;
    border: 1px solid #cfaa864d;
    font: 14px/1.4 Arial, sans-serif;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    transform: translate(4px, -50%);
    transition: opacity 180ms ease, transform 180ms ease, visibility 180ms;
    pointer-events: none;
  }
  .lamp-contact-tip svg { width: 17px; height: 17px; }
  .lamp-contact.is-inviting .lamp-contact-tip {
    opacity: 1;
    visibility: visible;
    transform: translate(0, -50%);
  }
  .light-lamp-left, .lamp-water { transition: filter 250ms ease; }
  .lamp-invitation .light-lamp-left { filter: brightness(1.3); }
  .lamp-invitation .lamp-water { filter: brightness(1.3) blur(1.5px); }
}
@media (prefers-reduced-motion: reduce) {
  .lamp-contact { transform: none; }
  .lamp-contact-tip, .light-lamp-left, .lamp-water { transition: none; }
}
