@skippr/live-agent-sdk 0.18.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  // src/components/LiveAgent.tsx
2
2
  import { LiveKitRoom, RoomAudioRenderer } from "@livekit/components-react";
3
- import { useCallback as useCallback8, useEffect as useEffect8, useMemo as useMemo4, useState as useState8 } from "react";
3
+ import { useCallback as useCallback8, useEffect as useEffect8, useMemo as useMemo4, useRef as useRef4, useState as useState8 } from "react";
4
4
 
5
5
  // src/context/LiveAgentContext.tsx
6
6
  import { createContext } from "react";
@@ -8,7 +8,7 @@ var LiveAgentContext = createContext(null);
8
8
 
9
9
  // src/hooks/useAuth.ts
10
10
  import { useCallback, useEffect, useState } from "react";
11
- var API_URL = "https://skipprapi-production.up.railway.app";
11
+ var API_URL = "https://specialist.skippr.ai/api";
12
12
  function storageKey(appKey) {
13
13
  return `skippr_auth_${appKey}`;
14
14
  }
@@ -149,7 +149,7 @@ function useAuth({ appKey }) {
149
149
 
150
150
  // src/hooks/useSession.ts
151
151
  import { useCallback as useCallback2, useEffect as useEffect2, useState as useState2 } from "react";
152
- var API_URL2 = "https://skipprapi-production.up.railway.app";
152
+ var API_URL2 = "https://specialist.skippr.ai/api";
153
153
  async function exchangeForBearerToken(appKey, userToken) {
154
154
  const resp = await fetch(`${API_URL2}/v1/auth/token-exchange`, {
155
155
  method: "POST",
@@ -170,6 +170,7 @@ function useSession({ agentId, authToken, appKey, userToken }) {
170
170
  const [shouldConnect, setShouldConnect] = useState2(false);
171
171
  const [isStarting, setIsStarting] = useState2(false);
172
172
  const [error, setError] = useState2("");
173
+ const [errorCode, setErrorCode] = useState2(null);
173
174
  const [sessionId, setSessionId] = useState2(null);
174
175
  const [bearerToken, setBearerToken] = useState2(authToken ?? null);
175
176
  useEffect2(() => {
@@ -199,6 +200,7 @@ function useSession({ agentId, authToken, appKey, userToken }) {
199
200
  const headers = { Authorization: `Bearer ${bearerToken}` };
200
201
  setIsStarting(true);
201
202
  setError("");
203
+ setErrorCode(null);
202
204
  try {
203
205
  const createResp = await fetch(`${API_URL2}/v1/sessions`, {
204
206
  method: "POST",
@@ -207,7 +209,9 @@ function useSession({ agentId, authToken, appKey, userToken }) {
207
209
  body: JSON.stringify({ agentId })
208
210
  });
209
211
  if (!createResp.ok) {
210
- throw new Error(`Failed to create session: ${createResp.status}`);
212
+ const body = await createResp.json().catch(() => null);
213
+ setErrorCode(createResp.status);
214
+ throw new Error(body?.detail || `Failed to create session: ${createResp.status}`);
211
215
  }
212
216
  const { session } = await createResp.json();
213
217
  const startResp = await fetch(`${API_URL2}/v1/sessions/${session.id}/start`, {
@@ -216,7 +220,9 @@ function useSession({ agentId, authToken, appKey, userToken }) {
216
220
  headers
217
221
  });
218
222
  if (!startResp.ok) {
219
- throw new Error(`Failed to start session: ${startResp.status}`);
223
+ const body = await startResp.json().catch(() => null);
224
+ setErrorCode(startResp.status);
225
+ throw new Error(body?.detail || `Failed to start session: ${startResp.status}`);
220
226
  }
221
227
  const { connection: conn } = await startResp.json();
222
228
  setSessionId(session.id);
@@ -247,7 +253,7 @@ function useSession({ agentId, authToken, appKey, userToken }) {
247
253
  setConnection(null);
248
254
  setSessionId(null);
249
255
  }, [sessionId, bearerToken]);
250
- return { connection, shouldConnect, isStarting, error, startSession, disconnect };
256
+ return { connection, shouldConnect, isStarting, error, errorCode, startSession, disconnect };
251
257
  }
252
258
 
253
259
  // src/components/MinimizedBubble.tsx
@@ -426,38 +432,30 @@ var __iconNode12 = [
426
432
  ["rect", { x: "9", y: "2", width: "6", height: "13", rx: "3", key: "s6n7sd" }]
427
433
  ];
428
434
  var Mic = createLucideIcon("mic", __iconNode12);
429
- // ../../node_modules/.bun/lucide-react@0.563.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/minimize-2.js
430
- var __iconNode13 = [
431
- ["path", { d: "m14 10 7-7", key: "oa77jy" }],
432
- ["path", { d: "M20 10h-6V4", key: "mjg0md" }],
433
- ["path", { d: "m3 21 7-7", key: "tjx5ai" }],
434
- ["path", { d: "M4 14h6v6", key: "rmj7iw" }]
435
- ];
436
- var Minimize2 = createLucideIcon("minimize-2", __iconNode13);
437
435
  // ../../node_modules/.bun/lucide-react@0.563.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/monitor-off.js
438
- var __iconNode14 = [
436
+ var __iconNode13 = [
439
437
  ["path", { d: "M12 17v4", key: "1riwvh" }],
440
438
  ["path", { d: "M17 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 1.184-1.826", key: "cv7jms" }],
441
439
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
442
440
  ["path", { d: "M8 21h8", key: "1ev6f3" }],
443
441
  ["path", { d: "M8.656 3H20a2 2 0 0 1 2 2v10a2 2 0 0 1-.293 1.042", key: "z8ni2w" }]
444
442
  ];
445
- var MonitorOff = createLucideIcon("monitor-off", __iconNode14);
443
+ var MonitorOff = createLucideIcon("monitor-off", __iconNode13);
446
444
  // ../../node_modules/.bun/lucide-react@0.563.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/monitor.js
447
- var __iconNode15 = [
445
+ var __iconNode14 = [
448
446
  ["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
449
447
  ["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
450
448
  ["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
451
449
  ];
452
- var Monitor = createLucideIcon("monitor", __iconNode15);
450
+ var Monitor = createLucideIcon("monitor", __iconNode14);
453
451
  // ../../node_modules/.bun/lucide-react@0.563.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/panel-right.js
454
- var __iconNode16 = [
452
+ var __iconNode15 = [
455
453
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
456
454
  ["path", { d: "M15 3v18", key: "14nvp0" }]
457
455
  ];
458
- var PanelRight = createLucideIcon("panel-right", __iconNode16);
456
+ var PanelRight = createLucideIcon("panel-right", __iconNode15);
459
457
  // ../../node_modules/.bun/lucide-react@0.563.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/phone-off.js
460
- var __iconNode17 = [
458
+ var __iconNode16 = [
461
459
  [
462
460
  "path",
463
461
  {
@@ -474,9 +472,9 @@ var __iconNode17 = [
474
472
  }
475
473
  ]
476
474
  ];
477
- var PhoneOff = createLucideIcon("phone-off", __iconNode17);
475
+ var PhoneOff = createLucideIcon("phone-off", __iconNode16);
478
476
  // ../../node_modules/.bun/lucide-react@0.563.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/settings.js
479
- var __iconNode18 = [
477
+ var __iconNode17 = [
480
478
  [
481
479
  "path",
482
480
  {
@@ -486,13 +484,13 @@ var __iconNode18 = [
486
484
  ],
487
485
  ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
488
486
  ];
489
- var Settings = createLucideIcon("settings", __iconNode18);
487
+ var Settings = createLucideIcon("settings", __iconNode17);
490
488
  // ../../node_modules/.bun/lucide-react@0.563.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/x.js
491
- var __iconNode19 = [
489
+ var __iconNode18 = [
492
490
  ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
493
491
  ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
494
492
  ];
495
- var X = createLucideIcon("x", __iconNode19);
493
+ var X = createLucideIcon("x", __iconNode18);
496
494
  // src/components/MinimizedBubble.tsx
497
495
  import { useCallback as useCallback3 } from "react";
498
496
 
@@ -550,8 +548,8 @@ function AgentAvatar({ agentState }) {
550
548
  className: "skippr:relative skippr:z-10 skippr:size-5"
551
549
  });
552
550
  }
553
- function MinimizedBubble() {
554
- const { expandPanel, disconnect, position } = useLiveAgent();
551
+ function ConnectedBubbleContent() {
552
+ const { expandPanel, disconnect } = useLiveAgent();
555
553
  const { state: agentState } = useVoiceAssistant();
556
554
  const { localParticipant } = useLocalParticipant();
557
555
  const isMuted = !localParticipant.isMicrophoneEnabled;
@@ -574,13 +572,9 @@ function MinimizedBubble() {
574
572
  console.error("Failed to toggle screen share:", e);
575
573
  }
576
574
  }, [localParticipant, isScreenSharing]);
577
- const handleHangUp = useCallback3(async () => {
578
- await disconnect();
579
- }, [disconnect]);
580
575
  const isSpeaking = agentState === "speaking";
581
576
  const isListening = agentState === "listening";
582
- return /* @__PURE__ */ jsxs("div", {
583
- className: cn("skippr:fixed skippr:bottom-6 skippr:z-[9999]", "skippr:flex skippr:items-center skippr:gap-0", "skippr:rounded-full skippr:bg-card skippr:shadow-2xl", "skippr:border skippr:border-border", "skippr:p-1.5", position === "right" ? "skippr:right-6" : "skippr:left-6"),
577
+ return /* @__PURE__ */ jsxs(Fragment, {
584
578
  children: [
585
579
  /* @__PURE__ */ jsxs("button", {
586
580
  type: "button",
@@ -638,7 +632,7 @@ function MinimizedBubble() {
638
632
  }),
639
633
  /* @__PURE__ */ jsx("button", {
640
634
  type: "button",
641
- onClick: handleHangUp,
635
+ onClick: () => disconnect(),
642
636
  className: "skippr:size-9 skippr:rounded-full skippr:flex skippr:items-center skippr:justify-center skippr:bg-destructive skippr:text-white skippr:cursor-pointer skippr:transition-colors skippr:hover:bg-destructive/90",
643
637
  "aria-label": "Hang up",
644
638
  children: /* @__PURE__ */ jsx(PhoneOff, {
@@ -648,6 +642,50 @@ function MinimizedBubble() {
648
642
  ]
649
643
  });
650
644
  }
645
+ function IdleBubbleContent() {
646
+ const { expandPanel, startSession, isStarting, isAuthenticated } = useLiveAgent();
647
+ const handleStart = useCallback3(() => {
648
+ if (!isAuthenticated) {
649
+ expandPanel();
650
+ return;
651
+ }
652
+ startSession();
653
+ }, [isAuthenticated, expandPanel, startSession]);
654
+ return /* @__PURE__ */ jsxs(Fragment, {
655
+ children: [
656
+ /* @__PURE__ */ jsx("button", {
657
+ type: "button",
658
+ onClick: handleStart,
659
+ disabled: isStarting,
660
+ className: cn("skippr:relative skippr:size-11 skippr:rounded-full", "skippr:bg-primary skippr:text-primary-foreground", "skippr:flex skippr:items-center skippr:justify-center", "skippr:cursor-pointer skippr:transition-all skippr:duration-300", "skippr:hover:brightness-110", isStarting && "skippr:animate-skippr-pulse-ring"),
661
+ "aria-label": "AI Agent",
662
+ children: /* @__PURE__ */ jsx(Bot, {
663
+ className: "skippr:relative skippr:z-10 skippr:size-5"
664
+ })
665
+ }),
666
+ /* @__PURE__ */ jsx("div", {
667
+ className: "skippr:mx-1 skippr:h-6 skippr:w-px skippr:bg-border"
668
+ }),
669
+ /* @__PURE__ */ jsx("button", {
670
+ type: "button",
671
+ onClick: handleStart,
672
+ disabled: isStarting,
673
+ className: cn("skippr:size-9 skippr:rounded-full skippr:flex skippr:items-center skippr:justify-center", "skippr:transition-colors skippr:cursor-pointer", "skippr:bg-primary skippr:text-primary-foreground skippr:hover:brightness-110", isStarting && "skippr:animate-skippr-pulse-ring skippr:cursor-not-allowed"),
674
+ "aria-label": "Start session",
675
+ children: /* @__PURE__ */ jsx(Monitor, {
676
+ className: "skippr:size-4"
677
+ })
678
+ })
679
+ ]
680
+ });
681
+ }
682
+ function MinimizedBubble() {
683
+ const { isConnected, position } = useLiveAgent();
684
+ return /* @__PURE__ */ jsx("div", {
685
+ className: cn("skippr:fixed skippr:bottom-6 skippr:z-[9999]", "skippr:flex skippr:items-center skippr:gap-0", "skippr:rounded-full skippr:bg-card skippr:shadow-2xl", "skippr:border skippr:border-border", "skippr:p-1.5", "skippr:transition-all skippr:duration-300 skippr:ease-in-out", position === "right" ? "skippr:right-6" : "skippr:left-6"),
686
+ children: isConnected ? /* @__PURE__ */ jsx(ConnectedBubbleContent, {}) : /* @__PURE__ */ jsx(IdleBubbleContent, {})
687
+ });
688
+ }
651
689
 
652
690
  // src/components/Sidebar.tsx
653
691
  import { useConnectionState } from "@livekit/components-react";
@@ -846,7 +884,7 @@ Button.displayName = "Button";
846
884
  // src/components/ChatHeader.tsx
847
885
  import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
848
886
  function ChatHeader({ onOpenSettings }) {
849
- const { closePanel, minimizePanel, minimizable, isConnected } = useLiveAgent();
887
+ const { closePanel, minimizePanel, minimizable } = useLiveAgent();
850
888
  return /* @__PURE__ */ jsxs2("div", {
851
889
  className: "skippr:flex skippr:items-center skippr:gap-3 skippr:bg-primary skippr:px-4 skippr:py-3 skippr:text-primary-foreground",
852
890
  children: [
@@ -876,20 +914,10 @@ function ChatHeader({ onOpenSettings }) {
876
914
  className: "skippr:size-4"
877
915
  })
878
916
  }),
879
- minimizable && isConnected && /* @__PURE__ */ jsx3(Button, {
880
- variant: "ghost",
881
- size: "icon-xs",
882
- onClick: minimizePanel,
883
- className: "skippr:text-primary-foreground skippr:hover:bg-primary-foreground/20 skippr:hover:text-primary-foreground",
884
- "aria-label": "Minimize",
885
- children: /* @__PURE__ */ jsx3(Minimize2, {
886
- className: "skippr:size-4"
887
- })
888
- }),
889
917
  /* @__PURE__ */ jsx3(Button, {
890
918
  variant: "ghost",
891
919
  size: "icon-xs",
892
- onClick: closePanel,
920
+ onClick: minimizable ? minimizePanel : closePanel,
893
921
  className: "skippr:text-primary-foreground skippr:hover:bg-primary-foreground/20 skippr:hover:text-primary-foreground",
894
922
  "aria-label": "Close",
895
923
  children: /* @__PURE__ */ jsx3(X, {
@@ -1616,7 +1644,7 @@ function Sidebar() {
1616
1644
  };
1617
1645
  }, [isSidebar, isPanelOpen, position]);
1618
1646
  return /* @__PURE__ */ jsx14("div", {
1619
- className: cn("skippr:fixed skippr:z-[9999]", "skippr:bg-background skippr:border skippr:border-border", "skippr:flex skippr:flex-col", "skippr:transition-all skippr:duration-300 skippr:ease-in-out skippr:overflow-hidden", isFloating && "skippr:bottom-4 skippr:min-h-[28rem] skippr:max-h-[calc(100vh-6rem)] skippr:rounded-2xl skippr:shadow-2xl", isFloating && (position === "right" ? "skippr:right-4" : "skippr:left-4"), isFloating && !isPanelOpen && "skippr:w-0 skippr:h-0 skippr:border-0", isSidebar && "skippr:top-0 skippr:h-full", isSidebar && position === "right" && "skippr:right-0 skippr:border-l skippr:border-l-border", isSidebar && position === "left" && "skippr:left-0 skippr:border-r skippr:border-r-border", isSidebar && !isPanelOpen && "skippr:w-0 skippr:border-0"),
1647
+ className: cn("skippr:fixed skippr:z-[9999]", "skippr:bg-background skippr:border skippr:border-border", "skippr:flex skippr:flex-col", "skippr:overflow-hidden", isFloating && "skippr:bottom-4 skippr:min-h-[28rem] skippr:max-h-[calc(100vh-6rem)] skippr:rounded-2xl skippr:shadow-2xl", isFloating && (position === "right" ? "skippr:right-4" : "skippr:left-4"), isFloating && "skippr:transition-[opacity,transform] skippr:duration-300 skippr:ease-in-out", isFloating && (position === "right" ? "skippr:origin-bottom-right" : "skippr:origin-bottom-left"), isFloating && !isPanelOpen && "skippr:scale-0 skippr:opacity-0 skippr:pointer-events-none", isFloating && isPanelOpen && "skippr:scale-100 skippr:opacity-100", isSidebar && "skippr:top-0 skippr:h-full", isSidebar && "skippr:transition-[width] skippr:duration-300 skippr:ease-in-out", isSidebar && position === "right" && "skippr:right-0 skippr:border-l skippr:border-l-border", isSidebar && position === "left" && "skippr:left-0 skippr:border-r skippr:border-r-border", isSidebar && !isPanelOpen && "skippr:w-0 skippr:border-0"),
1620
1648
  style: { width: isPanelOpen ? SIDEBAR_WIDTH : undefined },
1621
1649
  children: view === "settings" ? /* @__PURE__ */ jsx14(SettingsView, {
1622
1650
  onBack: () => setView("main")
@@ -1696,8 +1724,8 @@ function ConnectedContent({ onDisconnect }) {
1696
1724
  // src/components/SidebarTrigger.tsx
1697
1725
  import { jsx as jsx15 } from "react/jsx-runtime";
1698
1726
  function SidebarTrigger() {
1699
- const { isPanelOpen, togglePanel, position, isMinimized, isConnected } = useLiveAgent();
1700
- if (isMinimized && isConnected)
1727
+ const { isPanelOpen, togglePanel, position, isMinimized } = useLiveAgent();
1728
+ if (isMinimized)
1701
1729
  return null;
1702
1730
  return /* @__PURE__ */ jsx15(Button, {
1703
1731
  size: "icon-lg",
@@ -1727,14 +1755,14 @@ function LiveAgent({
1727
1755
  }) {
1728
1756
  const auth = useAuth({ appKey });
1729
1757
  const effectiveAuthToken = authTokenProp || auth.authToken || undefined;
1730
- const { connection, shouldConnect, isStarting, error, startSession, disconnect } = useSession({
1758
+ const { connection, shouldConnect, isStarting, error, errorCode, startSession, disconnect } = useSession({
1731
1759
  agentId,
1732
1760
  authToken: effectiveAuthToken,
1733
1761
  appKey,
1734
1762
  userToken
1735
1763
  });
1736
1764
  const [isPanelOpen, setIsPanelOpen] = useState8(defaultOpen);
1737
- const [isMinimized, setIsMinimized] = useState8(false);
1765
+ const [isMinimized, setIsMinimized] = useState8(minimizable && !defaultOpen);
1738
1766
  const [currentPosition, setCurrentPosition] = useState8(() => {
1739
1767
  try {
1740
1768
  const saved = localStorage.getItem("skippr_widget_position");
@@ -1764,12 +1792,13 @@ function LiveAgent({
1764
1792
  }, [minimizable]);
1765
1793
  const isConnected = connection !== null;
1766
1794
  const isAuthenticated = !!userToken || !!authTokenProp || auth.isAuthenticated;
1795
+ const prevConnectionRef = useRef4(connection);
1767
1796
  useEffect8(() => {
1768
- if (connection && minimizable) {
1797
+ const connectionChanged = prevConnectionRef.current !== connection;
1798
+ prevConnectionRef.current = connection;
1799
+ if (connectionChanged && minimizable) {
1769
1800
  setIsMinimized(true);
1770
1801
  setIsPanelOpen(false);
1771
- } else if (!connection) {
1772
- setIsMinimized(false);
1773
1802
  }
1774
1803
  }, [connection, minimizable]);
1775
1804
  const ctx = useMemo4(() => ({
@@ -1778,6 +1807,7 @@ function LiveAgent({
1778
1807
  isConnected,
1779
1808
  isStarting,
1780
1809
  error,
1810
+ errorCode,
1781
1811
  startSession,
1782
1812
  disconnect,
1783
1813
  isPanelOpen,
@@ -1804,6 +1834,7 @@ function LiveAgent({
1804
1834
  isConnected,
1805
1835
  isStarting,
1806
1836
  error,
1837
+ errorCode,
1807
1838
  startSession,
1808
1839
  disconnect,
1809
1840
  isPanelOpen,
@@ -1828,7 +1859,7 @@ function LiveAgent({
1828
1859
  const widgetContent = /* @__PURE__ */ jsxs12(Fragment3, {
1829
1860
  children: [
1830
1861
  connection && /* @__PURE__ */ jsx16(RoomAudioRenderer, {}),
1831
- isMinimized && isConnected && /* @__PURE__ */ jsx16(MinimizedBubble, {}),
1862
+ isMinimized && /* @__PURE__ */ jsx16(MinimizedBubble, {}),
1832
1863
  /* @__PURE__ */ jsx16(SidebarTrigger, {}),
1833
1864
  /* @__PURE__ */ jsx16(Sidebar, {}),
1834
1865
  children
@@ -1,2 +1,2 @@
1
1
  /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--skippr-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--skippr-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--skippr-color-red-50:oklch(97.1% .013 17.38);--skippr-color-red-600:oklch(57.7% .245 27.325);--skippr-color-red-700:oklch(50.5% .213 27.518);--skippr-color-white:#fff;--skippr-spacing:.25rem;--skippr-text-xs:.75rem;--skippr-text-xs--line-height:calc(1/.75);--skippr-text-sm:.875rem;--skippr-text-sm--line-height:calc(1.25/.875);--skippr-font-weight-medium:500;--skippr-font-weight-semibold:600;--skippr-tracking-wide:.025em;--skippr-leading-relaxed:1.625;--skippr-radius-2xl:1rem;--skippr-ease-in-out:cubic-bezier(.4,0,.2,1);--skippr-animate-spin:spin 1s linear infinite;--skippr-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--skippr-animate-bounce:bounce 1s infinite;--skippr-default-transition-duration:.15s;--skippr-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--skippr-default-font-family:var(--skippr-font-sans);--skippr-default-mono-font-family:var(--skippr-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--skippr-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--skippr-default-font-feature-settings,normal);font-variation-settings:var(--skippr-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--skippr-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--skippr-default-mono-font-feature-settings,normal);font-variation-settings:var(--skippr-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.skippr\:absolute{position:absolute}.skippr\:fixed{position:fixed}.skippr\:relative{position:relative}.skippr\:inset-0{inset:calc(var(--skippr-spacing)*0)}.skippr\:top-0{top:calc(var(--skippr-spacing)*0)}.skippr\:right-0{right:calc(var(--skippr-spacing)*0)}.skippr\:right-4{right:calc(var(--skippr-spacing)*4)}.skippr\:right-6{right:calc(var(--skippr-spacing)*6)}.skippr\:bottom-4{bottom:calc(var(--skippr-spacing)*4)}.skippr\:bottom-6{bottom:calc(var(--skippr-spacing)*6)}.skippr\:left-0{left:calc(var(--skippr-spacing)*0)}.skippr\:left-4{left:calc(var(--skippr-spacing)*4)}.skippr\:left-6{left:calc(var(--skippr-spacing)*6)}.skippr\:z-10{z-index:10}.skippr\:z-\[9998\]{z-index:9998}.skippr\:z-\[9999\]{z-index:9999}.skippr\:mx-1{margin-inline:calc(var(--skippr-spacing)*1)}.skippr\:mx-auto{margin-inline:auto}.skippr\:mt-1{margin-top:calc(var(--skippr-spacing)*1)}.skippr\:mb-1{margin-bottom:calc(var(--skippr-spacing)*1)}.skippr\:mb-2{margin-bottom:calc(var(--skippr-spacing)*2)}.skippr\:mb-4{margin-bottom:calc(var(--skippr-spacing)*4)}.skippr\:ml-6{margin-left:calc(var(--skippr-spacing)*6)}.skippr\:flex{display:flex}.skippr\:inline-flex{display:inline-flex}.skippr\:size-1\.5{width:calc(var(--skippr-spacing)*1.5);height:calc(var(--skippr-spacing)*1.5)}.skippr\:size-2\.5{width:calc(var(--skippr-spacing)*2.5);height:calc(var(--skippr-spacing)*2.5)}.skippr\:size-3\.5{width:calc(var(--skippr-spacing)*3.5);height:calc(var(--skippr-spacing)*3.5)}.skippr\:size-4{width:calc(var(--skippr-spacing)*4);height:calc(var(--skippr-spacing)*4)}.skippr\:size-5{width:calc(var(--skippr-spacing)*5);height:calc(var(--skippr-spacing)*5)}.skippr\:size-6{width:calc(var(--skippr-spacing)*6);height:calc(var(--skippr-spacing)*6)}.skippr\:size-8{width:calc(var(--skippr-spacing)*8);height:calc(var(--skippr-spacing)*8)}.skippr\:size-9{width:calc(var(--skippr-spacing)*9);height:calc(var(--skippr-spacing)*9)}.skippr\:size-10{width:calc(var(--skippr-spacing)*10);height:calc(var(--skippr-spacing)*10)}.skippr\:size-11{width:calc(var(--skippr-spacing)*11);height:calc(var(--skippr-spacing)*11)}.skippr\:size-14{width:calc(var(--skippr-spacing)*14);height:calc(var(--skippr-spacing)*14)}.skippr\:h-0{height:calc(var(--skippr-spacing)*0)}.skippr\:h-5{height:calc(var(--skippr-spacing)*5)}.skippr\:h-6{height:calc(var(--skippr-spacing)*6)}.skippr\:h-8{height:calc(var(--skippr-spacing)*8)}.skippr\:h-9{height:calc(var(--skippr-spacing)*9)}.skippr\:h-10{height:calc(var(--skippr-spacing)*10)}.skippr\:h-auto{height:auto}.skippr\:h-full{height:100%}.skippr\:max-h-\[calc\(100vh-6rem\)\]{max-height:calc(100vh - 6rem)}.skippr\:min-h-0{min-height:calc(var(--skippr-spacing)*0)}.skippr\:min-h-\[28rem\]{min-height:28rem}.skippr\:w-0{width:calc(var(--skippr-spacing)*0)}.skippr\:w-10{width:calc(var(--skippr-spacing)*10)}.skippr\:w-\[3px\]{width:3px}.skippr\:w-\[180px\]{width:180px}.skippr\:w-full{width:100%}.skippr\:w-px{width:1px}.skippr\:max-w-\[85\%\]{max-width:85%}.skippr\:min-w-0{min-width:calc(var(--skippr-spacing)*0)}.skippr\:flex-1{flex:1}.skippr\:shrink-0{flex-shrink:0}.skippr\:origin-bottom{transform-origin:bottom}.skippr\:animate-bounce{animation:var(--skippr-animate-bounce)}.skippr\:animate-pulse{animation:var(--skippr-animate-pulse)}.skippr\:animate-skippr-bar-1{animation:.8s ease-in-out infinite skippr-bar}.skippr\:animate-skippr-bar-2{animation:.8s ease-in-out .15s infinite skippr-bar}.skippr\:animate-skippr-bar-3{animation:.8s ease-in-out .3s infinite skippr-bar}.skippr\:animate-skippr-bar-4{animation:.8s ease-in-out .45s infinite skippr-bar}.skippr\:animate-skippr-breathe{animation:2.5s ease-in-out infinite skippr-breathe}.skippr\:animate-skippr-pulse-ring{animation:2s ease-in-out infinite skippr-pulse-ring}.skippr\:animate-skippr-speak-ripple{animation:.8s ease-in-out infinite skippr-speak-ripple}.skippr\:animate-skippr-speak-ripple-delayed{animation:.8s ease-in-out .3s infinite skippr-speak-ripple}.skippr\:animate-spin{animation:var(--skippr-animate-spin)}.skippr\:cursor-not-allowed{cursor:not-allowed}.skippr\:cursor-pointer{cursor:pointer}.skippr\:flex-col{flex-direction:column}.skippr\:items-center{align-items:center}.skippr\:items-end{align-items:flex-end}.skippr\:justify-between{justify-content:space-between}.skippr\:justify-center{justify-content:center}.skippr\:justify-end{justify-content:flex-end}.skippr\:justify-start{justify-content:flex-start}.skippr\:gap-0{gap:calc(var(--skippr-spacing)*0)}.skippr\:gap-0\.5{gap:calc(var(--skippr-spacing)*.5)}.skippr\:gap-1{gap:calc(var(--skippr-spacing)*1)}.skippr\:gap-1\.5{gap:calc(var(--skippr-spacing)*1.5)}.skippr\:gap-2{gap:calc(var(--skippr-spacing)*2)}.skippr\:gap-3{gap:calc(var(--skippr-spacing)*3)}.skippr\:gap-6{gap:calc(var(--skippr-spacing)*6)}.skippr\:gap-\[3px\]{gap:3px}.skippr\:overflow-hidden{overflow:hidden}.skippr\:overflow-y-auto{overflow-y:auto}.skippr\:rounded-2xl{border-radius:var(--skippr-radius-2xl)}.skippr\:rounded-full{border-radius:3.40282e38px}.skippr\:rounded-lg{border-radius:var(--radius)}.skippr\:rounded-md{border-radius:calc(var(--radius) - 2px)}.skippr\:rounded-br-sm{border-bottom-right-radius:calc(var(--radius) - 4px)}.skippr\:rounded-bl-sm{border-bottom-left-radius:calc(var(--radius) - 4px)}.skippr\:border{border-style:var(--tw-border-style);border-width:1px}.skippr\:border-0{border-style:var(--tw-border-style);border-width:0}.skippr\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.skippr\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.skippr\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.skippr\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.skippr\:border-border,.skippr\:border-input{border-color:oklch(88.22% 0 0)}.skippr\:border-primary{border-color:oklch(43.41% .0392 41.9938)}.skippr\:border-r-border{border-right-color:oklch(88.22% 0 0)}.skippr\:border-l-border{border-left-color:oklch(88.22% 0 0)}.skippr\:bg-background{background-color:oklch(98.21% 0 0)}.skippr\:bg-border{background-color:oklch(88.22% 0 0)}.skippr\:bg-card{background-color:oklch(99.11% 0 0)}.skippr\:bg-destructive{background-color:oklch(62.71% .1936 33.339)}.skippr\:bg-muted{background-color:oklch(95.21% 0 0)}.skippr\:bg-muted-foreground\/60{background-color:oklab(50.32% 0 0/.6)}.skippr\:bg-primary{background-color:oklch(43.41% .0392 41.9938)}.skippr\:bg-primary-foreground{background-color:oklch(100% 0 0)}.skippr\:bg-primary-foreground\/20{background-color:oklab(100% 0 0/.2)}.skippr\:bg-primary\/5{background-color:oklab(43.41% .0291341 .0262268/.05)}.skippr\:bg-red-50{background-color:var(--skippr-color-red-50)}.skippr\:bg-secondary{background-color:oklch(92% .0651 74.3695)}.skippr\:p-1\.5{padding:calc(var(--skippr-spacing)*1.5)}.skippr\:p-3{padding:calc(var(--skippr-spacing)*3)}.skippr\:p-4{padding:calc(var(--skippr-spacing)*4)}.skippr\:px-2{padding-inline:calc(var(--skippr-spacing)*2)}.skippr\:px-3{padding-inline:calc(var(--skippr-spacing)*3)}.skippr\:px-4{padding-inline:calc(var(--skippr-spacing)*4)}.skippr\:px-6{padding-inline:calc(var(--skippr-spacing)*6)}.skippr\:py-1{padding-block:calc(var(--skippr-spacing)*1)}.skippr\:py-1\.5{padding-block:calc(var(--skippr-spacing)*1.5)}.skippr\:py-2{padding-block:calc(var(--skippr-spacing)*2)}.skippr\:py-2\.5{padding-block:calc(var(--skippr-spacing)*2.5)}.skippr\:py-3{padding-block:calc(var(--skippr-spacing)*3)}.skippr\:py-4{padding-block:calc(var(--skippr-spacing)*4)}.skippr\:text-center{text-align:center}.skippr\:text-sm{font-size:var(--skippr-text-sm);line-height:var(--tw-leading,var(--skippr-text-sm--line-height))}.skippr\:text-xs{font-size:var(--skippr-text-xs);line-height:var(--tw-leading,var(--skippr-text-xs--line-height))}.skippr\:leading-none{--tw-leading:1;line-height:1}.skippr\:leading-relaxed{--tw-leading:var(--skippr-leading-relaxed);line-height:var(--skippr-leading-relaxed)}.skippr\:font-medium{--tw-font-weight:var(--skippr-font-weight-medium);font-weight:var(--skippr-font-weight-medium)}.skippr\:font-semibold{--tw-font-weight:var(--skippr-font-weight-semibold);font-weight:var(--skippr-font-weight-semibold)}.skippr\:tracking-wide{--tw-tracking:var(--skippr-tracking-wide);letter-spacing:var(--skippr-tracking-wide)}.skippr\:whitespace-normal{white-space:normal}.skippr\:whitespace-nowrap{white-space:nowrap}.skippr\:whitespace-pre-wrap{white-space:pre-wrap}.skippr\:text-destructive{color:oklch(62.71% .1936 33.339)}.skippr\:text-foreground{color:oklch(24.35% 0 0)}.skippr\:text-muted-foreground{color:oklch(50.32% 0 0)}.skippr\:text-primary{color:oklch(43.41% .0392 41.9938)}.skippr\:text-primary-foreground{color:oklch(100% 0 0)}.skippr\:text-red-600{color:var(--skippr-color-red-600)}.skippr\:text-red-700{color:var(--skippr-color-red-700)}.skippr\:text-secondary-foreground{color:oklch(34.99% .0685 40.8288)}.skippr\:text-white{color:var(--skippr-color-white)}.skippr\:uppercase{text-transform:uppercase}.skippr\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.skippr\:line-through{text-decoration-line:line-through}.skippr\:placeholder-muted-foreground::placeholder{color:oklch(50.32% 0 0)}.skippr\:opacity-50{opacity:.5}.skippr\:shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\:shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\:ring-offset-background{--tw-ring-offset-color:oklch(98.21% 0 0)}.skippr\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\:duration-300{--tw-duration:.3s;transition-duration:.3s}.skippr\:ease-in-out{--tw-ease:var(--skippr-ease-in-out);transition-timing-function:var(--skippr-ease-in-out)}.skippr\:outline-none{--tw-outline-style:none;outline-style:none}.skippr\:\[animation-delay\:0ms\]{animation-delay:0s}.skippr\:\[animation-delay\:150ms\]{animation-delay:.15s}.skippr\:\[animation-delay\:300ms\]{animation-delay:.3s}.skippr\:placeholder\:text-muted-foreground::placeholder{color:oklch(50.32% 0 0)}@media (hover:hover){.skippr\:hover\:border-primary\/40:hover{border-color:oklab(43.41% .0291341 .0262268/.4)}.skippr\:hover\:bg-accent:hover{background-color:oklch(93.1% 0 0)}.skippr\:hover\:bg-destructive\/90:hover{background-color:oklab(62.71% .16174 .106401/.9)}.skippr\:hover\:bg-primary-foreground\/20:hover{background-color:oklab(100% 0 0/.2)}.skippr\:hover\:bg-primary\/90:hover{background-color:oklab(43.41% .0291341 .0262268/.9)}.skippr\:hover\:bg-secondary\/80:hover{background-color:oklab(92% .0175401 .0626926/.8)}.skippr\:hover\:text-accent-foreground:hover{color:oklch(24.35% 0 0)}.skippr\:hover\:text-primary-foreground:hover{color:oklch(100% 0 0)}.skippr\:hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}.skippr\:focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\:focus\:ring-ring:focus{--tw-ring-color:oklch(43.41% .0392 41.9938)}.skippr\:focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\:focus-visible\:ring-ring:focus-visible{--tw-ring-color:oklch(43.41% .0392 41.9938)}.skippr\:focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.skippr\:focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.skippr\:disabled\:pointer-events-none:disabled{pointer-events:none}.skippr\:disabled\:opacity-50:disabled{opacity:.5}.skippr\:\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.skippr\:\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.skippr\:\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--skippr-spacing)*4);height:calc(var(--skippr-spacing)*4)}}@keyframes skippr-pulse-ring{0%,to{box-shadow:0 0 oklch(43.41% .0392 41.9938/.4)}50%{box-shadow:0 0 0 10px oklch(43.41% .0392 41.9938/0)}}@keyframes skippr-speak-ripple{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}@keyframes skippr-bar{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@keyframes skippr-breathe{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--skippr-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--skippr-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--skippr-color-red-50:oklch(97.1% .013 17.38);--skippr-color-red-600:oklch(57.7% .245 27.325);--skippr-color-red-700:oklch(50.5% .213 27.518);--skippr-color-white:#fff;--skippr-spacing:.25rem;--skippr-text-xs:.75rem;--skippr-text-xs--line-height:calc(1/.75);--skippr-text-sm:.875rem;--skippr-text-sm--line-height:calc(1.25/.875);--skippr-font-weight-medium:500;--skippr-font-weight-semibold:600;--skippr-tracking-wide:.025em;--skippr-leading-relaxed:1.625;--skippr-radius-2xl:1rem;--skippr-ease-in-out:cubic-bezier(.4,0,.2,1);--skippr-animate-spin:spin 1s linear infinite;--skippr-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--skippr-animate-bounce:bounce 1s infinite;--skippr-default-transition-duration:.15s;--skippr-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--skippr-default-font-family:var(--skippr-font-sans);--skippr-default-mono-font-family:var(--skippr-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--skippr-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--skippr-default-font-feature-settings,normal);font-variation-settings:var(--skippr-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--skippr-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--skippr-default-mono-font-feature-settings,normal);font-variation-settings:var(--skippr-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.skippr\:pointer-events-none{pointer-events:none}.skippr\:absolute{position:absolute}.skippr\:fixed{position:fixed}.skippr\:relative{position:relative}.skippr\:inset-0{inset:calc(var(--skippr-spacing)*0)}.skippr\:top-0{top:calc(var(--skippr-spacing)*0)}.skippr\:right-0{right:calc(var(--skippr-spacing)*0)}.skippr\:right-4{right:calc(var(--skippr-spacing)*4)}.skippr\:right-6{right:calc(var(--skippr-spacing)*6)}.skippr\:bottom-4{bottom:calc(var(--skippr-spacing)*4)}.skippr\:bottom-6{bottom:calc(var(--skippr-spacing)*6)}.skippr\:left-0{left:calc(var(--skippr-spacing)*0)}.skippr\:left-4{left:calc(var(--skippr-spacing)*4)}.skippr\:left-6{left:calc(var(--skippr-spacing)*6)}.skippr\:z-10{z-index:10}.skippr\:z-\[9998\]{z-index:9998}.skippr\:z-\[9999\]{z-index:9999}.skippr\:mx-1{margin-inline:calc(var(--skippr-spacing)*1)}.skippr\:mx-auto{margin-inline:auto}.skippr\:mt-1{margin-top:calc(var(--skippr-spacing)*1)}.skippr\:mb-1{margin-bottom:calc(var(--skippr-spacing)*1)}.skippr\:mb-2{margin-bottom:calc(var(--skippr-spacing)*2)}.skippr\:mb-4{margin-bottom:calc(var(--skippr-spacing)*4)}.skippr\:ml-6{margin-left:calc(var(--skippr-spacing)*6)}.skippr\:flex{display:flex}.skippr\:inline-flex{display:inline-flex}.skippr\:size-1\.5{width:calc(var(--skippr-spacing)*1.5);height:calc(var(--skippr-spacing)*1.5)}.skippr\:size-2\.5{width:calc(var(--skippr-spacing)*2.5);height:calc(var(--skippr-spacing)*2.5)}.skippr\:size-3\.5{width:calc(var(--skippr-spacing)*3.5);height:calc(var(--skippr-spacing)*3.5)}.skippr\:size-4{width:calc(var(--skippr-spacing)*4);height:calc(var(--skippr-spacing)*4)}.skippr\:size-5{width:calc(var(--skippr-spacing)*5);height:calc(var(--skippr-spacing)*5)}.skippr\:size-6{width:calc(var(--skippr-spacing)*6);height:calc(var(--skippr-spacing)*6)}.skippr\:size-8{width:calc(var(--skippr-spacing)*8);height:calc(var(--skippr-spacing)*8)}.skippr\:size-9{width:calc(var(--skippr-spacing)*9);height:calc(var(--skippr-spacing)*9)}.skippr\:size-10{width:calc(var(--skippr-spacing)*10);height:calc(var(--skippr-spacing)*10)}.skippr\:size-11{width:calc(var(--skippr-spacing)*11);height:calc(var(--skippr-spacing)*11)}.skippr\:size-14{width:calc(var(--skippr-spacing)*14);height:calc(var(--skippr-spacing)*14)}.skippr\:h-0{height:calc(var(--skippr-spacing)*0)}.skippr\:h-5{height:calc(var(--skippr-spacing)*5)}.skippr\:h-6{height:calc(var(--skippr-spacing)*6)}.skippr\:h-8{height:calc(var(--skippr-spacing)*8)}.skippr\:h-9{height:calc(var(--skippr-spacing)*9)}.skippr\:h-10{height:calc(var(--skippr-spacing)*10)}.skippr\:h-auto{height:auto}.skippr\:h-full{height:100%}.skippr\:max-h-\[calc\(100vh-6rem\)\]{max-height:calc(100vh - 6rem)}.skippr\:min-h-0{min-height:calc(var(--skippr-spacing)*0)}.skippr\:min-h-\[28rem\]{min-height:28rem}.skippr\:w-0{width:calc(var(--skippr-spacing)*0)}.skippr\:w-10{width:calc(var(--skippr-spacing)*10)}.skippr\:w-\[3px\]{width:3px}.skippr\:w-\[180px\]{width:180px}.skippr\:w-full{width:100%}.skippr\:w-px{width:1px}.skippr\:max-w-\[85\%\]{max-width:85%}.skippr\:min-w-0{min-width:calc(var(--skippr-spacing)*0)}.skippr\:flex-1{flex:1}.skippr\:shrink-0{flex-shrink:0}.skippr\:origin-bottom{transform-origin:bottom}.skippr\:origin-bottom-left{transform-origin:0 100%}.skippr\:origin-bottom-right{transform-origin:100% 100%}.skippr\:scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\:scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\:animate-bounce{animation:var(--skippr-animate-bounce)}.skippr\:animate-pulse{animation:var(--skippr-animate-pulse)}.skippr\:animate-skippr-bar-1{animation:.8s ease-in-out infinite skippr-bar}.skippr\:animate-skippr-bar-2{animation:.8s ease-in-out .15s infinite skippr-bar}.skippr\:animate-skippr-bar-3{animation:.8s ease-in-out .3s infinite skippr-bar}.skippr\:animate-skippr-bar-4{animation:.8s ease-in-out .45s infinite skippr-bar}.skippr\:animate-skippr-breathe{animation:2.5s ease-in-out infinite skippr-breathe}.skippr\:animate-skippr-pulse-ring{animation:2s ease-in-out infinite skippr-pulse-ring}.skippr\:animate-skippr-speak-ripple{animation:.8s ease-in-out infinite skippr-speak-ripple}.skippr\:animate-skippr-speak-ripple-delayed{animation:.8s ease-in-out .3s infinite skippr-speak-ripple}.skippr\:animate-spin{animation:var(--skippr-animate-spin)}.skippr\:cursor-not-allowed{cursor:not-allowed}.skippr\:cursor-pointer{cursor:pointer}.skippr\:flex-col{flex-direction:column}.skippr\:items-center{align-items:center}.skippr\:items-end{align-items:flex-end}.skippr\:justify-between{justify-content:space-between}.skippr\:justify-center{justify-content:center}.skippr\:justify-end{justify-content:flex-end}.skippr\:justify-start{justify-content:flex-start}.skippr\:gap-0{gap:calc(var(--skippr-spacing)*0)}.skippr\:gap-0\.5{gap:calc(var(--skippr-spacing)*.5)}.skippr\:gap-1{gap:calc(var(--skippr-spacing)*1)}.skippr\:gap-1\.5{gap:calc(var(--skippr-spacing)*1.5)}.skippr\:gap-2{gap:calc(var(--skippr-spacing)*2)}.skippr\:gap-3{gap:calc(var(--skippr-spacing)*3)}.skippr\:gap-6{gap:calc(var(--skippr-spacing)*6)}.skippr\:gap-\[3px\]{gap:3px}.skippr\:overflow-hidden{overflow:hidden}.skippr\:overflow-y-auto{overflow-y:auto}.skippr\:rounded-2xl{border-radius:var(--skippr-radius-2xl)}.skippr\:rounded-full{border-radius:3.40282e38px}.skippr\:rounded-lg{border-radius:var(--radius)}.skippr\:rounded-md{border-radius:calc(var(--radius) - 2px)}.skippr\:rounded-br-sm{border-bottom-right-radius:calc(var(--radius) - 4px)}.skippr\:rounded-bl-sm{border-bottom-left-radius:calc(var(--radius) - 4px)}.skippr\:border{border-style:var(--tw-border-style);border-width:1px}.skippr\:border-0{border-style:var(--tw-border-style);border-width:0}.skippr\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.skippr\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.skippr\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.skippr\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.skippr\:border-border,.skippr\:border-input{border-color:oklch(88.22% 0 0)}.skippr\:border-primary{border-color:oklch(43.41% .0392 41.9938)}.skippr\:border-r-border{border-right-color:oklch(88.22% 0 0)}.skippr\:border-l-border{border-left-color:oklch(88.22% 0 0)}.skippr\:bg-background{background-color:oklch(98.21% 0 0)}.skippr\:bg-border{background-color:oklch(88.22% 0 0)}.skippr\:bg-card{background-color:oklch(99.11% 0 0)}.skippr\:bg-destructive{background-color:oklch(62.71% .1936 33.339)}.skippr\:bg-muted{background-color:oklch(95.21% 0 0)}.skippr\:bg-muted-foreground\/60{background-color:oklab(50.32% 0 0/.6)}.skippr\:bg-primary{background-color:oklch(43.41% .0392 41.9938)}.skippr\:bg-primary-foreground{background-color:oklch(100% 0 0)}.skippr\:bg-primary-foreground\/20{background-color:oklab(100% 0 0/.2)}.skippr\:bg-primary\/5{background-color:oklab(43.41% .0291341 .0262268/.05)}.skippr\:bg-red-50{background-color:var(--skippr-color-red-50)}.skippr\:bg-secondary{background-color:oklch(92% .0651 74.3695)}.skippr\:p-1\.5{padding:calc(var(--skippr-spacing)*1.5)}.skippr\:p-3{padding:calc(var(--skippr-spacing)*3)}.skippr\:p-4{padding:calc(var(--skippr-spacing)*4)}.skippr\:px-2{padding-inline:calc(var(--skippr-spacing)*2)}.skippr\:px-3{padding-inline:calc(var(--skippr-spacing)*3)}.skippr\:px-4{padding-inline:calc(var(--skippr-spacing)*4)}.skippr\:px-6{padding-inline:calc(var(--skippr-spacing)*6)}.skippr\:py-1{padding-block:calc(var(--skippr-spacing)*1)}.skippr\:py-1\.5{padding-block:calc(var(--skippr-spacing)*1.5)}.skippr\:py-2{padding-block:calc(var(--skippr-spacing)*2)}.skippr\:py-2\.5{padding-block:calc(var(--skippr-spacing)*2.5)}.skippr\:py-3{padding-block:calc(var(--skippr-spacing)*3)}.skippr\:py-4{padding-block:calc(var(--skippr-spacing)*4)}.skippr\:text-center{text-align:center}.skippr\:text-sm{font-size:var(--skippr-text-sm);line-height:var(--tw-leading,var(--skippr-text-sm--line-height))}.skippr\:text-xs{font-size:var(--skippr-text-xs);line-height:var(--tw-leading,var(--skippr-text-xs--line-height))}.skippr\:leading-none{--tw-leading:1;line-height:1}.skippr\:leading-relaxed{--tw-leading:var(--skippr-leading-relaxed);line-height:var(--skippr-leading-relaxed)}.skippr\:font-medium{--tw-font-weight:var(--skippr-font-weight-medium);font-weight:var(--skippr-font-weight-medium)}.skippr\:font-semibold{--tw-font-weight:var(--skippr-font-weight-semibold);font-weight:var(--skippr-font-weight-semibold)}.skippr\:tracking-wide{--tw-tracking:var(--skippr-tracking-wide);letter-spacing:var(--skippr-tracking-wide)}.skippr\:whitespace-normal{white-space:normal}.skippr\:whitespace-nowrap{white-space:nowrap}.skippr\:whitespace-pre-wrap{white-space:pre-wrap}.skippr\:text-destructive{color:oklch(62.71% .1936 33.339)}.skippr\:text-foreground{color:oklch(24.35% 0 0)}.skippr\:text-muted-foreground{color:oklch(50.32% 0 0)}.skippr\:text-primary{color:oklch(43.41% .0392 41.9938)}.skippr\:text-primary-foreground{color:oklch(100% 0 0)}.skippr\:text-red-600{color:var(--skippr-color-red-600)}.skippr\:text-red-700{color:var(--skippr-color-red-700)}.skippr\:text-secondary-foreground{color:oklch(34.99% .0685 40.8288)}.skippr\:text-white{color:var(--skippr-color-white)}.skippr\:uppercase{text-transform:uppercase}.skippr\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.skippr\:line-through{text-decoration-line:line-through}.skippr\:placeholder-muted-foreground::placeholder{color:oklch(50.32% 0 0)}.skippr\:opacity-0{opacity:0}.skippr\:opacity-50{opacity:.5}.skippr\:opacity-100{opacity:1}.skippr\:shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\:shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\:ring-offset-background{--tw-ring-offset-color:oklch(98.21% 0 0)}.skippr\:transition-\[opacity\,transform\]{transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\:transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\:duration-300{--tw-duration:.3s;transition-duration:.3s}.skippr\:ease-in-out{--tw-ease:var(--skippr-ease-in-out);transition-timing-function:var(--skippr-ease-in-out)}.skippr\:outline-none{--tw-outline-style:none;outline-style:none}.skippr\:\[animation-delay\:0ms\]{animation-delay:0s}.skippr\:\[animation-delay\:150ms\]{animation-delay:.15s}.skippr\:\[animation-delay\:300ms\]{animation-delay:.3s}.skippr\:placeholder\:text-muted-foreground::placeholder{color:oklch(50.32% 0 0)}@media (hover:hover){.skippr\:hover\:border-primary\/40:hover{border-color:oklab(43.41% .0291341 .0262268/.4)}.skippr\:hover\:bg-accent:hover{background-color:oklch(93.1% 0 0)}.skippr\:hover\:bg-destructive\/90:hover{background-color:oklab(62.71% .16174 .106401/.9)}.skippr\:hover\:bg-primary-foreground\/20:hover{background-color:oklab(100% 0 0/.2)}.skippr\:hover\:bg-primary\/90:hover{background-color:oklab(43.41% .0291341 .0262268/.9)}.skippr\:hover\:bg-secondary\/80:hover{background-color:oklab(92% .0175401 .0626926/.8)}.skippr\:hover\:text-accent-foreground:hover{color:oklch(24.35% 0 0)}.skippr\:hover\:text-primary-foreground:hover{color:oklch(100% 0 0)}.skippr\:hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}.skippr\:focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\:focus\:ring-ring:focus{--tw-ring-color:oklch(43.41% .0392 41.9938)}.skippr\:focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\:focus-visible\:ring-ring:focus-visible{--tw-ring-color:oklch(43.41% .0392 41.9938)}.skippr\:focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.skippr\:focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.skippr\:disabled\:pointer-events-none:disabled{pointer-events:none}.skippr\:disabled\:opacity-50:disabled{opacity:.5}.skippr\:\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.skippr\:\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.skippr\:\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--skippr-spacing)*4);height:calc(var(--skippr-spacing)*4)}}@keyframes skippr-pulse-ring{0%,to{box-shadow:0 0 oklch(43.41% .0392 41.9938/.4)}50%{box-shadow:0 0 0 10px oklch(43.41% .0392 41.9938/0)}}@keyframes skippr-speak-ripple{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}@keyframes skippr-bar{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@keyframes skippr-breathe{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}