/* Shir Deer custom cursor — desktop / precise pointers only. */
@media (hover:hover) and (pointer:fine){
  html,body{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cg transform='translate(16 16)'%3E%3Cellipse cx='0' cy='-7' rx='4.2' ry='7' fill='%23efb0bd' stroke='%236f5862' stroke-width='1.2'/%3E%3Cellipse cx='6.7' cy='-2.2' rx='4.2' ry='7' transform='rotate(72 6.7 -2.2)' fill='%23efb0bd' stroke='%236f5862' stroke-width='1.2'/%3E%3Cellipse cx='4.2' cy='5.7' rx='4.2' ry='7' transform='rotate(144 4.2 5.7)' fill='%23efb0bd' stroke='%236f5862' stroke-width='1.2'/%3E%3Cellipse cx='-4.2' cy='5.7' rx='4.2' ry='7' transform='rotate(216 -4.2 5.7)' fill='%23efb0bd' stroke='%236f5862' stroke-width='1.2'/%3E%3Cellipse cx='-6.7' cy='-2.2' rx='4.2' ry='7' transform='rotate(288 -6.7 -2.2)' fill='%23efb0bd' stroke='%236f5862' stroke-width='1.2'/%3E%3Ccircle r='3.5' fill='%23f5df9f' stroke='%236f5862' stroke-width='1.1'/%3E%3C/g%3E%3C/svg%3E") 16 16,auto}
  a,button,[role="button"],[data-lightbox],summary,label[for],select{cursor:pointer}
  input,textarea,[contenteditable="true"]{cursor:text}
  html.cursor-fx-live,html.cursor-fx-live body,html.cursor-fx-live body *{cursor:none!important}
  .cursor-physical{position:fixed;left:0;top:0;width:32px;height:32px;z-index:100000;pointer-events:none;opacity:0;transform:translate(-50%,-50%) rotate(var(--cursor-tilt,0deg)) scale(var(--cursor-scale,1));transform-origin:50% 50%;transition:opacity .16s ease,filter .2s ease;will-change:left,top,transform;background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cg transform='translate(16 16)'%3E%3Cellipse cx='0' cy='-7' rx='4.2' ry='7' fill='%23efb0bd' stroke='%236f5862' stroke-width='1.2'/%3E%3Cellipse cx='6.7' cy='-2.2' rx='4.2' ry='7' transform='rotate(72 6.7 -2.2)' fill='%23efb0bd' stroke='%236f5862' stroke-width='1.2'/%3E%3Cellipse cx='4.2' cy='5.7' rx='4.2' ry='7' transform='rotate(144 4.2 5.7)' fill='%23efb0bd' stroke='%236f5862' stroke-width='1.2'/%3E%3Cellipse cx='-4.2' cy='5.7' rx='4.2' ry='7' transform='rotate(216 -4.2 5.7)' fill='%23efb0bd' stroke='%236f5862' stroke-width='1.2'/%3E%3Cellipse cx='-6.7' cy='-2.2' rx='4.2' ry='7' transform='rotate(288 -6.7 -2.2)' fill='%23efb0bd' stroke='%236f5862' stroke-width='1.2'/%3E%3Ccircle r='3.5' fill='%23f5df9f' stroke='%236f5862' stroke-width='1.1'/%3E%3C/g%3E%3C/svg%3E")}.cursor-physical.visible{opacity:1}.cursor-physical.is-link{width:34px;height:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='34' height='34' viewBox='0 0 34 34'%3E%3Cpath d='M17 29S4 21.3 4 12.2C4 7.5 7.3 5 10.9 5c2.7 0 4.8 1.5 6.1 3.7C18.3 6.5 20.4 5 23.1 5 26.7 5 30 7.5 30 12.2 30 21.3 17 29 17 29Z' fill='%23efb0bd' stroke='%236f5862' stroke-width='1.5'/%3E%3C/svg%3E");filter:drop-shadow(0 4px 6px rgba(111,88,98,.18))}
  .cursor-magic{position:fixed;left:0;top:0;z-index:99999;pointer-events:none;user-select:none;transform:translate(-50%,-50%);font-family:Georgia,"Times New Roman",serif;line-height:1;filter:drop-shadow(0 3px 5px rgba(90,62,75,.12))}.cursor-sparkle{color:#d9a7cf;font-size:16px;animation:cursorSparkle .62s cubic-bezier(.18,.72,.28,1) forwards}.cursor-sparkle.alt{color:#efb0bd;font-size:13px}.cursor-sparkle.gold{color:#e8c978;font-size:12px}.cursor-sparkle.rare{color:#d883a0;font-size:21px;filter:drop-shadow(0 4px 8px rgba(216,131,160,.28));animation-duration:.82s}.cursor-click-flower{color:#efb0bd;font-size:15px;animation:cursorFlowerBurst .72s cubic-bezier(.16,.78,.28,1) forwards}.cursor-link-bounce{color:#efb0bd;font-size:18px;animation:cursorLinkBounce .42s cubic-bezier(.2,.9,.28,1) forwards}.cursor-painting-pulse{width:26px;height:26px;border:2px solid rgba(239,176,189,.82);border-radius:50%;animation:cursorPaintingPulse .58s ease-out forwards}.cursor-idle{color:#c8b8e4;font-size:18px;animation:cursorIdleTwinkle 1.15s ease-in-out forwards}
  @keyframes cursorSparkle{0%{opacity:0;transform:translate(-50%,-50%) scale(.35)}22%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1.18) rotate(var(--rot))}}@keyframes cursorFlowerBurst{0%{opacity:1;transform:translate(-50%,-50%) scale(.45)}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1.15) rotate(var(--rot))}}@keyframes cursorLinkBounce{0%{opacity:0;transform:translate(-50%,-50%) scale(.45)}45%{opacity:1;transform:translate(-50%,calc(-50% - 10px)) scale(1.22)}100%{opacity:0;transform:translate(-50%,-50%) scale(.8)}}@keyframes cursorPaintingPulse{0%{opacity:.9;transform:translate(-50%,-50%) scale(.45)}100%{opacity:0;transform:translate(-50%,-50%) scale(2.15)}}@keyframes cursorIdleTwinkle{0%,100%{opacity:0;transform:translate(-50%,-50%) scale(.45) rotate(-10deg)}35%,65%{opacity:1;transform:translate(-50%,calc(-50% - 8px)) scale(1.12) rotate(12deg)}}
}

/* The spinning contact flower is also a hidden play / stop button. */
#music-flower{appearance:none;-webkit-appearance:none;border:0;background:transparent;padding:0;margin:0;color:inherit;font:inherit;line-height:1}.contact-flower.is-playing{filter:drop-shadow(0 0 10px rgba(239,176,189,.55));animation:musicFlowerPulse 1.05s ease-in-out infinite}@keyframes musicFlowerPulse{0%,100%{transform:rotate(0deg) scale(1)}50%{transform:rotate(180deg) scale(1.25)}}
#music-flower:focus-visible{outline:2px dashed #b86579;outline-offset:8px;border-radius:50%}

@media (prefers-reduced-motion:reduce){.cursor-magic,.cursor-physical{display:none!important}.contact-flower.is-playing{animation:none}}
