/* Cursor storyboard: precise arrow at rest; a tactile badge unfolds beside it. */
.project-cursor{--cursor-morph:320ms;--cursor-label:160ms;--badge-x:18px;--badge-y:18px;position:fixed;z-index:10000;top:0;left:0;will-change:transform;pointer-events:none;opacity:0;visibility:hidden}
.project-cursor::before{content:"";position:absolute;left:-12px;top:-10px;width:42px;height:42px;border-radius:50%;background:radial-gradient(circle,#258bff1a 0%,#258bff0b 35%,#258bff00 65%);pointer-events:none}
.project-cursor-arrow{position:absolute;left:-2px;top:-2px;width:20px;height:24px;overflow:visible;fill:#171719;stroke:#fff;stroke-width:1.3;stroke-linejoin:round;shape-rendering:geometricPrecision;transition:fill var(--cursor-label) ease,opacity var(--cursor-label) ease}
.project-cursor-shape{position:absolute;left:var(--badge-x);top:var(--badge-y);display:flex;align-items:center;justify-content:center;width:var(--cursor-badge-width,132px);height:34px;padding:0 16px;overflow:hidden;border-radius:999px;background:linear-gradient(155deg,#414145,#303033 55%,#27272a);color:#fff;box-shadow:inset 0 1px 0 #ffffff66,inset 1px 0 0 #ffffff38,inset 0 -1px 0 #00000030,0 2px 5px #00000026,0 8px 20px #00000018;opacity:0;transform:translateY(7px) scale(.82);transform-origin:top left;transition:opacity var(--cursor-label) ease,transform var(--cursor-morph) cubic-bezier(.22,1,.36,1)}
.project-cursor-label{white-space:nowrap;font-size:13px;font-weight:400;line-height:20px;letter-spacing:0}
.project-cursor.is-action .project-cursor-shape{opacity:1;transform:translateY(0) scale(1)}
.project-cursor.is-clickable .project-cursor-arrow{fill:#285b8b}
.project-cursor.is-pressed .project-cursor-arrow{fill:#19436b}
.project-cursor.is-pressed .project-cursor-shape{transform:translateY(1px) scale(.97);box-shadow:inset 0 1px 3px #00000040,inset 0 1px 0 #ffffff30,0 2px 6px #00000020}
@media(hover:hover) and (pointer:fine){html.has-craft-cursor,html.has-craft-cursor *{cursor:none!important}.project-cursor.is-visible{opacity:1;visibility:visible}}

.project-cursor-label{font-family:GT,sans-serif}
@media(prefers-reduced-motion:reduce){.project-cursor-arrow,.project-cursor-shape{transition:none}}
