/* Tassel World — additive cat interaction layer. No existing site styles are overridden. */
#tassel-cat-root{position:fixed;inset:0;z-index:40;pointer-events:none;overflow:hidden}
#tassel-cat{position:absolute;left:0;top:0;width:clamp(125px,15vw,245px);height:auto;will-change:transform;transform-origin:50% 72%;filter:drop-shadow(0 12px 18px rgba(0,0,0,.45));user-select:none;-webkit-user-drag:none}
#tassel-cat-target-ping{position:fixed;left:0;top:0;width:18px;height:18px;border-radius:50%;pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.7);background:radial-gradient(circle,#fffdf4 0 16%,#ffeab0 28%,rgba(228,187,92,.78) 45%,rgba(228,187,92,.22) 65%,transparent 72%);box-shadow:0 0 8px rgba(255,253,242,.95),0 0 20px rgba(228,187,92,.62),0 0 38px rgba(228,187,92,.28);transition:opacity .16s ease,transform .16s ease}
#tassel-cat-target-ping.is-visible{opacity:1;transform:translate(-50%,-50%) scale(1)}
#tassel-cat-target-ping::before,#tassel-cat-target-ping::after{content:"";position:absolute;left:50%;top:50%;width:38px;height:2px;border-radius:99px;background:linear-gradient(90deg,transparent,#fffdf4,transparent);transform-origin:center;opacity:.7}
#tassel-cat-target-ping::before{transform:translate(-50%,-50%) rotate(0deg)}
#tassel-cat-target-ping::after{transform:translate(-50%,-50%) rotate(90deg)}
#tassel-cat-root.is-chasing #tassel-cat{animation:tasselCatChaseGlow .5s ease-in-out infinite alternate}
@keyframes tasselCatChaseGlow{from{filter:drop-shadow(0 12px 18px rgba(0,0,0,.45))}to{filter:drop-shadow(0 12px 24px rgba(228,187,92,.18))}}
@media (max-width:700px){#tassel-cat{width:118px}#tassel-cat-root{z-index:35}}
@media (prefers-reduced-motion:reduce){#tassel-cat-root{display:none!important}}
.angel-cursor.cat-target .angel-halo{animation:angelHalo .85s ease-in-out infinite;filter:brightness(1.18)}
.angel-cursor.cat-target .angel-core{box-shadow:0 0 8px rgba(255,255,255,.98),0 0 18px rgba(229,191,101,.9),0 0 30px rgba(229,191,101,.35)}
