@layer components{.fx-spotlight-grid{--fx-sg-ink:color-mix(in oklch, var(--fx-c) 62%, var(--foreground));--fx-sg-alpha:calc(.4 * var(--fx-k));--fx-sg-base-alpha:calc(.08 * var(--fx-k));--fx-sg-muted:color-mix(in oklch, var(--muted-foreground) 65%, var(--foreground));--fx-sg-glow:color-mix(in oklch, var(--fx-c) min(100%, calc(16% * var(--fx-k))), transparent);isolation:isolate;position:relative;overflow:hidden}.dark .fx-spotlight-grid,.fx-spotlight-grid.dark{--fx-sg-alpha:calc(.62 * var(--fx-k));--fx-sg-base-alpha:calc(.13 * var(--fx-k));--fx-sg-glow:color-mix(in oklch, var(--fx-c) min(100%, calc(24% * var(--fx-k))), transparent)}.fx-spotlight-grid__layers{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.fx-spotlight-grid__base,.fx-spotlight-grid__pattern{background-color:var(--fx-sg-ink);-webkit-mask-image:var(--fx-sg-tile);-webkit-mask-image:var(--fx-sg-tile);mask-image:var(--fx-sg-tile);-webkit-mask-size:var(--fx-sg-size) var(--fx-sg-size);-webkit-mask-size:var(--fx-sg-size) var(--fx-sg-size);mask-size:var(--fx-sg-size) var(--fx-sg-size);-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-repeat:repeat;mask-repeat:repeat}.fx-spotlight-grid__base{opacity:var(--fx-sg-base-alpha);position:absolute;inset:0}.fx-spotlight-grid__glow{background:radial-gradient(calc(var(--fx-sg-r) * 1.5) circle at 50% 50%, var(--fx-sg-glow), transparent 72%);opacity:1;transition:opacity var(--duration-slow,.4s) var(--ease-standard,ease);position:absolute;inset:0}.fx-spotlight-grid[data-state=tracking] .fx-spotlight-grid__glow{opacity:.45}.fx-spotlight-grid__lens{width:calc(var(--fx-sg-r) * 2);height:calc(var(--fx-sg-r) * 2);position:absolute;top:0;left:0;overflow:hidden;transform:translate(0,0);-webkit-mask-image:radial-gradient(circle closest-side,#000 0% 28%,#0000 100%);mask-image:radial-gradient(circle closest-side,#000 0% 28%,#0000 100%)}.fx-spotlight-grid__pattern{width:var(--fx-sg-w);height:var(--fx-sg-h);opacity:var(--fx-sg-alpha);position:absolute;top:0;left:0;transform:translate(0,0)}.fx-spotlight-grid:not([data-fx-sg-ready]) .fx-spotlight-grid__lens{opacity:0}.fx-spotlight-grid[data-motion-mode=none] .fx-spotlight-grid__glow{transition:none}.fx-spotlight-grid__content{--muted-foreground:var(--fx-sg-muted);z-index:1;position:relative}}
