/* LekkerWerk custom cursor v2. Self-contained. Active only when <html> has .lw-cur */
html.lw-cur, html.lw-cur * { cursor: none !important; }
html.lw-cur input, html.lw-cur textarea, html.lw-cur select, html.lw-cur [contenteditable="true"] { cursor: auto !important; }
html.lw-cur input[type="range"], html.lw-cur input[type="checkbox"], html.lw-cur input[type="radio"] { cursor: pointer !important; }
.lw-cur-dot, .lw-cur-ring, .lw-cur-rip { position: fixed; left: 0; top: 0; pointer-events: none; z-index: 2147483646; will-change: transform; }
.lw-cur-fx { position: fixed; inset: 0; width: 100vw; height: 100vh; pointer-events: none; z-index: 2147483645; }
.lw-hero-grid { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; }
.lw-cur-dot { width: 8px; height: 8px; margin: -4px 0 0 -4px; transition: opacity .2s; }
.lw-cur-dot > s { display: block; width: 100%; height: 100%; border-radius: 50%; background: #FFB612; transition: background-color .2s; }
.lw-cur-ring { width: 36px; height: 36px; margin: -18px 0 0 -18px; transition: opacity .2s; }
.lw-cur-ring > i { position: absolute; inset: 0; border-radius: 50%; border: 1.5px solid rgba(255,182,18,.85); background: rgba(255,182,18,0); transform: scale(1); transition: transform .35s cubic-bezier(.2,.8,.2,1), background-color .3s, border-color .3s, opacity .25s; display: flex; align-items: center; justify-content: center; }
.lw-cur-ring > i > b { font: 600 4.2px/1 "Instrument Sans", system-ui, sans-serif; color: #0B0F0C; letter-spacing: .02em; white-space: nowrap; opacity: 0; transition: opacity .2s; display: flex; gap: 1.5px; align-items: center; }
.lw-cur-ring > i > b svg { width: 4.5px; height: 4.5px; }
.lw-cur.s-hover .lw-cur-dot { opacity: 0; }
.lw-cur.s-hover .lw-cur-ring > i { transform: scale(3); border-color: transparent; background: rgba(255,182,18,.16); }
.lw-cur.s-ghost .lw-cur-ring > i { opacity: 0; transform: scale(.5); }
.lw-cur.s-solid .lw-cur-dot > s { background: #fff; }
.lw-cur.s-solid .lw-cur-ring > i { opacity: 0; transform: scale(.5); }
.lw-cur.s-book .lw-cur-dot { opacity: 0; }
.lw-cur.s-book .lw-cur-ring > i { transform: scale(2.6); border-color: transparent; background: rgba(255,255,255,.92); box-shadow: 0 2px 10px rgba(0,0,0,.25); opacity: 1; }
.lw-cur.s-book .lw-cur-ring > i > b { opacity: 1; }
.lw-cur.s-down .lw-cur-ring > i { transform: scale(.78); }
.lw-cur.s-hover.s-down .lw-cur-ring > i { transform: scale(2.6); }
.lw-cur.s-book.s-down .lw-cur-ring > i { transform: scale(2.3); }
/* press-and-hold charge */
.lw-cur.s-charge .lw-cur-ring > i { transition: none; opacity: 1; transform: scale(calc(.8 + var(--ch, 0) * 1.1)); border-color: rgba(255,182,18,1); background: rgba(255,182,18, calc(var(--ch, 0) * .35)); box-shadow: 0 0 calc(var(--ch, 0) * 22px) rgba(255,182,18, calc(var(--ch, 0) * .55)); }
.lw-cur.s-out .lw-cur-dot, .lw-cur.s-out .lw-cur-ring, .lw-cur.s-native .lw-cur-dot, .lw-cur.s-native .lw-cur-ring { opacity: 0; }
.lw-cur-rip { width: 36px; height: 36px; margin: -18px 0 0 -18px; border-radius: 50%; border: 1.5px solid rgba(255,182,18,.7); animation: lwRip .55s cubic-bezier(.2,.7,.3,1) forwards; }
@keyframes lwRip { from { transform: var(--p) scale(.3); opacity: .9; } to { transform: var(--p) scale(2.2); opacity: 0; } }
/* idle personality */
.lw-cur.s-breathe .lw-cur-dot > s { animation: lwBreathe 2.4s ease-in-out infinite; }
.lw-cur.s-wink .lw-cur-dot > s { animation: lwWink .5s ease-in-out 1, lwBreathe 2.4s ease-in-out .5s infinite; }
.lw-cur.s-wake .lw-cur-dot > s { animation: lwWake .45s cubic-bezier(.3,1.6,.5,1) 1; }
@keyframes lwBreathe { 0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(255,182,18,0); } 50% { transform: scale(1.6); box-shadow: 0 0 10px 2px rgba(255,182,18,.35); } }
@keyframes lwWink { 0%, 100% { transform: scale(1.2, 1.2); } 45%, 55% { transform: scale(1.5, .12); } }
@keyframes lwWake { 0% { transform: scale(1); } 40% { transform: scale(1.9); } 100% { transform: scale(1); } }
[data-lw-mag] { transition: transform .35s cubic-bezier(.2,.8,.2,1); }
/* hero headline letters */
.lw-w { white-space: nowrap; }
.lw-l { display: inline-block; will-change: transform; }
/* easter egg toast */
.lw-toast { position: fixed; left: 50%; top: 18%; z-index: 2147483647; pointer-events: none; font: 800 28px/1 "Bricolage Grotesque", system-ui, sans-serif; color: #0B0F0C; background: #FFB612; padding: 12px 22px; border-radius: 999px; box-shadow: 0 10px 30px rgba(0,0,0,.35); transform: translate(-50%, 10px) scale(.8); opacity: 0; animation: lwToast 1.6s cubic-bezier(.2,.9,.3,1.2) forwards; }
@keyframes lwToast { 15% { opacity: 1; transform: translate(-50%, 0) scale(1); } 75% { opacity: 1; transform: translate(-50%, 0) scale(1); } 100% { opacity: 0; transform: translate(-50%, -12px) scale(.95); } }
