/* Camera reticle cursor - desktop/fine pointers only. */
@media (hover:hover) and (pointer:fine) {
  body.camera-cursor-enabled,
  body.camera-cursor-enabled a,
  body.camera-cursor-enabled button,
  body.camera-cursor-enabled input,
  body.camera-cursor-enabled select,
  body.camera-cursor-enabled textarea,
  body.camera-cursor-enabled summary {
    cursor: none !important;
  }

  .camera-cursor {
    position: fixed;
    z-index: 10000;
    top: 0;
    left: 0;
    width: 40px;
    height: 40px;
    pointer-events: none;
    opacity: 0;
    transform: translate(-50%,-50%);
    transition: opacity .14s ease;
    will-change: left,top;
  }

  .camera-cursor.is-visible { opacity: 1; }
  .camera-cursor.is-action { transform: translate(-50%,-50%) scale(1.1); }
  .camera-cursor .corner {
    position: absolute;
    width: 12px;
    height: 12px;
    border-color: var(--cream);
    border-style: solid;
  }
  .camera-cursor .c1 { top:0;left:0;border-width:1.5px 0 0 1.5px; }
  .camera-cursor .c2 { top:0;right:0;border-width:1.5px 1.5px 0 0; }
  .camera-cursor .c3 { right:0;bottom:0;border-width:0 1.5px 1.5px 0; }
  .camera-cursor .c4 { bottom:0;left:0;border-width:0 0 1.5px 1.5px; }
  .camera-cursor .lens {
    position: absolute;
    inset: 10px;
    border: 1.5px solid var(--red);
    border-radius: 50%;
    background: transparent;
  }
  .camera-cursor .lens::before,
  .camera-cursor .lens::after {
    position: absolute;
    background: var(--cream);
    content: "";
  }
  .camera-cursor .lens::before { top:9px;left:-5px;width:28px;height:1px; }
  .camera-cursor .lens::after { top:-5px;left:9px;width:1px;height:28px; }
  .camera-cursor .aperture {
    position: absolute;
    z-index: 2;
    inset: 10px;
    border-radius: 50%;
    opacity: 0;
    background: repeating-conic-gradient(from 0deg,var(--cream) 0 40deg,transparent 40deg 60deg);
    filter: drop-shadow(0 0 2px #fff);
  }
  .camera-cursor.snap .lens { animation: camera-lens-pulse .3s ease; }
  .camera-cursor.snap .aperture { animation: camera-shutter .3s cubic-bezier(.18,.82,.2,1); }
}

@keyframes camera-shutter {
  0%,100% { opacity:0;transform:rotate(0) scale(1); }
  20% { opacity:.72;transform:rotate(42deg) scale(.9); }
  46%,58% { opacity:1;transform:rotate(108deg) scale(.01); }
  76% { opacity:.82;transform:rotate(54deg) scale(.58); }
  90% { opacity:.36;transform:rotate(20deg) scale(.9); }
}

@keyframes camera-lens-pulse {
  45%,58% { transform:scale(.62); }
}

@media (hover:none), (pointer:coarse), (prefers-reduced-motion:reduce) {
  .camera-cursor { display:none !important; }
}
