/* Custom cursor — desktop with a mouse only (js/cursor.js adds .has-cursor). Decorative: focus rings and native text cursor stay. */
.has-cursor, .has-cursor * { cursor: none; }
.has-cursor input:not([type=checkbox]), .has-cursor textarea, .has-cursor select { cursor: text; }
.cursor { position: fixed; left: 0; top: 0; z-index: 100; width: 0; height: 0; pointer-events: none; transition: opacity .2s ease-out; }
.cursor.is-hidden { opacity: 0; }
/* default: 8px dot; ring: 40px outline for buttons and links (no blend mode: it is isolated by the fixed layer and stays white) */
.cursor__dot { position: absolute; left: 0; top: 0; width: 8px; height: 8px; translate: -50% -50%; border-radius: 999px; background: #EDEDED;
  transition: width .3s cubic-bezier(0.16, 1, 0.3, 1), height .3s cubic-bezier(0.16, 1, 0.3, 1), background-color .2s ease-out, opacity .2s ease-out; }
.cursor.is-ring .cursor__dot { width: 40px; height: 40px; background: transparent; box-shadow: inset 0 0 0 1px rgb(237 237 237 / .7); }
/* over light blocks (curtain, «Не знаете, с чего начать?», promo): dark cursor */
.cursor.is-dark .cursor__dot { background: #111214; }
.cursor.is-dark.is-ring .cursor__dot { background: transparent; box-shadow: inset 0 0 0 1px rgb(17 18 20 / .7); }
.cursor.is-dark .cursor__label { background: #111214; color: #EDEDED; }
/* label: light circle with an action word — «Подробнее →», «Смотреть кейс», «Увеличить», «Открыть ↗» */
.cursor__label { position: absolute; left: 0; top: 0; width: 120px; height: 120px; translate: -50% -50%; scale: 0; border-radius: 999px; background: #EDEDED; color: #111214;
  display: grid; place-items: center; padding: 8px; text-align: center; font: 400 11px/1.3 "Unbounded", system-ui, sans-serif; letter-spacing: .01em; text-transform: uppercase;
  transition: scale .35s cubic-bezier(0.16, 1, 0.3, 1); }
.cursor.is-label .cursor__label { scale: 1; }
.cursor.is-label .cursor__dot { opacity: 0; }
@media (prefers-reduced-motion: reduce) { .cursor__dot, .cursor__label { transition: none; } }
