
/* Mouse-only Gwen scissors; editable fields retain their native text caret. */
.gwen-pointer{position:fixed;top:0;left:0;width:34px;height:43px;z-index:2147483647;pointer-events:none;opacity:0;transform:translate(-100px,-100px);filter:drop-shadow(0 0 4px rgba(93,220,255,.65));contain:layout style}
.gwen-pointer.is-visible{opacity:1}.gwen-pointer svg{width:100%;height:100%;overflow:visible}.gwen-pointer .cursor-blade{transform-box:view-box;transform-origin:50% 50%;transition:transform .12s ease-out}.gwen-pointer .cursor-a{transform:rotate(-16deg)}.gwen-pointer .cursor-b{transform:rotate(16deg)}.gwen-pointer.is-pressed .cursor-a{transform:rotate(-1deg)}.gwen-pointer.is-pressed .cursor-b{transform:rotate(1deg)}
@media(hover:hover) and (pointer:fine){html.gwen-cursor-on,html.gwen-cursor-on body,html.gwen-cursor-on body *{cursor:none!important}html.gwen-cursor-on input:not([type="radio"]):not([type="checkbox"]),html.gwen-cursor-on textarea,html.gwen-cursor-on [contenteditable="true"]{cursor:text!important}}
.gwen-touch-spark{position:fixed;left:var(--touch-x);top:var(--touch-y);width:12px;height:12px;margin:-6px;z-index:2147483647;border:1px solid #89e7ff;border-radius:50%;box-shadow:0 0 10px rgba(122,92,255,.5);pointer-events:none;animation:gwenTouchGlow .55s ease-out both}
@keyframes gwenTouchGlow{to{transform:scale(3.5);opacity:0}}
@media(prefers-reduced-motion:reduce){.gwen-pointer .cursor-blade{transition:none}.gwen-touch-spark{display:none}}

/* Native custom cursors stay above modal top layers and are not clipped by document animation. */
@media(hover:hover) and (pointer:fine){
 dialog[open],dialog[open] *{cursor:url("assets/gwen/dialog-cursor.svg") 17 2,auto!important}
 dialog[open] input,dialog[open] textarea,dialog[open] [contenteditable="true"]{cursor:text!important}
 dialog[open] input[type="checkbox"],dialog[open] input[type="radio"],dialog[open] select{cursor:pointer!important}
 /* Full screen is a top layer too: only the full-screen element is drawn, so the scissors element would vanish. */
 :fullscreen,:fullscreen *{cursor:url("assets/gwen/dialog-cursor.svg") 17 2,auto!important}
}
@media(hover:hover) and (pointer:fine){:-webkit-full-screen,:-webkit-full-screen *{cursor:url("assets/gwen/dialog-cursor.svg") 17 2,auto!important}}

/* Retired tap rings: hide even stale nodes created by an older script. */
.gwen-touch-spark{display:none!important}
@media(hover:none),(pointer:coarse){.gwen-pointer{display:none!important}*{-webkit-tap-highlight-color:transparent}}
