/* ===== Custom Cursor — Dot default, „Geil“-Kreis auf klickbaren Elementen ===== */
html.has-custom-cursor,
html.has-custom-cursor *{
  cursor:none !important;
}

.td-cursor-ring{
  position:fixed;top:0;left:0;
  width:38px;height:38px;
  margin:-19px 0 0 -19px;
  border-radius:50%;
  border:2px solid color-mix(in srgb, var(--olive) 72%, transparent);
  pointer-events:none;z-index:9998;
  will-change:transform;
  opacity:1;
  transition:opacity .25s var(--ease), width .38s var(--ease-out), height .38s var(--ease-out),
    margin .38s var(--ease-out), border-color .28s var(--ease);
}
.td-cursor-ring.is-hidden{opacity:0}
.td-cursor-ring.is-hover{
  width:52px;height:52px;
  margin:-26px 0 0 -26px;
  border-color:color-mix(in srgb, var(--accent) 58%, transparent);
  opacity:.62;
}

.td-cursor{
  position:fixed;top:0;left:0;
  width:76px;height:76px;
  margin:-38px 0 0 -38px;
  pointer-events:none;z-index:9999;
  will-change:transform;
  opacity:1;
  transition:opacity .25s var(--ease);
}
.td-cursor.is-hidden{opacity:0}

.td-cursor-dot{
  position:absolute;inset:0;margin:auto;
  width:10px;height:10px;
  border-radius:50%;
  background:var(--olive);
  box-shadow:0 0 0 1px rgba(255,255,255,.85);
  transition:transform .35s var(--ease-out),opacity .28s var(--ease);
}
.td-cursor.is-hover .td-cursor-dot{
  opacity:0;
  transform:scale(.2);
}

.td-cursor-hover{
  position:absolute;inset:0;
  opacity:0;
  transform:scale(.35);
  transition:transform .42s var(--ease-out),opacity .28s var(--ease);
}
.td-cursor.is-hover .td-cursor-hover{
  opacity:1;
  transform:scale(1);
}
.td-cursor.is-down .td-cursor-hover{transform:scale(.88)}

.td-cursor-spin{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  background:var(--accent);
  color:var(--olive);
  box-shadow:0 10px 32px rgba(217,164,4,.35);
  animation:td-cursor-spin 5s linear infinite;
}

.td-cursor-orbit{
  position:absolute;inset:3px;
  border-radius:50%;
  border:2px dashed rgba(35,85,25,.85);
  pointer-events:none;
}

.td-cursor-label{
  position:relative;z-index:1;
  font-family:var(--font);
  font-size:15px;font-weight:900;font-style:italic;
  letter-spacing:-.03em;line-height:1;
  animation:td-cursor-spin 5s linear infinite reverse;
}

.td-cursor.is-down .td-cursor-dot{transform:scale(.75)}

@keyframes td-cursor-spin{to{transform:rotate(360deg)}}

@media (hover:none),(pointer:coarse){
  html.has-custom-cursor,
  html.has-custom-cursor *{cursor:auto !important}
  .td-cursor,
  .td-cursor-ring{display:none !important}
}

@media (prefers-reduced-motion:reduce){
  .td-cursor-spin,
  .td-cursor-label{animation:none}
}
