/* cursor.css */
html.has-cursor,html.has-cursor *,html.has-cursor *::before,html.has-cursor *::after{cursor:none!important;}
html.has-cursor :is(input,textarea,select,[contenteditable="true"],iframe,video,.no-custom-cursor),
html.has-cursor dialog[open],html.has-cursor dialog[open] *{cursor:auto!important;}
html.has-cursor dialog[open] :is(a,button){cursor:pointer!important;}
html.has-cursor dialog[open] img{cursor:zoom-out!important;}

.cursor-dot,.cursor-ring{position:fixed;left:0;top:0;pointer-events:none;border-radius:50%;
  mix-blend-mode:difference;will-change:translate;translate:-100px -100px;transform:translate(-50%,-50%);transform-origin:0 0;}
.cursor-dot{z-index:2147483646;width:8px;height:8px;background:#fff;
  transition:width 80ms var(--ease-out),height 80ms var(--ease-out),border-radius 80ms,opacity 80ms;}
.cursor-ring{z-index:2147483645;width:34px;height:34px;border:1px solid #fff;display:grid;place-items:center;
  transition:width 100ms var(--ease-out),height 100ms var(--ease-out),background-color 100ms,border-color 100ms,opacity 100ms,scale 80ms;}
.cursor-label{font:500 12px/1 var(--font);letter-spacing:.02em;color:#000;opacity:0;transition:opacity 80ms;white-space:nowrap;}

/* 状态 */
.cursor-ring[data-state=link]{width:46px;height:46px;}
.cursor-dot[data-state=link]{width:4px;height:4px;}
.cursor-dot[data-state=text]{width:2px;height:22px;border-radius:1px;}
.cursor-ring[data-state=text]{opacity:0;}
.cursor-ring:is([data-state=view],[data-state=zoom]){width:76px;height:76px;mix-blend-mode:normal;background:#000;border-color:#000;}
.cursor-ring:is([data-state=view],[data-state=zoom])[data-theme=dark]{background:#fff;border-color:#fff;}
.cursor-ring:is([data-state=view],[data-state=zoom]) .cursor-label{opacity:1;color:#fff;}
.cursor-ring:is([data-state=view],[data-state=zoom])[data-theme=dark] .cursor-label{color:#000;}
.cursor-dot:is([data-state=view],[data-state=zoom],[data-state=magnet]){opacity:0;}
.cursor-ring[data-state=magnet]{border-color:#fff;}
.cursor-ring.is-down{scale:.86;}
:is(.cursor-dot,.cursor-ring):is([data-state=native]),html.cursor-hidden :is(.cursor-dot,.cursor-ring){opacity:0;}

/* 每个效果元素各自 fixed，直接挂在 body 下；不要包一层 fixed 容器 */
.fx {
  position: fixed; left: 0; top: 0; pointer-events: none; z-index: 2147483644;
  mix-blend-mode: difference;
  will-change: transform, opacity;
}
.fx-dot  { border-radius: 50%; background: #fff; }
.fx-ring { border-radius: 50%; border: 1.5px solid #fff; }
.fx-sprout { overflow: visible; }
.fx-sprout path { fill: none; stroke: #fff; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
html{-webkit-tap-highlight-color:transparent;}[hidden]{display:none!important;}
.who-screen{display:flex;align-items:flex-end;min-height:min(84svh,820px);}
.who{text-align:left;width:100%;padding-top:130px;padding-bottom:64px;}
