/* Cursor with a different symbol for each section (fine pointers only; see cursor.js) */
.k-cur { display: none; }
html.k-cur-on .k-cur {
  display: block; position: fixed; left: 0; top: 0; z-index: 2147483000; pointer-events: none;
  width: 0; height: 0; mix-blend-mode: difference; color: #fff; opacity: 0; transition: opacity .3s ease;
}
html.k-cur-on.k-cur-seen .k-cur { opacity: 1; }
html.k-cur-on .k-cur.is-hidden { opacity: 0; }
html.k-cur-on, html.k-cur-on body, html.k-cur-on .k-gate { cursor: none; }
/* every button, link and card keeps the normal pointing hand */
html.k-cur-on a, html.k-cur-on button, html.k-cur-on summary, html.k-cur-on label, html.k-cur-on [role="button"], html.k-cur-on [data-video],
html.k-cur-on .still-patreon-card, html.k-cur-on .poster-card, html.k-cur-on .tr-frame, html.k-cur-on .tr-play, html.k-cur-on .k-gate button, html.k-cur-on .k-gate a { cursor: pointer; }
html.k-cur-on input, html.k-cur-on textarea, html.k-cur-on select, html.k-cur-on dialog, html.k-cur-on .music-dock { cursor: auto; }
html.k-cur-on .music-dock button, html.k-cur-on .music-dock .music-toggle { cursor: pointer; }
html.k-cur-on dialog button, html.k-cur-on dialog a, html.k-cur-on dialog summary { cursor: pointer; }
.k-cur-ring {
  position: absolute; left: -28px; top: -28px; width: 56px; height: 56px; border-radius: 50%;
  border: 1px solid currentColor; opacity: .4;
  transition: transform .35s cubic-bezier(.2, .8, .2, 1), background-color .3s ease, opacity .3s ease;
  will-change: transform;
}
.k-cur-sym { position: absolute; left: -22px; top: -22px; width: 44px; height: 44px; display: grid; place-items: center; will-change: transform; }
.k-cur-sym svg {
  position: absolute; width: 34px; height: 34px; fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round;
  opacity: 0; transform: scale(.55) rotate(-18deg); transition: opacity .35s ease, transform .5s cubic-bezier(.2, .8, .2, 1);
}
.k-cur-sym svg.is-on { opacity: 1; transform: none; }
/* every symbol is alive */
.k-cur-sym svg.is-on { transform-origin: 50% 50%; }
.k-cur-sym svg.c-eye.is-on { animation: kc-blink 4.2s ease-in-out infinite; }
.k-cur-sym svg.c-pair.is-on { animation: kc-spin 5s linear infinite; }
.k-cur-sym svg.c-ask.is-on { animation: kc-bob 2.2s ease-in-out infinite; }
.k-cur-sym svg.c-play.is-on { animation: kc-pulse 1.6s ease-in-out infinite; }
.k-cur-sym svg.c-feather.is-on { animation: kc-sway 3.2s ease-in-out infinite; }
.k-cur-sym svg.c-crown.is-on { animation: kc-float 2.6s ease-in-out infinite; }
.k-cur-sym svg.c-drop.is-on { animation: kc-drip 1.9s ease-in-out infinite; }
.k-cur-sym svg.c-frame.is-on { animation: kc-focus 2.4s ease-in-out infinite; }
.k-cur-sym svg.c-vase.is-on { animation: kc-sway 3.6s ease-in-out infinite; }
.k-cur-sym svg.c-reel.is-on { animation: kc-spin 4s linear infinite; }
@keyframes kc-blink { 0%, 90%, 100% { transform: scaleY(1); } 94% { transform: scaleY(.08); } }
@keyframes kc-spin { to { transform: rotate(360deg); } }
@keyframes kc-bob { 0%, 100% { transform: translateY(-2px) rotate(-6deg); } 50% { transform: translateY(2px) rotate(6deg); } }
@keyframes kc-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.22); } }
@keyframes kc-sway { 0%, 100% { transform: rotate(-14deg); } 50% { transform: rotate(14deg); } }
@keyframes kc-float { 0%, 100% { transform: translateY(1.5px) scale(1); } 50% { transform: translateY(-2px) scale(1.1); } }
@keyframes kc-drip { 0% { transform: translateY(-3px) scale(.9, 1.1); } 60% { transform: translateY(2px) scale(1.05, .95); } 100% { transform: translateY(-3px) scale(.9, 1.1); } }
@keyframes kc-focus { 0%, 100% { transform: scale(1.12); } 50% { transform: scale(.78); } }
.k-cur-sym text { fill: currentColor; stroke: none; font: italic 400 25px 'Libre Caslon Display', Didot, serif; }
/* over something clickable: the ring opens, the symbol steps aside */
.k-cur.is-link .k-cur-ring { transform: scale(1.55); background-color: rgba(255, 255, 255, .14); opacity: 1; }
.k-cur.is-link .k-cur-sym { scale: 1.25; }
.k-cur.is-link .k-cur-ring { opacity: .9; }
.k-cur.is-card .k-cur-ring { transform: scale(1.5); background-color: rgba(255, 255, 255, .1); opacity: 1; }
.k-cur.is-down .k-cur-ring { transform: scale(.78); }
.k-cur.is-link.is-down .k-cur-ring { transform: scale(1.3); }
@media all, (pointer: coarse) { :where(html[data-koan-motion="reduced"]) .k-cur { display: none !important; } }
