/* cursor-follower: dot + lagging ring with context labels. Zyqor Components, MIT. */
.cf{--cf-c:var(--ink,#1E3A4C);--cf-a:var(--acc,#F06B3C);position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:0;transition:opacity .3s}
.cf.is-on{opacity:1}
.cf-dot{position:absolute;left:0;top:0;width:6px;height:6px;border-radius:50%;background:var(--cf-a);transition:opacity .2s,scale .2s}
.cf-ring{position:absolute;left:0;top:0;width:40px;height:40px;border:1.5px solid var(--cf-c);border-radius:999px;display:grid;place-items:center;transition:background-color .3s,border-color .3s,border-radius .3s,scale .25s cubic-bezier(.16,1,.3,1)}
.cf-label{font:600 13px/1 var(--body,system-ui);letter-spacing:.01em;color:var(--bg,#E8EEF0);opacity:0;transform:translateY(4px);transition:opacity .25s,transform .35s cubic-bezier(.16,1,.3,1);white-space:nowrap}
.cf.is-label .cf-ring{background:var(--cf-c);border-color:var(--cf-c)}
.cf.is-label .cf-label{opacity:1;transform:none}
.cf.is-label .cf-dot,.cf.is-stick .cf-dot{opacity:0}
.cf.is-link .cf-ring{background:color-mix(in srgb,var(--cf-a) 18%,transparent);border-color:var(--cf-a)}
.cf.is-stick .cf-ring{border-radius:12px;border-color:var(--cf-a)}
.cf.is-down .cf-ring{scale:.85}
.cf.is-hidden{opacity:0}
html.cf-native-off,html.cf-native-off *{cursor:none!important}
html.cf-native-off input,html.cf-native-off textarea,html.cf-native-off select{cursor:auto!important}
@media (hover:none),(pointer:coarse){.cf{display:none}}
/* demo page only */
.cf-demo{display:grid;gap:clamp(28px,5vw,56px)}
.cf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,2vw,22px)}
.cf-tile{position:relative;display:block;border-radius:10px;overflow:hidden;aspect-ratio:4/3;background:var(--line);text-decoration:none;color:var(--ink)}
.cf-tile img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.16,1,.3,1)}
.cf-tile:hover img,.cf-tile:focus-visible img{transform:scale(1.04)}
.cf-tile span{position:absolute;left:12px;right:12px;bottom:12px;display:flex;justify-content:space-between;font:600 15px/1.1 var(--display);background:var(--bg);padding:10px 12px;border-radius:8px}
.cf-tile span em{font:400 11px/1.3 var(--mono);font-style:normal;text-transform:uppercase;letter-spacing:.06em;color:var(--soft)}
.cf-links{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.cf-links a{font:600 15px/1 var(--body);text-decoration:none;padding:14px 18px;border:1px solid var(--line);border-radius:999px;min-height:44px;display:inline-flex;align-items:center}
.cf-field{display:grid;gap:6px;max-width:360px}
.cf-field input{font:400 16px/1.2 var(--body);padding:14px 14px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--ink)}
.cf-touch{display:none;color:var(--soft)}
@media (hover:none),(pointer:coarse){.cf-touch{display:block}}
@media (max-width:760px){.cf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cf-grid a:nth-child(3){display:none}}
