@skippr/live-agent-sdk 0.100.0 → 0.102.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.
- package/dist/esm/lib-exports.js +354 -219
- package/dist/skippr-sdk.css +1 -1
- package/dist/skippr-sdk.js +156 -156
- package/dist/types/components/ChatHeader.d.ts +7 -1
- package/dist/types/components/ConsentBubble.d.ts +2 -1
- package/dist/types/components/ConsentNotice.d.ts +3 -2
- package/dist/types/components/VoiceBarChatLine.d.ts +2 -3
- package/dist/types/components/VoiceBarFrame.d.ts +4 -4
- package/dist/types/components/VoiceBarNotification.d.ts +3 -3
- package/dist/types/context/LiveAgentContext.d.ts +16 -4
- package/dist/types/hooks/useLauncherDrag.d.ts +3 -1
- package/dist/types/hooks/useVoiceBarDrag.d.ts +2 -2
- package/dist/types/lib/constants.d.ts +5 -0
- package/dist/types/lib/voiceBar.d.ts +12 -2
- package/package.json +1 -1
package/dist/esm/lib-exports.js
CHANGED
|
@@ -8,7 +8,7 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
|
|
|
8
8
|
|
|
9
9
|
// src/components/LiveAgent.tsx
|
|
10
10
|
import { LiveKitRoom, RoomAudioRenderer } from "@livekit/components-react";
|
|
11
|
-
import { Fragment as Fragment7, useCallback as
|
|
11
|
+
import { Fragment as Fragment7, useCallback as useCallback33, useEffect as useEffect49, useMemo as useMemo8, useRef as useRef42, useState as useState39 } from "react";
|
|
12
12
|
// ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/createLucideIcon.js
|
|
13
13
|
import { forwardRef as forwardRef2, createElement as createElement3 } from "react";
|
|
14
14
|
|
|
@@ -341,30 +341,30 @@ function isEditableTarget() {
|
|
|
341
341
|
|
|
342
342
|
// src/components/ConsentNotice.tsx
|
|
343
343
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
344
|
-
function ConsentNotice({ className,
|
|
345
|
-
const leadIn = sessionStart ? "By starting a session" : "By continuing";
|
|
344
|
+
function ConsentNotice({ className, leadIn, determiner = "Skippr's" }) {
|
|
346
345
|
return /* @__PURE__ */ jsxs("p", {
|
|
347
346
|
className: cn("skippr:text-[11px] skippr:leading-[1.2] skippr:text-muted-foreground skippr:text-center", className),
|
|
348
347
|
children: [
|
|
349
348
|
leadIn,
|
|
350
|
-
", you agree to
|
|
349
|
+
", you agree to ",
|
|
350
|
+
determiner,
|
|
351
351
|
" ",
|
|
352
352
|
/* @__PURE__ */ jsx("a", {
|
|
353
353
|
href: "https://www.skippr.ai/terms",
|
|
354
354
|
target: "_blank",
|
|
355
355
|
rel: "noopener noreferrer",
|
|
356
356
|
className: "skippr:underline skippr:underline-offset-[2px] skippr:decoration-muted-foreground/40 skippr:hover:text-foreground skippr:hover:decoration-muted-foreground",
|
|
357
|
-
children: "Terms
|
|
357
|
+
children: "Terms"
|
|
358
358
|
}),
|
|
359
359
|
" ",
|
|
360
|
-
"
|
|
360
|
+
"&",
|
|
361
361
|
" ",
|
|
362
362
|
/* @__PURE__ */ jsx("a", {
|
|
363
363
|
href: "https://www.skippr.ai/privacy",
|
|
364
364
|
target: "_blank",
|
|
365
365
|
rel: "noopener noreferrer",
|
|
366
366
|
className: "skippr:underline skippr:underline-offset-[2px] skippr:decoration-muted-foreground/40 skippr:hover:text-foreground skippr:hover:decoration-muted-foreground",
|
|
367
|
-
children: "Privacy
|
|
367
|
+
children: "Privacy"
|
|
368
368
|
})
|
|
369
369
|
]
|
|
370
370
|
});
|
|
@@ -375,6 +375,7 @@ import { jsx as jsx2 } from "react/jsx-runtime";
|
|
|
375
375
|
function ConsentBubble({
|
|
376
376
|
className,
|
|
377
377
|
style,
|
|
378
|
+
leadIn,
|
|
378
379
|
onPointerEnter,
|
|
379
380
|
onPointerLeave
|
|
380
381
|
}) {
|
|
@@ -384,7 +385,7 @@ function ConsentBubble({
|
|
|
384
385
|
onPointerEnter,
|
|
385
386
|
onPointerLeave,
|
|
386
387
|
children: /* @__PURE__ */ jsx2(ConsentNotice, {
|
|
387
|
-
|
|
388
|
+
leadIn
|
|
388
389
|
})
|
|
389
390
|
});
|
|
390
391
|
}
|
|
@@ -489,6 +490,10 @@ var NOTIFICATION_KIND = {
|
|
|
489
490
|
Tip: "tip",
|
|
490
491
|
Module: "module"
|
|
491
492
|
};
|
|
493
|
+
var PENDING_START_KIND = {
|
|
494
|
+
Goal: "goal",
|
|
495
|
+
Module: "module"
|
|
496
|
+
};
|
|
492
497
|
var PLAN_ATTR = "skippr.action-plan";
|
|
493
498
|
var LINK_CARD_ATTR = "skippr.link-card";
|
|
494
499
|
var NAME_MAX_CHARS = 80;
|
|
@@ -2934,7 +2939,7 @@ function BuddyVoiceBar({ revealed }) {
|
|
|
2934
2939
|
"data-testid": "buddy-drag-handle",
|
|
2935
2940
|
"aria-hidden": "true",
|
|
2936
2941
|
onPointerDown: (event) => startDrag(event),
|
|
2937
|
-
className: "skippr:absolute skippr
|
|
2942
|
+
className: "skippr:absolute skippr:bottom-4 skippr:left-1/2 skippr:h-5 skippr:w-10 skippr:-translate-x-1/2",
|
|
2938
2943
|
style: { cursor: isDragging ? "grabbing" : "grab" }
|
|
2939
2944
|
}),
|
|
2940
2945
|
/* @__PURE__ */ jsx14("button", {
|
|
@@ -3058,7 +3063,8 @@ function BuddyVoiceBar({ revealed }) {
|
|
|
3058
3063
|
]
|
|
3059
3064
|
}),
|
|
3060
3065
|
isIdleLauncherHovered && !loginOpen && /* @__PURE__ */ jsx14(ConsentBubble, {
|
|
3061
|
-
|
|
3066
|
+
leadIn: "By starting the AI agent session",
|
|
3067
|
+
className: "skippr:absolute skippr:bottom-[calc(100%+8px)] skippr:w-[150px]",
|
|
3062
3068
|
style: edgeDrag.pos.edge === "left" ? { left: 0 } : edgeDrag.pos.edge === "right" ? { right: 0 } : { left: "50%", transform: "translateX(-50%)" }
|
|
3063
3069
|
})
|
|
3064
3070
|
]
|
|
@@ -4419,6 +4425,8 @@ var VOICE_BAR_HEIGHT_PX = 46;
|
|
|
4419
4425
|
var VOICE_BAR_WIDTH_PX = 255;
|
|
4420
4426
|
var edgeKey = (kind) => `skippr_voicebar_${kind}_edge`;
|
|
4421
4427
|
var ratioKey = (kind) => `skippr_voicebar_${kind}_ratio`;
|
|
4428
|
+
var BAR_X_RATIO_KEY = "skippr_voicebar_bar_x_ratio";
|
|
4429
|
+
var BAR_Y_RATIO_KEY = "skippr_voicebar_bar_y_ratio";
|
|
4422
4430
|
function isHorizontalEdge(edge) {
|
|
4423
4431
|
return edge === "top" || edge === "bottom";
|
|
4424
4432
|
}
|
|
@@ -4440,6 +4448,51 @@ function persistDock(kind, dock) {
|
|
|
4440
4448
|
localStorage.setItem(ratioKey(kind), String(dock.offsetPx / edgeExtent(dock.edge)));
|
|
4441
4449
|
} catch {}
|
|
4442
4450
|
}
|
|
4451
|
+
function readSavedBarPos() {
|
|
4452
|
+
try {
|
|
4453
|
+
const xRatio = Number.parseFloat(localStorage.getItem(BAR_X_RATIO_KEY) ?? "");
|
|
4454
|
+
const yRatio = Number.parseFloat(localStorage.getItem(BAR_Y_RATIO_KEY) ?? "");
|
|
4455
|
+
if (!Number.isFinite(xRatio) || !Number.isFinite(yRatio))
|
|
4456
|
+
return null;
|
|
4457
|
+
return clampBarPos({
|
|
4458
|
+
x: xRatio * window.innerWidth,
|
|
4459
|
+
y: yRatio * window.innerHeight
|
|
4460
|
+
});
|
|
4461
|
+
} catch {}
|
|
4462
|
+
return null;
|
|
4463
|
+
}
|
|
4464
|
+
function persistBarPos(pos) {
|
|
4465
|
+
try {
|
|
4466
|
+
localStorage.setItem(BAR_X_RATIO_KEY, String(pos.x / window.innerWidth));
|
|
4467
|
+
localStorage.setItem(BAR_Y_RATIO_KEY, String(pos.y / window.innerHeight));
|
|
4468
|
+
} catch {}
|
|
4469
|
+
}
|
|
4470
|
+
function clampBarPos(pos) {
|
|
4471
|
+
const m = VOICE_BAR_EDGE_MARGIN_PX;
|
|
4472
|
+
return {
|
|
4473
|
+
x: Math.round(Math.min(Math.max(pos.x, m), window.innerWidth - VOICE_BAR_WIDTH_PX - m)),
|
|
4474
|
+
y: Math.round(Math.min(Math.max(pos.y, m), window.innerHeight - VOICE_BAR_HEIGHT_PX - m))
|
|
4475
|
+
};
|
|
4476
|
+
}
|
|
4477
|
+
function barPopsDown(pos) {
|
|
4478
|
+
return pos.y + VOICE_BAR_HEIGHT_PX / 2 < window.innerHeight / 2;
|
|
4479
|
+
}
|
|
4480
|
+
function barLeftAligned(pos) {
|
|
4481
|
+
return pos.x + VOICE_BAR_WIDTH_PX / 2 < window.innerWidth / 2;
|
|
4482
|
+
}
|
|
4483
|
+
function defaultBarPos() {
|
|
4484
|
+
return clampBarPos({
|
|
4485
|
+
x: window.innerWidth / 2 - VOICE_BAR_WIDTH_PX / 2,
|
|
4486
|
+
y: window.innerHeight - VOICE_BAR_EDGE_MARGIN_PX - VOICE_BAR_HEIGHT_PX
|
|
4487
|
+
});
|
|
4488
|
+
}
|
|
4489
|
+
function barPosStyle(pos) {
|
|
4490
|
+
return {
|
|
4491
|
+
left: pos.x,
|
|
4492
|
+
top: pos.y,
|
|
4493
|
+
transform: "translate(var(--skippr-drag-x, 0px), var(--skippr-drag-y, 0px))"
|
|
4494
|
+
};
|
|
4495
|
+
}
|
|
4443
4496
|
function edgeExtent(edge) {
|
|
4444
4497
|
return isHorizontalEdge(edge) ? window.innerWidth : window.innerHeight;
|
|
4445
4498
|
}
|
|
@@ -4467,16 +4520,6 @@ function dropTargetFromPointer(clientX, clientY) {
|
|
|
4467
4520
|
return { edge, offsetPx };
|
|
4468
4521
|
}
|
|
4469
4522
|
var DRAG_TRANSLATE = "translate(var(--skippr-drag-x, 0px), var(--skippr-drag-y, 0px))";
|
|
4470
|
-
function dockStyle(dock) {
|
|
4471
|
-
const m = VOICE_BAR_EDGE_MARGIN_PX;
|
|
4472
|
-
if (dock.edge === "left")
|
|
4473
|
-
return { left: m, top: dock.offsetPx, transform: `translateY(-50%) ${DRAG_TRANSLATE}` };
|
|
4474
|
-
if (dock.edge === "right")
|
|
4475
|
-
return { right: m, top: dock.offsetPx, transform: `translateY(-50%) ${DRAG_TRANSLATE}` };
|
|
4476
|
-
if (dock.edge === "top")
|
|
4477
|
-
return { top: m, left: dock.offsetPx, transform: `translateX(-50%) ${DRAG_TRANSLATE}` };
|
|
4478
|
-
return { bottom: m, left: dock.offsetPx, transform: `translateX(-50%) ${DRAG_TRANSLATE}` };
|
|
4479
|
-
}
|
|
4480
4523
|
function dockStyleFlush(dock) {
|
|
4481
4524
|
if (dock.edge === "left")
|
|
4482
4525
|
return { left: 0, top: dock.offsetPx, transform: `translateY(-50%) ${DRAG_TRANSLATE}` };
|
|
@@ -6533,7 +6576,7 @@ import { useContext as useContext10, useEffect as useEffect25, useRef as useRef2
|
|
|
6533
6576
|
import { useEffect as useEffect24, useRef as useRef19 } from "react";
|
|
6534
6577
|
import { flushSync } from "react-dom";
|
|
6535
6578
|
var DRAG_THRESHOLD_PX = 5;
|
|
6536
|
-
function useLauncherDrag(containerRef, onDrop, followRefs, reportDragging) {
|
|
6579
|
+
function useLauncherDrag(containerRef, onDrop, followRefs, reportDragging, enabled = true) {
|
|
6537
6580
|
const wasDraggedRef = useRef19(false);
|
|
6538
6581
|
const onDropRef = useRef19(onDrop);
|
|
6539
6582
|
onDropRef.current = onDrop;
|
|
@@ -6542,6 +6585,8 @@ function useLauncherDrag(containerRef, onDrop, followRefs, reportDragging) {
|
|
|
6542
6585
|
const reportDraggingRef = useRef19(reportDragging);
|
|
6543
6586
|
reportDraggingRef.current = reportDragging;
|
|
6544
6587
|
useEffect24(() => {
|
|
6588
|
+
if (!enabled)
|
|
6589
|
+
return;
|
|
6545
6590
|
const el = containerRef.current;
|
|
6546
6591
|
if (!el)
|
|
6547
6592
|
return;
|
|
@@ -6550,6 +6595,7 @@ function useLauncherDrag(containerRef, onDrop, followRefs, reportDragging) {
|
|
|
6550
6595
|
let dragging = false;
|
|
6551
6596
|
let activePointerId = null;
|
|
6552
6597
|
let followers = [];
|
|
6598
|
+
let followerBaseTransforms = [];
|
|
6553
6599
|
let aFollowerContainsEl = false;
|
|
6554
6600
|
let restoreTransitionRafId = 0;
|
|
6555
6601
|
let transitionFrozen = [];
|
|
@@ -6592,6 +6638,7 @@ function useLauncherDrag(containerRef, onDrop, followRefs, reportDragging) {
|
|
|
6592
6638
|
el.setPointerCapture(event.pointerId);
|
|
6593
6639
|
} catch {}
|
|
6594
6640
|
followers = (followTargetsRef.current ?? []).map((ref) => ref.current).filter((node) => node !== null);
|
|
6641
|
+
followerBaseTransforms = followers.map((f) => f.style.transform);
|
|
6595
6642
|
aFollowerContainsEl = followers.some((follower) => follower.contains(el));
|
|
6596
6643
|
cancelPendingTransitionRestore();
|
|
6597
6644
|
for (const follower of followers)
|
|
@@ -6600,11 +6647,15 @@ function useLauncherDrag(containerRef, onDrop, followRefs, reportDragging) {
|
|
|
6600
6647
|
}
|
|
6601
6648
|
dragging = true;
|
|
6602
6649
|
wasDraggedRef.current = true;
|
|
6603
|
-
const
|
|
6650
|
+
const dragTranslate = `translate(${dx}px, ${dy}px)`;
|
|
6604
6651
|
if (!aFollowerContainsEl)
|
|
6605
|
-
el.style.transform =
|
|
6606
|
-
for (
|
|
6607
|
-
follower
|
|
6652
|
+
el.style.transform = dragTranslate;
|
|
6653
|
+
for (let i = 0;i < followers.length; i++) {
|
|
6654
|
+
const follower = followers[i];
|
|
6655
|
+
const base = followerBaseTransforms[i];
|
|
6656
|
+
if (follower)
|
|
6657
|
+
follower.style.transform = base ? `${base} ${dragTranslate}` : dragTranslate;
|
|
6658
|
+
}
|
|
6608
6659
|
};
|
|
6609
6660
|
const onPointerUp = (event) => {
|
|
6610
6661
|
if (event.pointerId !== activePointerId)
|
|
@@ -6612,7 +6663,12 @@ function useLauncherDrag(containerRef, onDrop, followRefs, reportDragging) {
|
|
|
6612
6663
|
if (dragging) {
|
|
6613
6664
|
const side = event.clientX < window.innerWidth / 2 ? "left" : "right";
|
|
6614
6665
|
const pointerBottom = window.innerHeight - event.clientY - LAUNCHER_HEIGHT_PX / 2;
|
|
6615
|
-
flushSync(() => onDropRef.current({
|
|
6666
|
+
flushSync(() => onDropRef.current({
|
|
6667
|
+
side,
|
|
6668
|
+
bottomPx: clampLauncherBottom(pointerBottom),
|
|
6669
|
+
clientX: event.clientX,
|
|
6670
|
+
clientY: event.clientY
|
|
6671
|
+
}));
|
|
6616
6672
|
}
|
|
6617
6673
|
endDrag();
|
|
6618
6674
|
};
|
|
@@ -6631,9 +6687,14 @@ function useLauncherDrag(containerRef, onDrop, followRefs, reportDragging) {
|
|
|
6631
6687
|
el.style.transform = "";
|
|
6632
6688
|
aFollowerContainsEl = false;
|
|
6633
6689
|
const settled = followers;
|
|
6690
|
+
const settledBase = followerBaseTransforms;
|
|
6634
6691
|
followers = [];
|
|
6635
|
-
|
|
6636
|
-
|
|
6692
|
+
followerBaseTransforms = [];
|
|
6693
|
+
for (let i = 0;i < settled.length; i++) {
|
|
6694
|
+
const follower = settled[i];
|
|
6695
|
+
if (follower)
|
|
6696
|
+
follower.style.transform = settledBase[i] ?? "";
|
|
6697
|
+
}
|
|
6637
6698
|
if (settled.length > 0) {
|
|
6638
6699
|
transitionFrozen = settled;
|
|
6639
6700
|
restoreTransitionRafId = requestAnimationFrame(() => {
|
|
@@ -6675,12 +6736,15 @@ function useLauncherDrag(containerRef, onDrop, followRefs, reportDragging) {
|
|
|
6675
6736
|
reportDraggingRef.current?.(false);
|
|
6676
6737
|
el.style.transform = "";
|
|
6677
6738
|
cancelPendingTransitionRestore();
|
|
6678
|
-
for (
|
|
6679
|
-
follower
|
|
6680
|
-
|
|
6739
|
+
for (let i = 0;i < followers.length; i++) {
|
|
6740
|
+
const follower = followers[i];
|
|
6741
|
+
if (follower) {
|
|
6742
|
+
follower.style.transform = followerBaseTransforms[i] ?? "";
|
|
6743
|
+
unfreeze(follower);
|
|
6744
|
+
}
|
|
6681
6745
|
}
|
|
6682
6746
|
};
|
|
6683
|
-
}, [containerRef]);
|
|
6747
|
+
}, [containerRef, enabled]);
|
|
6684
6748
|
return { wasDraggedRef };
|
|
6685
6749
|
}
|
|
6686
6750
|
|
|
@@ -7048,6 +7112,7 @@ function MinimizedBubble({
|
|
|
7048
7112
|
className: "skippr:relative",
|
|
7049
7113
|
children: [
|
|
7050
7114
|
isLauncherHovered && /* @__PURE__ */ jsx21(ConsentBubble, {
|
|
7115
|
+
leadIn: "By starting a session",
|
|
7051
7116
|
className: cn("skippr:absolute skippr:bottom-[calc(100%+8px)]", position === "right" ? "skippr:right-0" : "skippr:left-0")
|
|
7052
7117
|
}),
|
|
7053
7118
|
/* @__PURE__ */ jsx21(IdleLauncher, {
|
|
@@ -8189,7 +8254,7 @@ function ShadowHost({
|
|
|
8189
8254
|
const hostRef = useRef25(null);
|
|
8190
8255
|
const [shadowRoot, setShadowRoot] = useState22(null);
|
|
8191
8256
|
const css = `/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
|
|
8192
|
-
@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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-y-reverse:0;--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-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;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-outline-style:solid}}}@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-100:oklch(93.6% .032 17.717);--skippr-color-red-200:oklch(88.5% .062 18.334);--skippr-color-red-300:oklch(80.8% .114 19.571);--skippr-color-red-400:oklch(70.4% .191 22.216);--skippr-color-red-500:oklch(63.7% .237 25.331);--skippr-color-red-600:oklch(57.7% .245 27.325);--skippr-color-red-700:oklch(50.5% .213 27.518);--skippr-color-amber-50:oklch(98.7% .022 95.277);--skippr-color-amber-100:oklch(96.2% .059 95.617);--skippr-color-amber-400:oklch(82.8% .189 84.429);--skippr-color-amber-700:oklch(55.5% .163 48.998);--skippr-color-amber-950:oklch(27.9% .077 45.635);--skippr-color-emerald-400:oklch(76.5% .177 163.223);--skippr-color-neutral-100:oklch(97% 0 0);--skippr-color-neutral-200:oklch(92.2% 0 0);--skippr-color-neutral-500:oklch(55.6% 0 0);--skippr-color-neutral-700:oklch(37.1% 0 0);--skippr-color-black:#000;--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-font-weight-bold:700;--skippr-leading-snug:1.375;--skippr-leading-relaxed:1.625;--skippr-ease-out:cubic-bezier(0,0,.2,1);--skippr-ease-in-out:cubic-bezier(.4,0,.2,1);--skippr-animate-spin:spin 1s linear infinite;--skippr-animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--skippr-animate-bounce:bounce 1s infinite;--skippr-blur-sm:8px;--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-auto{pointer-events:auto}.skippr\\:pointer-events-none{pointer-events:none}.skippr\\:absolute{position:absolute}.skippr\\:fixed{position:fixed}.skippr\\:relative{position:relative}.skippr\\:sticky{position:sticky}.skippr\\:-inset-\\[3px\\]{inset:-3px}.skippr\\:inset-0{inset:calc(var(--skippr-spacing)*0)}.skippr\\:inset-y-0{inset-block:calc(var(--skippr-spacing)*0)}.skippr\\:-top-1{top:calc(var(--skippr-spacing)*-1)}.skippr\\:-top-6{top:calc(var(--skippr-spacing)*-6)}.skippr\\:-top-8{top:calc(var(--skippr-spacing)*-8)}.skippr\\:-top-\\[2px\\]{top:-2px}.skippr\\:-top-\\[3px\\]{top:-3px}.skippr\\:-top-\\[13px\\]{top:-13px}.skippr\\:top-0{top:calc(var(--skippr-spacing)*0)}.skippr\\:top-1\\/2{top:50%}.skippr\\:top-\\[8px\\]{top:8px}.skippr\\:top-full{top:100%}.skippr\\:-right-1{right:calc(var(--skippr-spacing)*-1)}.skippr\\:-right-8{right:calc(var(--skippr-spacing)*-8)}.skippr\\:-right-\\[2px\\]{right:-2px}.skippr\\:-right-\\[6px\\]{right:-6px}.skippr\\:right-0{right:calc(var(--skippr-spacing)*0)}.skippr\\:right-3{right:calc(var(--skippr-spacing)*3)}.skippr\\:right-5{right:calc(var(--skippr-spacing)*5)}.skippr\\:right-6{right:calc(var(--skippr-spacing)*6)}.skippr\\:right-\\[4px\\]{right:4px}.skippr\\:right-\\[8px\\]{right:8px}.skippr\\:-bottom-1{bottom:calc(var(--skippr-spacing)*-1)}.skippr\\:-bottom-\\[2px\\]{bottom:-2px}.skippr\\:bottom-3{bottom:calc(var(--skippr-spacing)*3)}.skippr\\:bottom-20{bottom:calc(var(--skippr-spacing)*20)}.skippr\\:bottom-\\[calc\\(100\\%\\+8px\\)\\]{bottom:calc(100% + 8px)}.skippr\\:bottom-\\[calc\\(100\\%\\+11px\\)\\]{bottom:calc(100% + 11px)}.skippr\\:bottom-full{bottom:100%}.skippr\\:-left-8{left:calc(var(--skippr-spacing)*-8)}.skippr\\:-left-\\[2px\\]{left:-2px}.skippr\\:-left-\\[6px\\]{left:-6px}.skippr\\:left-0{left:calc(var(--skippr-spacing)*0)}.skippr\\:left-1\\/2{left:50%}.skippr\\:left-2{left:calc(var(--skippr-spacing)*2)}.skippr\\:left-3{left:calc(var(--skippr-spacing)*3)}.skippr\\:left-5{left:calc(var(--skippr-spacing)*5)}.skippr\\:left-6{left:calc(var(--skippr-spacing)*6)}.skippr\\:z-10{z-index:10}.skippr\\:z-20{z-index:20}.skippr\\:z-\\[1\\]{z-index:1}.skippr\\:z-\\[2\\]{z-index:2}.skippr\\:z-\\[4\\]{z-index:4}.skippr\\:z-\\[5\\]{z-index:5}.skippr\\:z-\\[6\\]{z-index:6}.skippr\\:z-\\[7\\]{z-index:7}.skippr\\:z-\\[8\\]{z-index:8}.skippr\\:z-\\[9998\\]{z-index:9998}.skippr\\:z-\\[9999\\]{z-index:9999}.skippr\\:z-\\[10000\\]{z-index:10000}.skippr\\:order-first{order:-9999}.skippr\\:order-last{order:9999}.skippr\\:mx-auto{margin-inline:auto}.skippr\\:-mt-1{margin-top:calc(var(--skippr-spacing)*-1)}.skippr\\:-mt-\\[5px\\]{margin-top:-5px}.skippr\\:-mt-\\[27px\\]{margin-top:-27px}.skippr\\:mt-1{margin-top:calc(var(--skippr-spacing)*1)}.skippr\\:mt-1\\.5{margin-top:calc(var(--skippr-spacing)*1.5)}.skippr\\:mt-2{margin-top:calc(var(--skippr-spacing)*2)}.skippr\\:mt-3{margin-top:calc(var(--skippr-spacing)*3)}.skippr\\:mt-3\\.5{margin-top:calc(var(--skippr-spacing)*3.5)}.skippr\\:mt-\\[1px\\]{margin-top:1px}.skippr\\:mt-\\[8px\\]{margin-top:8px}.skippr\\:mt-\\[9px\\]{margin-top:9px}.skippr\\:-mr-1{margin-right:calc(var(--skippr-spacing)*-1)}.skippr\\:mr-7{margin-right:calc(var(--skippr-spacing)*7)}.skippr\\:mr-\\[22px\\]{margin-right:22px}.skippr\\:-mb-\\[5px\\]{margin-bottom:-5px}.skippr\\:mb-1{margin-bottom:calc(var(--skippr-spacing)*1)}.skippr\\:mb-1\\.5{margin-bottom:calc(var(--skippr-spacing)*1.5)}.skippr\\:mb-2{margin-bottom:calc(var(--skippr-spacing)*2)}.skippr\\:mb-3{margin-bottom:calc(var(--skippr-spacing)*3)}.skippr\\:mb-4{margin-bottom:calc(var(--skippr-spacing)*4)}.skippr\\:mb-\\[14px\\]{margin-bottom:14px}.skippr\\:-ml-\\[2px\\]{margin-left:-2px}.skippr\\:ml-0\\.5{margin-left:calc(var(--skippr-spacing)*.5)}.skippr\\:ml-1{margin-left:calc(var(--skippr-spacing)*1)}.skippr\\:ml-7{margin-left:calc(var(--skippr-spacing)*7)}.skippr\\:ml-auto{margin-left:auto}.skippr\\:line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.skippr\\:block{display:block}.skippr\\:flex{display:flex}.skippr\\:hidden{display:none}.skippr\\:inline-flex{display:inline-flex}.skippr\\:aspect-square{aspect-ratio:1}.skippr\\:size-1{width:calc(var(--skippr-spacing)*1);height:calc(var(--skippr-spacing)*1)}.skippr\\:size-1\\.5{width:calc(var(--skippr-spacing)*1.5);height:calc(var(--skippr-spacing)*1.5)}.skippr\\:size-2{width:calc(var(--skippr-spacing)*2);height:calc(var(--skippr-spacing)*2)}.skippr\\:size-2\\.5{width:calc(var(--skippr-spacing)*2.5);height:calc(var(--skippr-spacing)*2.5)}.skippr\\:size-3{width:calc(var(--skippr-spacing)*3);height:calc(var(--skippr-spacing)*3)}.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-7{width:calc(var(--skippr-spacing)*7);height:calc(var(--skippr-spacing)*7)}.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-12{width:calc(var(--skippr-spacing)*12);height:calc(var(--skippr-spacing)*12)}.skippr\\:size-\\[3px\\]{width:3px;height:3px}.skippr\\:size-\\[4px\\]{width:4px;height:4px}.skippr\\:size-\\[5px\\]{width:5px;height:5px}.skippr\\:size-\\[6px\\]{width:6px;height:6px}.skippr\\:size-\\[7px\\]{width:7px;height:7px}.skippr\\:size-\\[8px\\]{width:8px;height:8px}.skippr\\:size-\\[9px\\]{width:9px;height:9px}.skippr\\:size-\\[10px\\]{width:10px;height:10px}.skippr\\:size-\\[11px\\]{width:11px;height:11px}.skippr\\:size-\\[12px\\]{width:12px;height:12px}.skippr\\:size-\\[13px\\]{width:13px;height:13px}.skippr\\:size-\\[14px\\]{width:14px;height:14px}.skippr\\:size-\\[15px\\]{width:15px;height:15px}.skippr\\:size-\\[16px\\]{width:16px;height:16px}.skippr\\:size-\\[17px\\]{width:17px;height:17px}.skippr\\:size-\\[18px\\]{width:18px;height:18px}.skippr\\:size-\\[19px\\]{width:19px;height:19px}.skippr\\:size-\\[20px\\]{width:20px;height:20px}.skippr\\:size-\\[22px\\]{width:22px;height:22px}.skippr\\:size-\\[26px\\]{width:26px;height:26px}.skippr\\:size-\\[28px\\]{width:28px;height:28px}.skippr\\:size-\\[30px\\]{width:30px;height:30px}.skippr\\:size-\\[32px\\]{width:32px;height:32px}.skippr\\:size-\\[34px\\]{width:34px;height:34px}.skippr\\:size-\\[38px\\]{width:38px;height:38px}.skippr\\:size-\\[46px\\]{width:46px;height:46px}.skippr\\:size-full{width:100%;height:100%}.skippr\\:h-0{height:calc(var(--skippr-spacing)*0)}.skippr\\:h-1{height:calc(var(--skippr-spacing)*1)}.skippr\\:h-1\\.5{height:calc(var(--skippr-spacing)*1.5)}.skippr\\:h-2{height:calc(var(--skippr-spacing)*2)}.skippr\\:h-3{height:calc(var(--skippr-spacing)*3)}.skippr\\:h-3\\.5{height:calc(var(--skippr-spacing)*3.5)}.skippr\\:h-5{height:calc(var(--skippr-spacing)*5)}.skippr\\:h-6{height:calc(var(--skippr-spacing)*6)}.skippr\\:h-7{height:calc(var(--skippr-spacing)*7)}.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-\\[5px\\]{height:5px}.skippr\\:h-\\[14px\\]{height:14px}.skippr\\:h-\\[16px\\]{height:16px}.skippr\\:h-\\[18\\.5px\\]{height:18.5px}.skippr\\:h-\\[18px\\]{height:18px}.skippr\\:h-\\[22px\\]{height:22px}.skippr\\:h-\\[24px\\]{height:24px}.skippr\\:h-\\[26px\\]{height:26px}.skippr\\:h-\\[36px\\]{height:36px}.skippr\\:h-\\[38px\\]{height:38px}.skippr\\:h-\\[48px\\]{height:48px}.skippr\\:h-\\[54px\\]{height:54px}.skippr\\:h-full{height:100%}.skippr\\:h-px{height:1px}.skippr\\:max-h-\\[132px\\]{max-height:132px}.skippr\\:min-h-0{min-height:calc(var(--skippr-spacing)*0)}.skippr\\:min-h-11{min-height:calc(var(--skippr-spacing)*11)}.skippr\\:min-h-\\[16px\\]{min-height:16px}.skippr\\:w-0{width:calc(var(--skippr-spacing)*0)}.skippr\\:w-3\\.5{width:calc(var(--skippr-spacing)*3.5)}.skippr\\:w-5{width:calc(var(--skippr-spacing)*5)}.skippr\\:w-6{width:calc(var(--skippr-spacing)*6)}.skippr\\:w-7{width:calc(var(--skippr-spacing)*7)}.skippr\\:w-10{width:calc(var(--skippr-spacing)*10)}.skippr\\:w-40{width:calc(var(--skippr-spacing)*40)}.skippr\\:w-\\[2\\.5px\\]{width:2.5px}.skippr\\:w-\\[2px\\]{width:2px}.skippr\\:w-\\[3px\\]{width:3px}.skippr\\:w-\\[14px\\]{width:14px}.skippr\\:w-\\[15\\.4px\\]{width:15.4px}.skippr\\:w-\\[15px\\]{width:15px}.skippr\\:w-\\[16px\\]{width:16px}.skippr\\:w-\\[22px\\]{width:22px}.skippr\\:w-\\[36px\\]{width:36px}.skippr\\:w-\\[38px\\]{width:38px}.skippr\\:w-\\[50px\\]{width:50px}.skippr\\:w-\\[148px\\]{width:148px}.skippr\\:w-\\[225px\\]{width:225px}.skippr\\:w-\\[240px\\]{width:240px}.skippr\\:w-\\[255px\\]{width:255px}.skippr\\:w-\\[320px\\]{width:320px}.skippr\\:w-fit{width:fit-content}.skippr\\:w-full{width:100%}.skippr\\:w-px{width:1px}.skippr\\:max-w-64{max-width:calc(var(--skippr-spacing)*64)}.skippr\\:max-w-72{max-width:calc(var(--skippr-spacing)*72)}.skippr\\:max-w-\\[80\\%\\]{max-width:80%}.skippr\\:max-w-\\[280px\\]{max-width:280px}.skippr\\:min-w-0{min-width:calc(var(--skippr-spacing)*0)}.skippr\\:min-w-11{min-width:calc(var(--skippr-spacing)*11)}.skippr\\:min-w-\\[96px\\]{min-width:96px}.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\\:origin-center{transform-origin:50%}.skippr\\:origin-left{transform-origin:0}.skippr\\:origin-right{transform-origin:100%}.skippr\\:origin-top{transform-origin:top}.skippr\\:origin-top-left{transform-origin:0 0}.skippr\\:origin-top-right{transform-origin:100% 0}.skippr\\:-translate-x-1\\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:-translate-x-3{--tw-translate-x:calc(var(--skippr-spacing)*-3);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:-translate-x-7{--tw-translate-x:calc(var(--skippr-spacing)*-7);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:translate-x-3{--tw-translate-x:calc(var(--skippr-spacing)*3);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:translate-x-7{--tw-translate-x:calc(var(--skippr-spacing)*7);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:-translate-y-1\\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:-translate-y-\\[4px\\]{--tw-translate-y:calc(4px*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.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-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;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\\:scale-\\[0\\.94\\]{scale:.94}.skippr\\:-rotate-90{rotate:-90deg}.skippr\\:rotate-45{rotate:45deg}.skippr\\:rotate-\\[225deg\\]{rotate:225deg}.skippr\\:\\[animation\\:skippr-agent-in_200ms_ease-out\\]{animation:.2s ease-out skippr-agent-in}.skippr\\:\\[animation\\:skippr-agent-in_200ms_ease-out_240ms_both\\]{animation:.2s ease-out .24s both skippr-agent-in}.skippr\\:\\[animation\\:skippr-banner-look_2\\.4s_ease-in-out_infinite\\]{animation:2.4s ease-in-out infinite skippr-banner-look}.skippr\\:\\[animation\\:skippr-block-reveal_320ms_cubic-bezier\\(0\\.22\\,1\\,0\\.36\\,1\\)\\]{animation:.32s cubic-bezier(.22,1,.36,1) skippr-block-reveal}.skippr\\:\\[animation\\:skippr-breathe_1\\.1s_ease-in-out_0\\.18s_infinite\\]{animation:1.1s ease-in-out .18s infinite skippr-breathe}.skippr\\:\\[animation\\:skippr-breathe_1\\.1s_ease-in-out_0\\.36s_infinite\\]{animation:1.1s ease-in-out .36s infinite skippr-breathe}.skippr\\:\\[animation\\:skippr-breathe_1\\.1s_ease-in-out_0s_infinite\\]{animation:1.1s ease-in-out infinite skippr-breathe}.skippr\\:\\[animation\\:skippr-evaporate_3\\.2s_ease-in_forwards\\]{animation:3.2s ease-in forwards skippr-evaporate}.skippr\\:\\[animation\\:skippr-fade-in_0\\.2s_ease\\]{animation:.2s skippr-fade-in}.skippr\\:\\[animation\\:skippr-fade-in_0\\.16s_ease\\]{animation:.16s skippr-fade-in}.skippr\\:\\[animation\\:skippr-fade-in_0\\.22s_ease\\]{animation:.22s skippr-fade-in}.skippr\\:\\[animation\\:skippr-fade-in_0\\.24s_cubic-bezier\\(0\\.22\\,1\\,0\\.36\\,1\\)\\]{animation:.24s cubic-bezier(.22,1,.36,1) skippr-fade-in}.skippr\\:\\[animation\\:skippr-fade-in_0\\.25s_ease\\]{animation:.25s skippr-fade-in}.skippr\\:\\[animation\\:skippr-fade-out_0\\.18s_ease-in_forwards\\]{animation:.18s ease-in forwards skippr-fade-out}.skippr\\:\\[animation\\:skippr-finger-tap_1\\.1s_ease-in-out_infinite\\]{animation:1.1s ease-in-out infinite skippr-finger-tap}.skippr\\:\\[animation\\:skippr-mote-rise_1\\.6s_ease-out_infinite\\]{animation:1.6s ease-out infinite skippr-mote-rise}.skippr\\:\\[animation\\:skippr-orb-in_320ms_cubic-bezier\\(0\\.34\\,1\\.3\\,0\\.64\\,1\\)\\]{animation:.32s cubic-bezier(.34,1.3,.64,1) skippr-orb-in}.skippr\\:\\[animation\\:skippr-pop_0\\.2s_ease\\]{animation:.2s skippr-pop}.skippr\\:\\[animation\\:skippr-stage-fade_240ms_ease-out\\]{animation:.24s ease-out skippr-stage-fade}.skippr\\:\\[animation\\:skippr-tip-in_360ms_cubic-bezier\\(0\\.34\\,1\\.3\\,0\\.64\\,1\\)\\]{animation:.36s cubic-bezier(.34,1.3,.64,1) skippr-tip-in}.skippr\\:\\[animation\\:skippr-tip-in_360ms_cubic-bezier\\(0\\.34\\,1\\.3\\,0\\.64\\,1\\)_backwards\\]{animation:.36s cubic-bezier(.34,1.3,.64,1) backwards skippr-tip-in}.skippr\\:\\[animation\\:skippr-toolset-pop_280ms_cubic-bezier\\(0\\.22\\,1\\,0\\.36\\,1\\)\\]{animation:.28s cubic-bezier(.22,1,.36,1) skippr-toolset-pop}.skippr\\:\\[animation\\:skippr-toolset-pop_440ms_cubic-bezier\\(0\\.22\\,1\\,0\\.36\\,1\\)\\]{animation:.44s cubic-bezier(.22,1,.36,1) skippr-toolset-pop}.skippr\\:animate-\\[skippr-banner-look_2\\.4s_ease-in-out_infinite\\]{animation:2.4s ease-in-out infinite skippr-banner-look}.skippr\\:animate-\\[skippr-bubble-in_0\\.28s_ease-out\\]{animation:.28s ease-out skippr-bubble-in}.skippr\\:animate-\\[skippr-fade-in_0\\.3s_ease-out\\]{animation:.3s ease-out skippr-fade-in}.skippr\\:animate-\\[skippr-pill-content_0\\.22s_ease-out\\]{animation:.22s ease-out skippr-pill-content}.skippr\\:animate-\\[skippr-speak_1\\.1s_ease-in-out_0\\.3s_infinite\\]{animation:1.1s ease-in-out .3s infinite skippr-speak}.skippr\\:animate-\\[skippr-speak_1\\.1s_ease-in-out_0\\.6s_infinite\\]{animation:1.1s ease-in-out .6s infinite skippr-speak}.skippr\\:animate-\\[skippr-speak_1\\.1s_ease-in-out_0\\.15s_infinite\\]{animation:1.1s ease-in-out .15s infinite skippr-speak}.skippr\\:animate-\\[skippr-speak_1\\.1s_ease-in-out_0\\.45s_infinite\\]{animation:1.1s ease-in-out .45s infinite skippr-speak}.skippr\\:animate-\\[skippr-speak_1\\.1s_ease-in-out_infinite\\]{animation:1.1s ease-in-out infinite skippr-speak}.skippr\\:animate-bounce{animation:var(--skippr-animate-bounce)}.skippr\\:animate-ping{animation:var(--skippr-animate-ping)}.skippr\\:animate-skippr-annotation-pulse{animation:1.8s ease-in-out infinite skippr-annotation-pulse}.skippr\\:animate-skippr-click-ping{animation:.5s ease-out forwards skippr-click-ping}.skippr\\:animate-skippr-cursor-pop{animation:.22s ease-out skippr-cursor-pop}.skippr\\:animate-skippr-flow{animation:3.6s linear infinite skippr-flow}.skippr\\:animate-skippr-press{animation:.5s ease-in-out skippr-press}.skippr\\:animate-skippr-ptt-transmit{animation:1.4s ease-out infinite skippr-ptt-transmit}.skippr\\:animate-skippr-rec-ring{animation:2s ease-out infinite skippr-rec-ring}.skippr\\:animate-skippr-tab-fade{animation:.2s ease-out skippr-tab-fade}.skippr\\:animate-skippr-thinking-dot{animation:1.2s ease-in-out infinite skippr-thinking-dot}.skippr\\:animate-skippr-voice-pulse{animation:1.6s ease-out infinite skippr-voice-pulse}.skippr\\:animate-spin{animation:var(--skippr-animate-spin)}.skippr\\:cursor-default{cursor:default}.skippr\\:cursor-grab{cursor:grab}.skippr\\:cursor-not-allowed{cursor:not-allowed}.skippr\\:cursor-pointer{cursor:pointer}.skippr\\:touch-none{touch-action:none}.skippr\\:resize-none{resize:none}.skippr\\:flex-col{flex-direction:column}.skippr\\:flex-col-reverse{flex-direction:column-reverse}.skippr\\:flex-row{flex-direction:row}.skippr\\:flex-row-reverse{flex-direction:row-reverse}.skippr\\:items-baseline{align-items:baseline}.skippr\\:items-center{align-items:center}.skippr\\:items-end{align-items:flex-end}.skippr\\:items-start{align-items:flex-start}.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\\.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-2\\.5{gap:calc(var(--skippr-spacing)*2.5)}.skippr\\:gap-3{gap:calc(var(--skippr-spacing)*3)}.skippr\\:gap-\\[1px\\]{gap:1px}.skippr\\:gap-\\[2px\\]{gap:2px}.skippr\\:gap-\\[3px\\]{gap:3px}.skippr\\:gap-\\[4px\\]{gap:4px}.skippr\\:gap-\\[5px\\]{gap:5px}.skippr\\:gap-\\[6px\\]{gap:6px}.skippr\\:gap-\\[7px\\]{gap:7px}.skippr\\:gap-\\[8px\\]{gap:8px}.skippr\\:gap-\\[9px\\]{gap:9px}:where(.skippr\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--skippr-spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--skippr-spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.skippr\\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--skippr-spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--skippr-spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.skippr\\:space-y-\\[6px\\]>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(6px*var(--tw-space-y-reverse));margin-block-end:calc(6px*calc(1 - var(--tw-space-y-reverse)))}.skippr\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.skippr\\:overflow-hidden{overflow:hidden}.skippr\\:overflow-visible{overflow:visible}.skippr\\:overflow-y-auto{overflow-y:auto}.skippr\\:overscroll-contain{overscroll-behavior:contain}.skippr\\:rounded{border-radius:.25rem}.skippr\\:rounded-2xl{border-radius:1.125rem}.skippr\\:rounded-\\[1rem\\]{border-radius:1rem}.skippr\\:rounded-\\[5px\\]{border-radius:5px}.skippr\\:rounded-\\[10px\\]{border-radius:10px}.skippr\\:rounded-\\[11px\\]{border-radius:11px}.skippr\\:rounded-\\[12px\\]{border-radius:12px}.skippr\\:rounded-\\[14px\\]{border-radius:14px}.skippr\\:rounded-\\[16px\\]{border-radius:16px}.skippr\\:rounded-\\[20px\\]{border-radius:20px}.skippr\\:rounded-full{border-radius:3.40282e38px}.skippr\\:rounded-md{border-radius:.5rem}.skippr\\:rounded-sm{border-radius:.375rem}.skippr\\:rounded-xl{border-radius:.875rem}.skippr\\:rounded-t-\\[6px\\]{border-top-left-radius:6px;border-top-right-radius:6px}.skippr\\:rounded-t-\\[18px\\]{border-top-left-radius:18px;border-top-right-radius:18px}.skippr\\:rounded-t-full{border-top-left-radius:3.40282e38px;border-top-right-radius:3.40282e38px}.skippr\\:rounded-l-\\[6px\\]{border-top-left-radius:6px;border-bottom-left-radius:6px}.skippr\\:rounded-l-\\[18px\\]{border-top-left-radius:18px;border-bottom-left-radius:18px}.skippr\\:rounded-l-full{border-top-left-radius:3.40282e38px;border-bottom-left-radius:3.40282e38px}.skippr\\:rounded-tl-\\[6px\\]{border-top-left-radius:6px}.skippr\\:rounded-tl-md{border-top-left-radius:.5rem}.skippr\\:rounded-r-\\[6px\\]{border-top-right-radius:6px;border-bottom-right-radius:6px}.skippr\\:rounded-r-\\[18px\\]{border-top-right-radius:18px;border-bottom-right-radius:18px}.skippr\\:rounded-r-full{border-top-right-radius:3.40282e38px;border-bottom-right-radius:3.40282e38px}.skippr\\:rounded-tr-\\[6px\\]{border-top-right-radius:6px}.skippr\\:rounded-b-\\[6px\\]{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.skippr\\:rounded-b-\\[18px\\]{border-bottom-right-radius:18px;border-bottom-left-radius:18px}.skippr\\:rounded-b-full{border-bottom-right-radius:3.40282e38px;border-bottom-left-radius:3.40282e38px}.skippr\\:rounded-bl-\\[6px\\]{border-bottom-left-radius:6px}.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-2{border-style:var(--tw-border-style);border-width:2px}.skippr\\:border-\\[2\\.5px\\]{border-style:var(--tw-border-style);border-width:2.5px}.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-none{--tw-border-style:none;border-style:none}.skippr\\:border-\\[\\#d8d3ca\\]{border-color:#d8d3ca}.skippr\\:border-\\[rgba\\(45\\,45\\,63\\,0\\.1\\)\\]{border-color:#2d2d3f1a}.skippr\\:border-\\[rgba\\(45\\,45\\,63\\,0\\.06\\)\\]{border-color:#2d2d3f0f}.skippr\\:border-\\[rgba\\(45\\,45\\,63\\,0\\.08\\)\\]{border-color:#2d2d3f14}.skippr\\:border-\\[rgba\\(45\\,45\\,63\\,0\\.12\\)\\]{border-color:#2d2d3f1f}.skippr\\:border-\\[rgba\\(45\\,45\\,63\\,0\\.14\\)\\]{border-color:#2d2d3f24}.skippr\\:border-\\[var\\(--skippr-brand-ring\\)\\]{border-color:var(--skippr-brand-ring)}.skippr\\:border-black\\/25{border-color:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:border-black\\/25{border-color:color-mix(in oklab,var(--skippr-color-black)25%,transparent)}}.skippr\\:border-border{border-color:oklch(92.3% .003 48.717)}.skippr\\:border-brand{border-color:var(--skippr-brand,#2bc0ae)}.skippr\\:border-input{border-color:oklch(92.3% .003 48.717)}.skippr\\:border-primary\\/20{border-color:var(--skippr-brand,#2d2b3d)}@supports (color:color-mix(in lab, red, red)){.skippr\\:border-primary\\/20{border-color:color-mix(in oklab,var(--skippr-brand,#2d2b3d)20%,transparent)}}.skippr\\:border-transparent{border-color:#0000}.skippr\\:border-white,.skippr\\:border-white\\/30{border-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:border-white\\/30{border-color:color-mix(in oklab,var(--skippr-color-white)30%,transparent)}}.skippr\\:border-t-brand{border-top-color:var(--skippr-brand,#2bc0ae)}.skippr\\:border-t-white{border-top-color:var(--skippr-color-white)}.skippr\\:border-r-border{border-right-color:oklch(92.3% .003 48.717)}.skippr\\:border-l-border{border-left-color:oklch(92.3% .003 48.717)}.skippr\\:bg-\\[\\#2D2D3F\\]{background-color:#2d2d3f}.skippr\\:bg-\\[\\#F1EFEA\\]{background-color:#f1efea}.skippr\\:bg-\\[\\#b9b4ab\\]{background-color:#b9b4ab}.skippr\\:bg-\\[\\#dc2626\\]{background-color:#dc2626}.skippr\\:bg-\\[\\#eeeae4\\]{background-color:#eeeae4}.skippr\\:bg-\\[\\#f2f0eb\\]{background-color:#f2f0eb}.skippr\\:bg-\\[\\#f4ecd8\\]{background-color:#f4ecd8}.skippr\\:bg-\\[\\#f4f2ee\\]{background-color:#f4f2ee}.skippr\\:bg-amber-50{background-color:var(--skippr-color-amber-50)}.skippr\\:bg-amber-400{background-color:var(--skippr-color-amber-400)}.skippr\\:bg-background{background-color:oklch(100% 0 0)}.skippr\\:bg-black\\/\\[0\\.07\\]{background-color:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-black\\/\\[0\\.07\\]{background-color:color-mix(in oklab,var(--skippr-color-black)7.0%,transparent)}}.skippr\\:bg-brand,.skippr\\:bg-brand\\/50{background-color:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-brand\\/50{background-color:color-mix(in oklab,var(--skippr-brand,#2bc0ae)50%,transparent)}}.skippr\\:bg-bubble{background-color:#2d2b3d}.skippr\\:bg-bubble\\/95{background-color:oklab(29.9244% .0107414 -.0305411/.95)}.skippr\\:bg-card{background-color:oklch(100% 0 0)}.skippr\\:bg-current{background-color:currentColor}.skippr\\:bg-destructive{background-color:#d94f4f}.skippr\\:bg-emerald-400{background-color:var(--skippr-color-emerald-400)}.skippr\\:bg-foreground{background-color:oklch(14.7% .004 49.25)}.skippr\\:bg-foreground\\/10{background-color:oklab(14.7% .00261104 .00303026/.1)}.skippr\\:bg-launcher{background-color:#2d2d3f}.skippr\\:bg-muted-foreground\\/40{background-color:oklab(55.3% .00687528 .0110332/.4)}.skippr\\:bg-neutral-100{background-color:var(--skippr-color-neutral-100)}.skippr\\:bg-primary,.skippr\\:bg-primary\\/10{background-color:var(--skippr-brand,#2d2b3d)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-primary\\/10{background-color:color-mix(in oklab,var(--skippr-brand,#2d2b3d)10%,transparent)}}.skippr\\:bg-red-50{background-color:var(--skippr-color-red-50)}.skippr\\:bg-red-100{background-color:var(--skippr-color-red-100)}.skippr\\:bg-red-500{background-color:var(--skippr-color-red-500)}.skippr\\:bg-secondary{background-color:#ffdfb5}.skippr\\:bg-transparent{background-color:#0000}.skippr\\:bg-white,.skippr\\:bg-white\\/40{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-white\\/40{background-color:color-mix(in oklab,var(--skippr-color-white)40%,transparent)}}.skippr\\:bg-white\\/70{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-white\\/70{background-color:color-mix(in oklab,var(--skippr-color-white)70%,transparent)}}.skippr\\:bg-white\\/80{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-white\\/80{background-color:color-mix(in oklab,var(--skippr-color-white)80%,transparent)}}.skippr\\:bg-white\\/95{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-white\\/95{background-color:color-mix(in oklab,var(--skippr-color-white)95%,transparent)}}.skippr\\:fill-brand{fill:var(--skippr-brand,#2bc0ae)}.skippr\\:fill-current{fill:currentColor}.skippr\\:fill-primary\\/30{fill:var(--skippr-brand,#2d2b3d)}@supports (color:color-mix(in lab, red, red)){.skippr\\:fill-primary\\/30{fill:color-mix(in oklab,var(--skippr-brand,#2d2b3d)30%,transparent)}}.skippr\\:fill-white{fill:var(--skippr-color-white)}.skippr\\:stroke-black\\/15{stroke:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:stroke-black\\/15{stroke:color-mix(in oklab,var(--skippr-color-black)15%,transparent)}}.skippr\\:stroke-bubble{stroke:#2d2b3d}.skippr\\:object-cover{object-fit:cover}.skippr\\:p-0{padding:calc(var(--skippr-spacing)*0)}.skippr\\:p-1\\.5{padding:calc(var(--skippr-spacing)*1.5)}.skippr\\:p-2{padding:calc(var(--skippr-spacing)*2)}.skippr\\:p-3{padding:calc(var(--skippr-spacing)*3)}.skippr\\:p-3\\.5{padding:calc(var(--skippr-spacing)*3.5)}.skippr\\:p-4{padding:calc(var(--skippr-spacing)*4)}.skippr\\:p-\\[2px\\]{padding:2px}.skippr\\:p-\\[3px\\]{padding:3px}.skippr\\:p-\\[9px\\]{padding:9px}.skippr\\:p-\\[14px\\]{padding:14px}.skippr\\:px-1{padding-inline:calc(var(--skippr-spacing)*1)}.skippr\\:px-1\\.5{padding-inline:calc(var(--skippr-spacing)*1.5)}.skippr\\:px-2{padding-inline:calc(var(--skippr-spacing)*2)}.skippr\\:px-2\\.5{padding-inline:calc(var(--skippr-spacing)*2.5)}.skippr\\:px-3{padding-inline:calc(var(--skippr-spacing)*3)}.skippr\\:px-3\\.5{padding-inline:calc(var(--skippr-spacing)*3.5)}.skippr\\:px-4{padding-inline:calc(var(--skippr-spacing)*4)}.skippr\\:px-6{padding-inline:calc(var(--skippr-spacing)*6)}.skippr\\:px-8{padding-inline:calc(var(--skippr-spacing)*8)}.skippr\\:px-\\[5px\\]{padding-inline:5px}.skippr\\:px-\\[7px\\]{padding-inline:7px}.skippr\\:px-\\[8px\\]{padding-inline:8px}.skippr\\:px-\\[9px\\]{padding-inline:9px}.skippr\\:px-\\[10px\\]{padding-inline:10px}.skippr\\:px-\\[11px\\]{padding-inline:11px}.skippr\\:px-\\[12px\\]{padding-inline:12px}.skippr\\:py-0\\.5{padding-block:calc(var(--skippr-spacing)*.5)}.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\\:py-6{padding-block:calc(var(--skippr-spacing)*6)}.skippr\\:py-\\[1px\\]{padding-block:1px}.skippr\\:py-\\[3px\\]{padding-block:3px}.skippr\\:py-\\[4px\\]{padding-block:4px}.skippr\\:py-\\[5px\\]{padding-block:5px}.skippr\\:py-\\[6px\\]{padding-block:6px}.skippr\\:py-\\[7px\\]{padding-block:7px}.skippr\\:pt-1{padding-top:calc(var(--skippr-spacing)*1)}.skippr\\:pt-\\[8px\\]{padding-top:8px}.skippr\\:pt-\\[9px\\]{padding-top:9px}.skippr\\:pt-\\[10px\\]{padding-top:10px}.skippr\\:pr-2\\.5{padding-right:calc(var(--skippr-spacing)*2.5)}.skippr\\:pr-3{padding-right:calc(var(--skippr-spacing)*3)}.skippr\\:pr-\\[5px\\]{padding-right:5px}.skippr\\:pr-\\[6px\\]{padding-right:6px}.skippr\\:pr-\\[9px\\]{padding-right:9px}.skippr\\:pr-\\[10px\\]{padding-right:10px}.skippr\\:pb-0\\.5{padding-bottom:calc(var(--skippr-spacing)*.5)}.skippr\\:pb-1{padding-bottom:calc(var(--skippr-spacing)*1)}.skippr\\:pb-4{padding-bottom:calc(var(--skippr-spacing)*4)}.skippr\\:pb-\\[8px\\]{padding-bottom:8px}.skippr\\:pb-\\[10px\\]{padding-bottom:10px}.skippr\\:pl-1\\.5{padding-left:calc(var(--skippr-spacing)*1.5)}.skippr\\:pl-2\\.5{padding-left:calc(var(--skippr-spacing)*2.5)}.skippr\\:pl-3\\.5{padding-left:calc(var(--skippr-spacing)*3.5)}.skippr\\:pl-\\[9px\\]{padding-left:9px}.skippr\\:pl-\\[13px\\]{padding-left:13px}.skippr\\:text-center{text-align:center}.skippr\\:text-left{text-align:left}.skippr\\:font-mono{font-family:var(--skippr-font-mono)}.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\\:text-\\[8\\.5px\\]{font-size:8.5px}.skippr\\:text-\\[9\\.5px\\]{font-size:9.5px}.skippr\\:text-\\[9px\\]{font-size:9px}.skippr\\:text-\\[10\\.5px\\]{font-size:10.5px}.skippr\\:text-\\[10px\\]{font-size:10px}.skippr\\:text-\\[11\\.5px\\]{font-size:11.5px}.skippr\\:text-\\[11px\\]{font-size:11px}.skippr\\:text-\\[12\\.5px\\]{font-size:12.5px}.skippr\\:text-\\[12px\\]{font-size:12px}.skippr\\:text-\\[13px\\]{font-size:13px}.skippr\\:leading-5{--tw-leading:calc(var(--skippr-spacing)*5);line-height:calc(var(--skippr-spacing)*5)}.skippr\\:leading-\\[1\\.2\\]{--tw-leading:1.2;line-height:1.2}.skippr\\:leading-\\[1\\.25\\]{--tw-leading:1.25;line-height:1.25}.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\\:leading-snug{--tw-leading:var(--skippr-leading-snug);line-height:var(--skippr-leading-snug)}.skippr\\:font-bold{--tw-font-weight:var(--skippr-font-weight-bold);font-weight:var(--skippr-font-weight-bold)}.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-\\[-0\\.01em\\]{--tw-tracking:-.01em;letter-spacing:-.01em}.skippr\\:tracking-\\[0\\.02em\\]{--tw-tracking:.02em;letter-spacing:.02em}.skippr\\:tracking-\\[0\\.05em\\]{--tw-tracking:.05em;letter-spacing:.05em}.skippr\\:whitespace-nowrap{white-space:nowrap}.skippr\\:text-\\[\\#2D2D3F\\]{color:#2d2d3f}.skippr\\:text-\\[\\#5a5650\\]{color:#5a5650}.skippr\\:text-\\[\\#5c5850\\]{color:#5c5850}.skippr\\:text-\\[\\#6b6660\\]{color:#6b6660}.skippr\\:text-\\[\\#8b877f\\]{color:#8b877f}.skippr\\:text-\\[\\#92400e\\]{color:#92400e}.skippr\\:text-\\[\\#a8a49c\\]{color:#a8a49c}.skippr\\:text-\\[\\#b8b4ac\\]{color:#b8b4ac}.skippr\\:text-\\[\\#c9c5bd\\]{color:#c9c5bd}.skippr\\:text-\\[\\#cbc7bf\\]{color:#cbc7bf}.skippr\\:text-\\[\\#dc2626\\]{color:#dc2626}.skippr\\:text-\\[var\\(--skippr-brand-deep\\)\\]{color:var(--skippr-brand-deep)}.skippr\\:text-amber-700{color:var(--skippr-color-amber-700)}.skippr\\:text-amber-950{color:var(--skippr-color-amber-950)}.skippr\\:text-background{color:oklch(100% 0 0)}.skippr\\:text-black,.skippr\\:text-black\\/40{color:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:text-black\\/40{color:color-mix(in oklab,var(--skippr-color-black)40%,transparent)}}.skippr\\:text-brand{color:var(--skippr-brand,#2bc0ae)}.skippr\\:text-bubble{color:#2d2b3d}.skippr\\:text-chart-3{color:oklch(66.6% .179 58.318)}.skippr\\:text-destructive{color:#d94f4f}.skippr\\:text-foreground{color:oklch(14.7% .004 49.25)}.skippr\\:text-muted-foreground{color:oklch(55.3% .013 58.071)}.skippr\\:text-muted-foreground\\/30{color:oklab(55.3% .00687528 .0110332/.3)}.skippr\\:text-muted-foreground\\/60{color:oklab(55.3% .00687528 .0110332/.6)}.skippr\\:text-neutral-500{color:var(--skippr-color-neutral-500)}.skippr\\:text-neutral-700{color:var(--skippr-color-neutral-700)}.skippr\\:text-primary{color:var(--skippr-brand,#2d2b3d)}.skippr\\:text-primary-foreground{color:var(--skippr-brand-foreground,#fff)}.skippr\\:text-red-400{color:var(--skippr-color-red-400)}.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:#613700}.skippr\\:text-white,.skippr\\:text-white\\/60{color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:text-white\\/60{color:color-mix(in oklab,var(--skippr-color-white)60%,transparent)}}.skippr\\:capitalize{text-transform:capitalize}.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\\:underline{text-decoration-line:underline}.skippr\\:decoration-muted-foreground\\/40{text-decoration-color:oklab(55.3% .00687528 .0110332/.4)}.skippr\\:underline-offset-2,.skippr\\:underline-offset-\\[2px\\]{text-underline-offset:2px}.skippr\\:placeholder-muted-foreground::placeholder{color:oklch(55.3% .013 58.071)}.skippr\\:opacity-0{opacity:0}.skippr\\:opacity-40{opacity:.4}.skippr\\:opacity-75{opacity:.75}.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-\\[-3px_0_14px_var\\(--skippr-brand-halo\\)\\]{--tw-shadow:-3px 0 14px var(--tw-shadow-color,var(--skippr-brand-halo));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-\\[-4px_6px_18px_rgba\\(45\\,45\\,63\\,0\\.16\\)\\]{--tw-shadow:-4px 6px 18px var(--tw-shadow-color,#2d2d3f29);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-\\[-6px_8px_30px_rgba\\(15\\,18\\,26\\,0\\.32\\)\\]{--tw-shadow:-6px 8px 30px var(--tw-shadow-color,#0f121a52);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-\\[0_-3px_14px_var\\(--skippr-brand-halo\\)\\]{--tw-shadow:0 -3px 14px var(--tw-shadow-color,var(--skippr-brand-halo));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-\\[0_-6px_18px_rgba\\(45\\,45\\,63\\,0\\.16\\)\\]{--tw-shadow:0 -6px 18px var(--tw-shadow-color,#2d2d3f29);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-\\[0_0_0_1\\.5px_rgba\\(255\\,255\\,255\\,0\\.85\\)\\]{--tw-shadow:0 0 0 1.5px var(--tw-shadow-color,#ffffffd9);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-\\[0_0_0_4px_var\\(--skippr-brand-ring\\)\\]{--tw-shadow:0 0 0 4px var(--tw-shadow-color,var(--skippr-brand-ring));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-\\[0_1px_2px_rgba\\(45\\,45\\,63\\,0\\.05\\)\\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#2d2d3f0d);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-\\[0_1px_2px_rgba\\(45\\,45\\,63\\,0\\.08\\)\\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#2d2d3f14);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-\\[0_2px_6px_rgba\\(0\\,0\\,0\\,0\\.28\\)\\]{--tw-shadow:0 2px 6px var(--tw-shadow-color,#00000047);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-\\[0_2px_6px_rgba\\(45\\,45\\,63\\,0\\.14\\)\\]{--tw-shadow:0 2px 6px var(--tw-shadow-color,#2d2d3f24);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-\\[0_3px_14px_var\\(--skippr-brand-halo\\)\\]{--tw-shadow:0 3px 14px var(--tw-shadow-color,var(--skippr-brand-halo));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-\\[0_4px_12px_rgba\\(0\\,0\\,0\\,0\\.12\\)\\]{--tw-shadow:0 4px 12px var(--tw-shadow-color,#0000001f);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-\\[0_4px_12px_rgba\\(45\\,45\\,63\\,0\\.1\\)\\]{--tw-shadow:0 4px 12px var(--tw-shadow-color,#2d2d3f1a);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-\\[0_4px_14px_rgba\\(0\\,0\\,0\\,0\\.12\\)\\]{--tw-shadow:0 4px 14px var(--tw-shadow-color,#0000001f);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-\\[0_4px_14px_rgba\\(239\\,68\\,68\\,0\\.45\\)\\]{--tw-shadow:0 4px 14px var(--tw-shadow-color,#ef444473);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-\\[0_4px_16px_rgba\\(45\\,43\\,61\\,0\\.45\\)\\,0_2px_4px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\]{--tw-shadow:0 4px 16px var(--tw-shadow-color,#2d2b3d73),0 2px 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-\\[0_6px_16px_rgba\\(45\\,45\\,63\\,0\\.14\\)\\]{--tw-shadow:0 6px 16px var(--tw-shadow-color,#2d2d3f24);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-\\[0_6px_18px_rgba\\(45\\,45\\,63\\,0\\.16\\)\\]{--tw-shadow:0 6px 18px var(--tw-shadow-color,#2d2d3f29);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-\\[0_8px_22px_rgba\\(45\\,45\\,63\\,0\\.12\\)\\,0_1px_3px_rgba\\(45\\,45\\,63\\,0\\.04\\)\\]{--tw-shadow:0 8px 22px var(--tw-shadow-color,#2d2d3f1f),0 1px 3px var(--tw-shadow-color,#2d2d3f0a);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-\\[0_8px_24px_rgba\\(0\\,0\\,0\\,0\\.18\\)\\]{--tw-shadow:0 8px 24px var(--tw-shadow-color,#0000002e);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-\\[0_8px_24px_rgba\\(45\\,43\\,61\\,0\\.35\\)\\]{--tw-shadow:0 8px 24px var(--tw-shadow-color,#2d2b3d59);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-\\[0_8px_30px_rgba\\(45\\,45\\,63\\,0\\.14\\)\\,0_2px_6px_rgba\\(45\\,45\\,63\\,0\\.06\\)\\]{--tw-shadow:0 8px 30px var(--tw-shadow-color,#2d2d3f24),0 2px 6px var(--tw-shadow-color,#2d2d3f0f);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-\\[0_10px_26px_rgba\\(45\\,45\\,63\\,0\\.13\\)\\,0_2px_6px_rgba\\(45\\,45\\,63\\,0\\.05\\)\\]{--tw-shadow:0 10px 26px var(--tw-shadow-color,#2d2d3f21),0 2px 6px var(--tw-shadow-color,#2d2d3f0d);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-\\[0_10px_28px_rgba\\(45\\,45\\,63\\,0\\.16\\)\\]{--tw-shadow:0 10px 28px var(--tw-shadow-color,#2d2d3f29);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-\\[0_10px_30px_rgba\\(45\\,45\\,63\\,0\\.14\\)\\,0_0_0_1\\.5px_var\\(--skippr-brand-ring\\)\\]{--tw-shadow:0 10px 30px var(--tw-shadow-color,#2d2d3f24),0 0 0 1.5px var(--tw-shadow-color,var(--skippr-brand-ring));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-\\[0_10px_32px_rgba\\(0\\,0\\,0\\,0\\.18\\)\\]{--tw-shadow:0 10px 32px var(--tw-shadow-color,#0000002e);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-\\[0_14px_34px_rgba\\(45\\,45\\,63\\,0\\.15\\)\\,0_2px_6px_rgba\\(45\\,45\\,63\\,0\\.06\\)\\]{--tw-shadow:0 14px 34px var(--tw-shadow-color,#2d2d3f26),0 2px 6px var(--tw-shadow-color,#2d2d3f0f);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-\\[3px_0_14px_var\\(--skippr-brand-halo\\)\\]{--tw-shadow:3px 0 14px var(--tw-shadow-color,var(--skippr-brand-halo));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-\\[4px_6px_18px_rgba\\(45\\,45\\,63\\,0\\.16\\)\\]{--tw-shadow:4px 6px 18px var(--tw-shadow-color,#2d2d3f29);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-\\[inset_0_0_0_1\\.5px_var\\(--skippr-brand\\,\\#2bc0ae\\)\\]{--tw-shadow:inset 0 0 0 1.5px var(--tw-shadow-color,var(--skippr-brand,#2bc0ae));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-inner{--tw-shadow:inset 0 2px 4px 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\\: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-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px 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-1{--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\\:ring-2{--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\\:ring-black\\/5{--tw-ring-color:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:ring-black\\/5{--tw-ring-color:color-mix(in oklab,var(--skippr-color-black)5%,transparent)}}.skippr\\:ring-brand{--tw-ring-color:var(--skippr-brand,#2bc0ae)}.skippr\\:ring-white\\/15{--tw-ring-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:ring-white\\/15{--tw-ring-color:color-mix(in oklab,var(--skippr-color-white)15%,transparent)}}.skippr\\:ring-offset-background{--tw-ring-offset-color:oklch(100% 0 0)}.skippr\\:drop-shadow-\\[0_2px_5px_rgba\\(0\\,0\\,0\\,0\\.4\\)\\]{--tw-drop-shadow-size:drop-shadow(0 2px 5px var(--tw-drop-shadow-color,#0006));--tw-drop-shadow:var(--tw-drop-shadow-size);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\\:backdrop-blur-sm{--tw-backdrop-blur:blur(var(--skippr-blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.skippr\\:transition-\\[filter\\]{transition-property:filter;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-\\[gap\\]{transition-property:gap;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-\\[height\\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-\\[left\\]{transition-property:left;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\\,transform\\,height\\]{transition-property:opacity,transform,height;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\\,height\\,background-color\\,border-color\\]{transition-property:width,height,background-color,border-color;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\\,margin\\]{transition-property:width,margin;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\\:transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:duration-75{--tw-duration:75ms;transition-duration:75ms}.skippr\\:duration-100{--tw-duration:.1s;transition-duration:.1s}.skippr\\:duration-150{--tw-duration:.15s;transition-duration:.15s}.skippr\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.skippr\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.skippr\\:duration-\\[400ms\\]{--tw-duration:.4s;transition-duration:.4s}.skippr\\:ease-\\[cubic-bezier\\(0\\.22\\,1\\,0\\.36\\,1\\)\\]{--tw-ease:cubic-bezier(.22,1,.36,1);transition-timing-function:cubic-bezier(.22,1,.36,1)}.skippr\\:ease-\\[cubic-bezier\\(0\\.34\\,1\\.3\\,0\\.64\\,1\\)\\]{--tw-ease:cubic-bezier(.34,1.3,.64,1);transition-timing-function:cubic-bezier(.34,1.3,.64,1)}.skippr\\:ease-\\[cubic-bezier\\(0\\.34\\,1\\.56\\,0\\.64\\,1\\)\\]{--tw-ease:cubic-bezier(.34,1.56,.64,1);transition-timing-function:cubic-bezier(.34,1.56,.64,1)}.skippr\\:ease-in-out{--tw-ease:var(--skippr-ease-in-out);transition-timing-function:var(--skippr-ease-in-out)}.skippr\\:ease-out{--tw-ease:var(--skippr-ease-out);transition-timing-function:var(--skippr-ease-out)}.skippr\\:outline-none{--tw-outline-style:none;outline-style:none}.skippr\\:select-none{-webkit-user-select:none;user-select:none}.skippr\\:\\[animation-delay\\:0ms\\]{animation-delay:0s}.skippr\\:\\[animation-delay\\:150ms\\]{animation-delay:.15s}.skippr\\:\\[animation-delay\\:200ms\\]{animation-delay:.2s}.skippr\\:\\[animation-delay\\:300ms\\]{animation-delay:.3s}.skippr\\:\\[animation-delay\\:400ms\\]{animation-delay:.4s}.skippr\\:\\[overflow-anchor\\:none\\]{overflow-anchor:none}.skippr\\:group-focus-within\\:scale-100:is(:where(.skippr\\:group):focus-within *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:group-focus-within\\:opacity-100:is(:where(.skippr\\:group):focus-within *){opacity:1}@media (hover:hover){.skippr\\:group-hover\\:scale-100:is(:where(.skippr\\:group):hover *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:group-hover\\:text-red-300:is(:where(.skippr\\:group):hover *){color:var(--skippr-color-red-300)}.skippr\\:group-hover\\:text-white\\/80:is(:where(.skippr\\:group):hover *){color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:group-hover\\:text-white\\/80:is(:where(.skippr\\:group):hover *){color:color-mix(in oklab,var(--skippr-color-white)80%,transparent)}}.skippr\\:group-hover\\:opacity-100:is(:where(.skippr\\:group):hover *){opacity:1}}.skippr\\:placeholder\\:text-\\[\\#b0aca4\\]::placeholder{color:#b0aca4}@media (hover:hover){.skippr\\:hover\\:-translate-y-0\\.5:hover{--tw-translate-y:calc(var(--skippr-spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:hover\\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:hover\\:bg-\\[\\#3a384b\\]:hover{background-color:#3a384b}.skippr\\:hover\\:bg-\\[\\#3d3d52\\]:hover{background-color:#3d3d52}.skippr\\:hover\\:bg-\\[\\#f2f0eb\\]:hover{background-color:#f2f0eb}.skippr\\:hover\\:bg-\\[\\#f4f2ee\\]:hover{background-color:#f4f2ee}.skippr\\:hover\\:bg-\\[\\#f6f4f0\\]:hover{background-color:#f6f4f0}.skippr\\:hover\\:bg-accent:hover{background-color:#e7e5e4}.skippr\\:hover\\:bg-amber-100:hover{background-color:var(--skippr-color-amber-100)}.skippr\\:hover\\:bg-bubble:hover{background-color:#2d2b3d}.skippr\\:hover\\:bg-destructive\\/90:hover{background-color:oklab(61.4357% .15892 .0698893/.9)}.skippr\\:hover\\:bg-foreground\\/8:hover{background-color:oklab(14.7% .00261104 .00303026/.08)}.skippr\\:hover\\:bg-muted:hover{background-color:oklch(97% .001 106.424)}.skippr\\:hover\\:bg-neutral-100:hover{background-color:var(--skippr-color-neutral-100)}.skippr\\:hover\\:bg-neutral-200:hover{background-color:var(--skippr-color-neutral-200)}.skippr\\:hover\\:bg-primary\\/90:hover{background-color:var(--skippr-brand,#2d2b3d)}@supports (color:color-mix(in lab, red, red)){.skippr\\:hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab,var(--skippr-brand,#2d2b3d)90%,transparent)}}.skippr\\:hover\\:bg-red-200:hover{background-color:var(--skippr-color-red-200)}.skippr\\:hover\\:bg-red-600:hover{background-color:var(--skippr-color-red-600)}.skippr\\:hover\\:bg-secondary\\/80:hover{background-color:oklab(91.9963% .0175391 .0626889/.8)}.skippr\\:hover\\:bg-transparent:hover{background-color:#0000}.skippr\\:hover\\:bg-white\\/20:hover{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:hover\\:bg-white\\/20:hover{background-color:color-mix(in oklab,var(--skippr-color-white)20%,transparent)}}.skippr\\:hover\\:text-\\[\\#2D2D3F\\]:hover{color:#2d2d3f}.skippr\\:hover\\:text-\\[\\#5a5650\\]:hover{color:#5a5650}.skippr\\:hover\\:text-\\[\\#8b877f\\]:hover{color:#8b877f}.skippr\\:hover\\:text-\\[\\#b8b4ac\\]:hover{color:#b8b4ac}.skippr\\:hover\\:text-accent-foreground:hover{color:oklch(21.6% .006 56.043)}.skippr\\:hover\\:text-foreground:hover{color:oklch(14.7% .004 49.25)}.skippr\\:hover\\:decoration-muted-foreground:hover{text-decoration-color:oklch(55.3% .013 58.071)}.skippr\\:hover\\:opacity-80:hover{opacity:.8}.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\\:hover\\:brightness-\\[1\\.04\\]:hover{--tw-brightness:brightness(1.04);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\\:hover\\:brightness-\\[1\\.06\\]:hover{--tw-brightness:brightness(1.06);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\\:border-primary:focus{border-color:var(--skippr-brand,#2d2b3d)}.skippr\\:focus\\:ring-2:focus{--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\\:ring-primary\\/30:focus{--tw-ring-color:var(--skippr-brand,#2d2b3d)}@supports (color:color-mix(in lab, red, red)){.skippr\\:focus\\:ring-primary\\/30:focus{--tw-ring-color:color-mix(in oklab,var(--skippr-brand,#2d2b3d)30%,transparent)}}.skippr\\:focus-visible\\:border-\\[var\\(--skippr-brand-ring\\)\\]:focus-visible{border-color:var(--skippr-brand-ring)}.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-\\[var\\(--skippr-brand-ring\\)\\]:focus-visible{--tw-ring-color:var(--skippr-brand-ring)}.skippr\\:focus-visible\\:ring-bubble\\/60:focus-visible{--tw-ring-color:oklab(29.9244% .0107414 -.0305411/.6)}.skippr\\:focus-visible\\:ring-ring:focus-visible{--tw-ring-color:oklch(70.9% .01 56.259)}.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-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.skippr\\:focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.skippr\\:focus-visible\\:outline-\\[var\\(--skippr-brand\\)\\]:focus-visible{outline-color:var(--skippr-brand)}.skippr\\:focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.skippr\\:active\\:translate-y-0:active{--tw-translate-y:calc(var(--skippr-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:active\\:scale-\\[0\\.98\\]:active{scale:.98}.skippr\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.skippr\\:disabled\\:cursor-default:disabled{cursor:default}.skippr\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.skippr\\:disabled\\:opacity-50:disabled{opacity:.5}.skippr\\:disabled\\:opacity-60:disabled{opacity:.6}.skippr\\:disabled\\:opacity-80:disabled{opacity:.8}@media (hover:hover){.skippr\\:disabled\\:hover\\:bg-\\[\\#2D2D3F\\]:disabled:hover{background-color:#2d2d3f}.skippr\\:disabled\\:hover\\:bg-white:disabled:hover{background-color:var(--skippr-color-white)}}@media (prefers-reduced-motion:reduce){.skippr\\:motion-reduce\\:hidden{display:none}.skippr\\:motion-reduce\\:scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:motion-reduce\\:animate-none{animation:none}}.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)}}:host{--skippr-brand-active:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){:host{--skippr-brand-active:color-mix(in srgb,var(--skippr-brand,#2bc0ae)93%,#000)}}:host{--skippr-brand-deep:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){:host{--skippr-brand-deep:color-mix(in srgb,var(--skippr-brand,#2bc0ae)78%,#000)}}:host{--skippr-brand-ring:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){:host{--skippr-brand-ring:color-mix(in srgb,var(--skippr-brand,#2bc0ae)22%,transparent)}}:host{--skippr-brand-halo:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){:host{--skippr-brand-halo:color-mix(in srgb,var(--skippr-brand,#2bc0ae)40%,transparent)}}:host{--skippr-brand-glow:linear-gradient(90deg,var(--skippr-brand,#2bc0ae),var(--skippr-brand,#2bc0ae),var(--skippr-brand,#2bc0ae),var(--skippr-brand,#2bc0ae),var(--skippr-brand,#2bc0ae))}@supports (color:color-mix(in lab, red, red)){:host{--skippr-brand-glow:linear-gradient(90deg,var(--skippr-brand,#2bc0ae),color-mix(in srgb,var(--skippr-brand,#2bc0ae)55%,#fff),color-mix(in srgb,var(--skippr-brand,#2bc0ae)72%,#fff),var(--skippr-brand,#2bc0ae),color-mix(in srgb,var(--skippr-brand,#2bc0ae)42%,#fff))}}@keyframes skippr-tap{0%{transform:scale(1)}45%{transform:scale(.7)}to{transform:scale(1)}}@keyframes skippr-press{0%{transform:scale(1)}55%{transform:scale(1)}85%{transform:scale(.68)}to{transform:scale(1)}}@keyframes skippr-cursor-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes skippr-click-ping{0%{opacity:.9;transform:translate(-50%,-50%)scale(.4)}to{opacity:0;transform:translate(-50%,-50%)scale(2.4)}}@keyframes skippr-tab-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes skippr-speak{0%,to{opacity:.6;transform:scaleY(.4)}50%{opacity:1;transform:scaleY(1)}}@keyframes skippr-thinking-dot{0%,80%,to{opacity:.2;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}@keyframes skippr-pulse-ring{0%,to{box-shadow:0 0 #2d2b3d66}50%{box-shadow:0 0 0 10px #2d2b3d00}}@keyframes skippr-rec-ring{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--skippr-brand,#2bc0ae)55%,transparent)}70%{box-shadow:0 0 0 11px #0000}to{box-shadow:0 0 #0000}}@keyframes skippr-voice-pulse{0%{box-shadow:0 0 0 0 var(--skippr-pulse-color,#2bc0ae80)}70%{box-shadow:0 0 0 8px #0000}to{box-shadow:0 0 #0000}}@keyframes skippr-ptt-transmit{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--skippr-brand,#2bc0ae)60%,transparent),0 0 0 0 color-mix(in srgb,var(--skippr-brand,#2bc0ae)35%,transparent)}70%{box-shadow:0 0 0 9px #0000,0 0 0 16px #0000}to{box-shadow:0 0 #0000,0 0 #0000}}@keyframes skippr-annotation-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb,var(--skippr-brand,#2bc0ae)50%,transparent)}50%{box-shadow:0 0 0 6px #0000}}@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)}}@keyframes skippr-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes skippr-evaporate{0%{opacity:1;filter:blur();transform:translateY(0)scale(1)}55%{opacity:.85;filter:blur()}to{opacity:0;filter:blur(2.5px);transform:translateY(-7px)scale(.965)}}@keyframes skippr-mote-rise{0%{opacity:0;transform:translateY(2px)scale(.5)}25%{opacity:.85}to{opacity:0;transform:translateY(-24px)scale(1)}}@keyframes skippr-flow{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes skippr-wave{0%,to{opacity:.4;transform:scaleY(.4)}50%{opacity:1;transform:scaleY(1)}}@keyframes skippr-bubble-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes skippr-tip-in{0%{opacity:0;transform:translateY(14px)scale(.96)}60%{opacity:1;transform:translateY(-2px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes skippr-pill-content{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes skippr-banner-look{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}@keyframes skippr-finger-tap{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(2px)rotate(-6deg)}}@keyframes skippr-toolset-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes skippr-stage-fade{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes skippr-agent-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes skippr-orb-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes skippr-pop{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:none}}@keyframes skippr-blink{0%,40%{transform:scaleY(1)}41.3%,42%{transform:scaleY(.08)}43.3%,70%{transform:scaleY(1)}71.3%,72%{transform:scaleY(.08)}73.3%,to{transform:scaleY(1)}}.skippr-buddy-blink{transform-box:fill-box;transform-origin:50%;animation:5s linear infinite skippr-blink}@keyframes skippr-avatar-eyes-bob{0%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(0)}18%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(24px)}33.33%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(-30px)}48%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(-7px)}64%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(-30px)}82%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(31px)}96%,to{transform:translateY(0)}}@keyframes skippr-avatar-pupil-glance{0%,21.33%{transform:translate(0)}28%,68%{transform:translate(-30px)}74%,to{transform:translate(0)}}@keyframes skippr-avatar-body-vibe{0%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1)}17.67%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1.08,.95)}33.67%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1)}49.67%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1.08,.95)}65.67%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1)}81.67%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1.08,.95)}96%,to{transform:scale(1)}}@keyframes skippr-avatar-blink{0%,40%{transform:scaleY(1)}41.3%,42%{transform:scaleY(.08)}43.3%,70%{transform:scaleY(1)}71.3%,72%{transform:scaleY(.08)}73.3%,to{transform:scaleY(1)}}@keyframes skippr-avatar-bub-tail-drift{0%,10%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translate(0)}45%,60%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translate(-24px)}95%,to{transform:translate(0)}}@keyframes skippr-avatar-antenna-shake{0%,to{transform:rotate(-4deg)}25%{transform:rotate(4deg)}50%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}.skippr-avatar-eyes{animation:5s infinite skippr-avatar-eyes-bob}.skippr-avatar-pupil{animation:5s linear infinite skippr-avatar-pupil-glance}.skippr-avatar-body{transform-box:fill-box;transform-origin:50% 100%;animation:5s infinite skippr-avatar-body-vibe}.skippr-avatar-blink{transform-box:fill-box;transform-origin:50%;animation:5s infinite skippr-avatar-blink}.skippr-avatar-body .skippr-avatar-antenna{transform-box:view-box;transform-origin:48px 22px;animation:1.6s ease-in-out infinite skippr-avatar-antenna-shake}.skippr-avatar-body .skippr-avatar-bub-tail{animation:5s infinite skippr-avatar-bub-tail-drift}@keyframes skippr-buddy-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes skippr-buddy-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes skippr-buddy-pop{0%{transform:scale(1)}50%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes skippr-buddy-sleep{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(1px)scale(.995)}}@keyframes skippr-buddy-zfloat{0%{opacity:0;transform:translateY(0)}20%{opacity:1}to{opacity:0;transform:translateY(-10px)}}@keyframes skippr-peek-left{0%,20%{transform:translate(-58%)}46%,66%{transform:translate(0)}92%,to{transform:translate(-58%)}}@keyframes skippr-peek-right{0%,20%{transform:translate(58%)}46%,66%{transform:translate(0)}92%,to{transform:translate(58%)}}@keyframes skippr-peek-top{0%,20%{transform:translateY(-58%)}46%,66%{transform:translateY(0)}92%,to{transform:translateY(-58%)}}@keyframes skippr-peek-bottom{0%,20%{transform:translateY(58%)}46%,66%{transform:translateY(0)}92%,to{transform:translateY(58%)}}.skippr-peek-left{animation:3.6s ease-in-out infinite skippr-peek-left}.skippr-peek-right{animation:3.6s ease-in-out infinite skippr-peek-right}.skippr-peek-top{animation:3.6s ease-in-out infinite skippr-peek-top}.skippr-peek-bottom{animation:3.6s ease-in-out infinite skippr-peek-bottom}.skippr-peek-out{animation:none;transform:none}@keyframes skippr-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(4px)}}@keyframes skippr-block-reveal{0%{opacity:0;max-height:0;transform:translateY(-4px)}55%{opacity:1}to{opacity:1;max-height:260px;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.skippr-buddy-blink,[style*=skippr-blink],[style*=skippr-buddy-bob],[style*=skippr-buddy-breathe],[style*=skippr-buddy-pop],[style*=skippr-buddy-sleep],[style*=skippr-buddy-zfloat],.skippr-avatar-eyes,.skippr-avatar-pupil,.skippr-avatar-body,.skippr-avatar-blink,.skippr-avatar-body .skippr-avatar-antenna,.skippr-avatar-body .skippr-avatar-bub-tail,.skippr-peek-left,.skippr-peek-right,.skippr-peek-top,.skippr-peek-bottom{animation-play-state:paused}}.skippr-no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.skippr-no-scrollbar::-webkit-scrollbar{display:none}:host{color:var(--color-foreground)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@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-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}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@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}}`;
|
|
8257
|
+
@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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-y-reverse:0;--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-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;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-outline-style:solid}}}@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-100:oklch(93.6% .032 17.717);--skippr-color-red-200:oklch(88.5% .062 18.334);--skippr-color-red-300:oklch(80.8% .114 19.571);--skippr-color-red-400:oklch(70.4% .191 22.216);--skippr-color-red-500:oklch(63.7% .237 25.331);--skippr-color-red-600:oklch(57.7% .245 27.325);--skippr-color-red-700:oklch(50.5% .213 27.518);--skippr-color-amber-50:oklch(98.7% .022 95.277);--skippr-color-amber-100:oklch(96.2% .059 95.617);--skippr-color-amber-400:oklch(82.8% .189 84.429);--skippr-color-amber-700:oklch(55.5% .163 48.998);--skippr-color-amber-950:oklch(27.9% .077 45.635);--skippr-color-emerald-400:oklch(76.5% .177 163.223);--skippr-color-neutral-100:oklch(97% 0 0);--skippr-color-neutral-200:oklch(92.2% 0 0);--skippr-color-neutral-500:oklch(55.6% 0 0);--skippr-color-neutral-700:oklch(37.1% 0 0);--skippr-color-black:#000;--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-font-weight-bold:700;--skippr-leading-snug:1.375;--skippr-leading-relaxed:1.625;--skippr-ease-out:cubic-bezier(0,0,.2,1);--skippr-ease-in-out:cubic-bezier(.4,0,.2,1);--skippr-animate-spin:spin 1s linear infinite;--skippr-animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--skippr-animate-bounce:bounce 1s infinite;--skippr-blur-sm:8px;--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-auto{pointer-events:auto}.skippr\\:pointer-events-none{pointer-events:none}.skippr\\:absolute{position:absolute}.skippr\\:fixed{position:fixed}.skippr\\:relative{position:relative}.skippr\\:sticky{position:sticky}.skippr\\:-inset-\\[3px\\]{inset:-3px}.skippr\\:inset-0{inset:calc(var(--skippr-spacing)*0)}.skippr\\:inset-y-0{inset-block:calc(var(--skippr-spacing)*0)}.skippr\\:-top-1{top:calc(var(--skippr-spacing)*-1)}.skippr\\:-top-6{top:calc(var(--skippr-spacing)*-6)}.skippr\\:-top-8{top:calc(var(--skippr-spacing)*-8)}.skippr\\:-top-\\[2px\\]{top:-2px}.skippr\\:-top-\\[3px\\]{top:-3px}.skippr\\:-top-\\[13px\\]{top:-13px}.skippr\\:top-0{top:calc(var(--skippr-spacing)*0)}.skippr\\:top-1\\/2{top:50%}.skippr\\:top-\\[8px\\]{top:8px}.skippr\\:top-full{top:100%}.skippr\\:-right-1{right:calc(var(--skippr-spacing)*-1)}.skippr\\:-right-8{right:calc(var(--skippr-spacing)*-8)}.skippr\\:-right-\\[2px\\]{right:-2px}.skippr\\:-right-\\[6px\\]{right:-6px}.skippr\\:right-0{right:calc(var(--skippr-spacing)*0)}.skippr\\:right-3{right:calc(var(--skippr-spacing)*3)}.skippr\\:right-5{right:calc(var(--skippr-spacing)*5)}.skippr\\:right-6{right:calc(var(--skippr-spacing)*6)}.skippr\\:right-\\[4px\\]{right:4px}.skippr\\:right-\\[8px\\]{right:8px}.skippr\\:-bottom-\\[2px\\]{bottom:-2px}.skippr\\:bottom-3{bottom:calc(var(--skippr-spacing)*3)}.skippr\\:bottom-4{bottom:calc(var(--skippr-spacing)*4)}.skippr\\:bottom-20{bottom:calc(var(--skippr-spacing)*20)}.skippr\\:bottom-\\[calc\\(100\\%\\+8px\\)\\]{bottom:calc(100% + 8px)}.skippr\\:bottom-\\[calc\\(100\\%\\+11px\\)\\]{bottom:calc(100% + 11px)}.skippr\\:bottom-full{bottom:100%}.skippr\\:-left-8{left:calc(var(--skippr-spacing)*-8)}.skippr\\:-left-\\[2px\\]{left:-2px}.skippr\\:-left-\\[6px\\]{left:-6px}.skippr\\:left-0{left:calc(var(--skippr-spacing)*0)}.skippr\\:left-1\\/2{left:50%}.skippr\\:left-2{left:calc(var(--skippr-spacing)*2)}.skippr\\:left-3{left:calc(var(--skippr-spacing)*3)}.skippr\\:left-5{left:calc(var(--skippr-spacing)*5)}.skippr\\:left-6{left:calc(var(--skippr-spacing)*6)}.skippr\\:z-10{z-index:10}.skippr\\:z-20{z-index:20}.skippr\\:z-\\[1\\]{z-index:1}.skippr\\:z-\\[2\\]{z-index:2}.skippr\\:z-\\[4\\]{z-index:4}.skippr\\:z-\\[5\\]{z-index:5}.skippr\\:z-\\[6\\]{z-index:6}.skippr\\:z-\\[7\\]{z-index:7}.skippr\\:z-\\[8\\]{z-index:8}.skippr\\:z-\\[9998\\]{z-index:9998}.skippr\\:z-\\[9999\\]{z-index:9999}.skippr\\:z-\\[10000\\]{z-index:10000}.skippr\\:order-first{order:-9999}.skippr\\:order-last{order:9999}.skippr\\:mx-auto{margin-inline:auto}.skippr\\:-mt-1{margin-top:calc(var(--skippr-spacing)*-1)}.skippr\\:-mt-\\[5px\\]{margin-top:-5px}.skippr\\:-mt-\\[27px\\]{margin-top:-27px}.skippr\\:mt-1{margin-top:calc(var(--skippr-spacing)*1)}.skippr\\:mt-1\\.5{margin-top:calc(var(--skippr-spacing)*1.5)}.skippr\\:mt-2{margin-top:calc(var(--skippr-spacing)*2)}.skippr\\:mt-3{margin-top:calc(var(--skippr-spacing)*3)}.skippr\\:mt-3\\.5{margin-top:calc(var(--skippr-spacing)*3.5)}.skippr\\:mt-\\[1px\\]{margin-top:1px}.skippr\\:mt-\\[8px\\]{margin-top:8px}.skippr\\:mt-\\[9px\\]{margin-top:9px}.skippr\\:-mr-1{margin-right:calc(var(--skippr-spacing)*-1)}.skippr\\:mr-7{margin-right:calc(var(--skippr-spacing)*7)}.skippr\\:mr-\\[22px\\]{margin-right:22px}.skippr\\:-mb-\\[5px\\]{margin-bottom:-5px}.skippr\\:mb-1{margin-bottom:calc(var(--skippr-spacing)*1)}.skippr\\:mb-1\\.5{margin-bottom:calc(var(--skippr-spacing)*1.5)}.skippr\\:mb-2{margin-bottom:calc(var(--skippr-spacing)*2)}.skippr\\:mb-3{margin-bottom:calc(var(--skippr-spacing)*3)}.skippr\\:mb-4{margin-bottom:calc(var(--skippr-spacing)*4)}.skippr\\:mb-\\[14px\\]{margin-bottom:14px}.skippr\\:-ml-\\[2px\\]{margin-left:-2px}.skippr\\:ml-0\\.5{margin-left:calc(var(--skippr-spacing)*.5)}.skippr\\:ml-1{margin-left:calc(var(--skippr-spacing)*1)}.skippr\\:ml-7{margin-left:calc(var(--skippr-spacing)*7)}.skippr\\:ml-auto{margin-left:auto}.skippr\\:line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.skippr\\:block{display:block}.skippr\\:flex{display:flex}.skippr\\:hidden{display:none}.skippr\\:inline-flex{display:inline-flex}.skippr\\:aspect-square{aspect-ratio:1}.skippr\\:size-1{width:calc(var(--skippr-spacing)*1);height:calc(var(--skippr-spacing)*1)}.skippr\\:size-1\\.5{width:calc(var(--skippr-spacing)*1.5);height:calc(var(--skippr-spacing)*1.5)}.skippr\\:size-2{width:calc(var(--skippr-spacing)*2);height:calc(var(--skippr-spacing)*2)}.skippr\\:size-2\\.5{width:calc(var(--skippr-spacing)*2.5);height:calc(var(--skippr-spacing)*2.5)}.skippr\\:size-3{width:calc(var(--skippr-spacing)*3);height:calc(var(--skippr-spacing)*3)}.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-7{width:calc(var(--skippr-spacing)*7);height:calc(var(--skippr-spacing)*7)}.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-12{width:calc(var(--skippr-spacing)*12);height:calc(var(--skippr-spacing)*12)}.skippr\\:size-\\[3px\\]{width:3px;height:3px}.skippr\\:size-\\[4px\\]{width:4px;height:4px}.skippr\\:size-\\[5px\\]{width:5px;height:5px}.skippr\\:size-\\[6px\\]{width:6px;height:6px}.skippr\\:size-\\[7px\\]{width:7px;height:7px}.skippr\\:size-\\[8px\\]{width:8px;height:8px}.skippr\\:size-\\[9px\\]{width:9px;height:9px}.skippr\\:size-\\[10px\\]{width:10px;height:10px}.skippr\\:size-\\[11px\\]{width:11px;height:11px}.skippr\\:size-\\[12px\\]{width:12px;height:12px}.skippr\\:size-\\[13px\\]{width:13px;height:13px}.skippr\\:size-\\[14px\\]{width:14px;height:14px}.skippr\\:size-\\[15px\\]{width:15px;height:15px}.skippr\\:size-\\[16px\\]{width:16px;height:16px}.skippr\\:size-\\[17px\\]{width:17px;height:17px}.skippr\\:size-\\[18px\\]{width:18px;height:18px}.skippr\\:size-\\[19px\\]{width:19px;height:19px}.skippr\\:size-\\[20px\\]{width:20px;height:20px}.skippr\\:size-\\[22px\\]{width:22px;height:22px}.skippr\\:size-\\[26px\\]{width:26px;height:26px}.skippr\\:size-\\[28px\\]{width:28px;height:28px}.skippr\\:size-\\[30px\\]{width:30px;height:30px}.skippr\\:size-\\[32px\\]{width:32px;height:32px}.skippr\\:size-\\[34px\\]{width:34px;height:34px}.skippr\\:size-\\[38px\\]{width:38px;height:38px}.skippr\\:size-\\[46px\\]{width:46px;height:46px}.skippr\\:size-full{width:100%;height:100%}.skippr\\:h-0{height:calc(var(--skippr-spacing)*0)}.skippr\\:h-1{height:calc(var(--skippr-spacing)*1)}.skippr\\:h-1\\.5{height:calc(var(--skippr-spacing)*1.5)}.skippr\\:h-2{height:calc(var(--skippr-spacing)*2)}.skippr\\:h-3{height:calc(var(--skippr-spacing)*3)}.skippr\\:h-3\\.5{height:calc(var(--skippr-spacing)*3.5)}.skippr\\:h-5{height:calc(var(--skippr-spacing)*5)}.skippr\\:h-6{height:calc(var(--skippr-spacing)*6)}.skippr\\:h-7{height:calc(var(--skippr-spacing)*7)}.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-\\[5px\\]{height:5px}.skippr\\:h-\\[14px\\]{height:14px}.skippr\\:h-\\[16px\\]{height:16px}.skippr\\:h-\\[18\\.5px\\]{height:18.5px}.skippr\\:h-\\[18px\\]{height:18px}.skippr\\:h-\\[22px\\]{height:22px}.skippr\\:h-\\[24px\\]{height:24px}.skippr\\:h-\\[26px\\]{height:26px}.skippr\\:h-\\[36px\\]{height:36px}.skippr\\:h-\\[38px\\]{height:38px}.skippr\\:h-\\[48px\\]{height:48px}.skippr\\:h-\\[54px\\]{height:54px}.skippr\\:h-full{height:100%}.skippr\\:h-px{height:1px}.skippr\\:max-h-\\[132px\\]{max-height:132px}.skippr\\:min-h-0{min-height:calc(var(--skippr-spacing)*0)}.skippr\\:min-h-11{min-height:calc(var(--skippr-spacing)*11)}.skippr\\:min-h-\\[16px\\]{min-height:16px}.skippr\\:w-0{width:calc(var(--skippr-spacing)*0)}.skippr\\:w-3\\.5{width:calc(var(--skippr-spacing)*3.5)}.skippr\\:w-5{width:calc(var(--skippr-spacing)*5)}.skippr\\:w-6{width:calc(var(--skippr-spacing)*6)}.skippr\\:w-7{width:calc(var(--skippr-spacing)*7)}.skippr\\:w-10{width:calc(var(--skippr-spacing)*10)}.skippr\\:w-40{width:calc(var(--skippr-spacing)*40)}.skippr\\:w-\\[2\\.5px\\]{width:2.5px}.skippr\\:w-\\[2px\\]{width:2px}.skippr\\:w-\\[3px\\]{width:3px}.skippr\\:w-\\[14px\\]{width:14px}.skippr\\:w-\\[15\\.4px\\]{width:15.4px}.skippr\\:w-\\[15px\\]{width:15px}.skippr\\:w-\\[16px\\]{width:16px}.skippr\\:w-\\[22px\\]{width:22px}.skippr\\:w-\\[36px\\]{width:36px}.skippr\\:w-\\[38px\\]{width:38px}.skippr\\:w-\\[50px\\]{width:50px}.skippr\\:w-\\[148px\\]{width:148px}.skippr\\:w-\\[150px\\]{width:150px}.skippr\\:w-\\[220px\\]{width:220px}.skippr\\:w-\\[225px\\]{width:225px}.skippr\\:w-\\[240px\\]{width:240px}.skippr\\:w-\\[255px\\]{width:255px}.skippr\\:w-\\[320px\\]{width:320px}.skippr\\:w-fit{width:fit-content}.skippr\\:w-full{width:100%}.skippr\\:w-px{width:1px}.skippr\\:max-w-64{max-width:calc(var(--skippr-spacing)*64)}.skippr\\:max-w-72{max-width:calc(var(--skippr-spacing)*72)}.skippr\\:max-w-\\[80\\%\\]{max-width:80%}.skippr\\:max-w-\\[280px\\]{max-width:280px}.skippr\\:min-w-0{min-width:calc(var(--skippr-spacing)*0)}.skippr\\:min-w-11{min-width:calc(var(--skippr-spacing)*11)}.skippr\\:min-w-\\[96px\\]{min-width:96px}.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\\:origin-center{transform-origin:50%}.skippr\\:origin-left{transform-origin:0}.skippr\\:origin-right{transform-origin:100%}.skippr\\:origin-top{transform-origin:top}.skippr\\:origin-top-left{transform-origin:0 0}.skippr\\:origin-top-right{transform-origin:100% 0}.skippr\\:-translate-x-1\\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:-translate-x-3{--tw-translate-x:calc(var(--skippr-spacing)*-3);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:-translate-x-7{--tw-translate-x:calc(var(--skippr-spacing)*-7);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:translate-x-3{--tw-translate-x:calc(var(--skippr-spacing)*3);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:translate-x-7{--tw-translate-x:calc(var(--skippr-spacing)*7);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:-translate-y-1\\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:-translate-y-\\[4px\\]{--tw-translate-y:calc(4px*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.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-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;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\\:scale-\\[0\\.94\\]{scale:.94}.skippr\\:-rotate-90{rotate:-90deg}.skippr\\:rotate-45{rotate:45deg}.skippr\\:rotate-\\[225deg\\]{rotate:225deg}.skippr\\:\\[animation\\:skippr-agent-in_200ms_ease-out\\]{animation:.2s ease-out skippr-agent-in}.skippr\\:\\[animation\\:skippr-agent-in_200ms_ease-out_240ms_both\\]{animation:.2s ease-out .24s both skippr-agent-in}.skippr\\:\\[animation\\:skippr-banner-look_2\\.4s_ease-in-out_infinite\\]{animation:2.4s ease-in-out infinite skippr-banner-look}.skippr\\:\\[animation\\:skippr-block-reveal_320ms_cubic-bezier\\(0\\.22\\,1\\,0\\.36\\,1\\)\\]{animation:.32s cubic-bezier(.22,1,.36,1) skippr-block-reveal}.skippr\\:\\[animation\\:skippr-breathe_1\\.1s_ease-in-out_0\\.18s_infinite\\]{animation:1.1s ease-in-out .18s infinite skippr-breathe}.skippr\\:\\[animation\\:skippr-breathe_1\\.1s_ease-in-out_0\\.36s_infinite\\]{animation:1.1s ease-in-out .36s infinite skippr-breathe}.skippr\\:\\[animation\\:skippr-breathe_1\\.1s_ease-in-out_0s_infinite\\]{animation:1.1s ease-in-out infinite skippr-breathe}.skippr\\:\\[animation\\:skippr-evaporate_3\\.2s_ease-in_forwards\\]{animation:3.2s ease-in forwards skippr-evaporate}.skippr\\:\\[animation\\:skippr-fade-in_0\\.2s_ease\\]{animation:.2s skippr-fade-in}.skippr\\:\\[animation\\:skippr-fade-in_0\\.16s_ease\\]{animation:.16s skippr-fade-in}.skippr\\:\\[animation\\:skippr-fade-in_0\\.22s_ease\\]{animation:.22s skippr-fade-in}.skippr\\:\\[animation\\:skippr-fade-in_0\\.24s_cubic-bezier\\(0\\.22\\,1\\,0\\.36\\,1\\)\\]{animation:.24s cubic-bezier(.22,1,.36,1) skippr-fade-in}.skippr\\:\\[animation\\:skippr-fade-in_0\\.25s_ease\\]{animation:.25s skippr-fade-in}.skippr\\:\\[animation\\:skippr-fade-out_0\\.18s_ease-in_forwards\\]{animation:.18s ease-in forwards skippr-fade-out}.skippr\\:\\[animation\\:skippr-finger-tap_1\\.1s_ease-in-out_infinite\\]{animation:1.1s ease-in-out infinite skippr-finger-tap}.skippr\\:\\[animation\\:skippr-mote-rise_1\\.6s_ease-out_infinite\\]{animation:1.6s ease-out infinite skippr-mote-rise}.skippr\\:\\[animation\\:skippr-orb-in_320ms_cubic-bezier\\(0\\.34\\,1\\.3\\,0\\.64\\,1\\)\\]{animation:.32s cubic-bezier(.34,1.3,.64,1) skippr-orb-in}.skippr\\:\\[animation\\:skippr-pop_0\\.2s_ease\\]{animation:.2s skippr-pop}.skippr\\:\\[animation\\:skippr-stage-fade_240ms_ease-out\\]{animation:.24s ease-out skippr-stage-fade}.skippr\\:\\[animation\\:skippr-tip-in_360ms_cubic-bezier\\(0\\.34\\,1\\.3\\,0\\.64\\,1\\)\\]{animation:.36s cubic-bezier(.34,1.3,.64,1) skippr-tip-in}.skippr\\:\\[animation\\:skippr-tip-in_360ms_cubic-bezier\\(0\\.34\\,1\\.3\\,0\\.64\\,1\\)_backwards\\]{animation:.36s cubic-bezier(.34,1.3,.64,1) backwards skippr-tip-in}.skippr\\:\\[animation\\:skippr-toolset-pop_280ms_cubic-bezier\\(0\\.22\\,1\\,0\\.36\\,1\\)\\]{animation:.28s cubic-bezier(.22,1,.36,1) skippr-toolset-pop}.skippr\\:\\[animation\\:skippr-toolset-pop_440ms_cubic-bezier\\(0\\.22\\,1\\,0\\.36\\,1\\)\\]{animation:.44s cubic-bezier(.22,1,.36,1) skippr-toolset-pop}.skippr\\:animate-\\[skippr-banner-look_2\\.4s_ease-in-out_infinite\\]{animation:2.4s ease-in-out infinite skippr-banner-look}.skippr\\:animate-\\[skippr-bubble-in_0\\.28s_ease-out\\]{animation:.28s ease-out skippr-bubble-in}.skippr\\:animate-\\[skippr-fade-in_0\\.3s_ease-out\\]{animation:.3s ease-out skippr-fade-in}.skippr\\:animate-\\[skippr-pill-content_0\\.22s_ease-out\\]{animation:.22s ease-out skippr-pill-content}.skippr\\:animate-\\[skippr-speak_1\\.1s_ease-in-out_0\\.3s_infinite\\]{animation:1.1s ease-in-out .3s infinite skippr-speak}.skippr\\:animate-\\[skippr-speak_1\\.1s_ease-in-out_0\\.6s_infinite\\]{animation:1.1s ease-in-out .6s infinite skippr-speak}.skippr\\:animate-\\[skippr-speak_1\\.1s_ease-in-out_0\\.15s_infinite\\]{animation:1.1s ease-in-out .15s infinite skippr-speak}.skippr\\:animate-\\[skippr-speak_1\\.1s_ease-in-out_0\\.45s_infinite\\]{animation:1.1s ease-in-out .45s infinite skippr-speak}.skippr\\:animate-\\[skippr-speak_1\\.1s_ease-in-out_infinite\\]{animation:1.1s ease-in-out infinite skippr-speak}.skippr\\:animate-bounce{animation:var(--skippr-animate-bounce)}.skippr\\:animate-ping{animation:var(--skippr-animate-ping)}.skippr\\:animate-skippr-annotation-pulse{animation:1.8s ease-in-out infinite skippr-annotation-pulse}.skippr\\:animate-skippr-click-ping{animation:.5s ease-out forwards skippr-click-ping}.skippr\\:animate-skippr-cursor-pop{animation:.22s ease-out skippr-cursor-pop}.skippr\\:animate-skippr-flow{animation:3.6s linear infinite skippr-flow}.skippr\\:animate-skippr-press{animation:.5s ease-in-out skippr-press}.skippr\\:animate-skippr-ptt-transmit{animation:1.4s ease-out infinite skippr-ptt-transmit}.skippr\\:animate-skippr-rec-ring{animation:2s ease-out infinite skippr-rec-ring}.skippr\\:animate-skippr-tab-fade{animation:.2s ease-out skippr-tab-fade}.skippr\\:animate-skippr-thinking-dot{animation:1.2s ease-in-out infinite skippr-thinking-dot}.skippr\\:animate-skippr-voice-pulse{animation:1.6s ease-out infinite skippr-voice-pulse}.skippr\\:animate-spin{animation:var(--skippr-animate-spin)}.skippr\\:cursor-default{cursor:default}.skippr\\:cursor-grab{cursor:grab}.skippr\\:cursor-not-allowed{cursor:not-allowed}.skippr\\:cursor-pointer{cursor:pointer}.skippr\\:touch-none{touch-action:none}.skippr\\:resize-none{resize:none}.skippr\\:flex-col{flex-direction:column}.skippr\\:flex-col-reverse{flex-direction:column-reverse}.skippr\\:flex-row{flex-direction:row}.skippr\\:flex-row-reverse{flex-direction:row-reverse}.skippr\\:items-baseline{align-items:baseline}.skippr\\:items-center{align-items:center}.skippr\\:items-end{align-items:flex-end}.skippr\\:items-start{align-items:flex-start}.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\\.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-2\\.5{gap:calc(var(--skippr-spacing)*2.5)}.skippr\\:gap-3{gap:calc(var(--skippr-spacing)*3)}.skippr\\:gap-\\[1px\\]{gap:1px}.skippr\\:gap-\\[2px\\]{gap:2px}.skippr\\:gap-\\[3px\\]{gap:3px}.skippr\\:gap-\\[4px\\]{gap:4px}.skippr\\:gap-\\[5px\\]{gap:5px}.skippr\\:gap-\\[6px\\]{gap:6px}.skippr\\:gap-\\[7px\\]{gap:7px}.skippr\\:gap-\\[8px\\]{gap:8px}.skippr\\:gap-\\[9px\\]{gap:9px}:where(.skippr\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--skippr-spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--skippr-spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.skippr\\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--skippr-spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--skippr-spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.skippr\\:space-y-\\[6px\\]>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(6px*var(--tw-space-y-reverse));margin-block-end:calc(6px*calc(1 - var(--tw-space-y-reverse)))}.skippr\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.skippr\\:overflow-hidden{overflow:hidden}.skippr\\:overflow-visible{overflow:visible}.skippr\\:overflow-y-auto{overflow-y:auto}.skippr\\:overscroll-contain{overscroll-behavior:contain}.skippr\\:rounded{border-radius:.25rem}.skippr\\:rounded-2xl{border-radius:1.125rem}.skippr\\:rounded-\\[1rem\\]{border-radius:1rem}.skippr\\:rounded-\\[5px\\]{border-radius:5px}.skippr\\:rounded-\\[10px\\]{border-radius:10px}.skippr\\:rounded-\\[11px\\]{border-radius:11px}.skippr\\:rounded-\\[12px\\]{border-radius:12px}.skippr\\:rounded-\\[14px\\]{border-radius:14px}.skippr\\:rounded-\\[16px\\]{border-radius:16px}.skippr\\:rounded-\\[20px\\]{border-radius:20px}.skippr\\:rounded-full{border-radius:3.40282e38px}.skippr\\:rounded-md{border-radius:.5rem}.skippr\\:rounded-sm{border-radius:.375rem}.skippr\\:rounded-xl{border-radius:.875rem}.skippr\\:rounded-t-\\[6px\\]{border-top-left-radius:6px;border-top-right-radius:6px}.skippr\\:rounded-t-\\[18px\\]{border-top-left-radius:18px;border-top-right-radius:18px}.skippr\\:rounded-t-full{border-top-left-radius:3.40282e38px;border-top-right-radius:3.40282e38px}.skippr\\:rounded-l-\\[6px\\]{border-top-left-radius:6px;border-bottom-left-radius:6px}.skippr\\:rounded-l-\\[18px\\]{border-top-left-radius:18px;border-bottom-left-radius:18px}.skippr\\:rounded-l-full{border-top-left-radius:3.40282e38px;border-bottom-left-radius:3.40282e38px}.skippr\\:rounded-tl-\\[6px\\]{border-top-left-radius:6px}.skippr\\:rounded-tl-md{border-top-left-radius:.5rem}.skippr\\:rounded-r-\\[6px\\]{border-top-right-radius:6px;border-bottom-right-radius:6px}.skippr\\:rounded-r-\\[18px\\]{border-top-right-radius:18px;border-bottom-right-radius:18px}.skippr\\:rounded-r-full{border-top-right-radius:3.40282e38px;border-bottom-right-radius:3.40282e38px}.skippr\\:rounded-tr-\\[6px\\]{border-top-right-radius:6px}.skippr\\:rounded-b-\\[6px\\]{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.skippr\\:rounded-b-\\[18px\\]{border-bottom-right-radius:18px;border-bottom-left-radius:18px}.skippr\\:rounded-b-full{border-bottom-right-radius:3.40282e38px;border-bottom-left-radius:3.40282e38px}.skippr\\:rounded-bl-\\[6px\\]{border-bottom-left-radius:6px}.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-2{border-style:var(--tw-border-style);border-width:2px}.skippr\\:border-\\[2\\.5px\\]{border-style:var(--tw-border-style);border-width:2.5px}.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-none{--tw-border-style:none;border-style:none}.skippr\\:border-\\[\\#d8d3ca\\]{border-color:#d8d3ca}.skippr\\:border-\\[rgba\\(45\\,45\\,63\\,0\\.1\\)\\]{border-color:#2d2d3f1a}.skippr\\:border-\\[rgba\\(45\\,45\\,63\\,0\\.06\\)\\]{border-color:#2d2d3f0f}.skippr\\:border-\\[rgba\\(45\\,45\\,63\\,0\\.08\\)\\]{border-color:#2d2d3f14}.skippr\\:border-\\[rgba\\(45\\,45\\,63\\,0\\.12\\)\\]{border-color:#2d2d3f1f}.skippr\\:border-\\[rgba\\(45\\,45\\,63\\,0\\.14\\)\\]{border-color:#2d2d3f24}.skippr\\:border-\\[var\\(--skippr-brand-ring\\)\\]{border-color:var(--skippr-brand-ring)}.skippr\\:border-black\\/25{border-color:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:border-black\\/25{border-color:color-mix(in oklab,var(--skippr-color-black)25%,transparent)}}.skippr\\:border-border{border-color:oklch(92.3% .003 48.717)}.skippr\\:border-brand{border-color:var(--skippr-brand,#2bc0ae)}.skippr\\:border-input{border-color:oklch(92.3% .003 48.717)}.skippr\\:border-primary\\/20{border-color:var(--skippr-brand,#2d2b3d)}@supports (color:color-mix(in lab, red, red)){.skippr\\:border-primary\\/20{border-color:color-mix(in oklab,var(--skippr-brand,#2d2b3d)20%,transparent)}}.skippr\\:border-transparent{border-color:#0000}.skippr\\:border-white,.skippr\\:border-white\\/30{border-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:border-white\\/30{border-color:color-mix(in oklab,var(--skippr-color-white)30%,transparent)}}.skippr\\:border-t-brand{border-top-color:var(--skippr-brand,#2bc0ae)}.skippr\\:border-t-white{border-top-color:var(--skippr-color-white)}.skippr\\:border-r-border{border-right-color:oklch(92.3% .003 48.717)}.skippr\\:border-l-border{border-left-color:oklch(92.3% .003 48.717)}.skippr\\:bg-\\[\\#2D2D3F\\]{background-color:#2d2d3f}.skippr\\:bg-\\[\\#F1EFEA\\]{background-color:#f1efea}.skippr\\:bg-\\[\\#b9b4ab\\]{background-color:#b9b4ab}.skippr\\:bg-\\[\\#dc2626\\]{background-color:#dc2626}.skippr\\:bg-\\[\\#eeeae4\\]{background-color:#eeeae4}.skippr\\:bg-\\[\\#f2f0eb\\]{background-color:#f2f0eb}.skippr\\:bg-\\[\\#f4ecd8\\]{background-color:#f4ecd8}.skippr\\:bg-\\[\\#f4f2ee\\]{background-color:#f4f2ee}.skippr\\:bg-amber-50{background-color:var(--skippr-color-amber-50)}.skippr\\:bg-amber-400{background-color:var(--skippr-color-amber-400)}.skippr\\:bg-background{background-color:oklch(100% 0 0)}.skippr\\:bg-black\\/\\[0\\.07\\]{background-color:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-black\\/\\[0\\.07\\]{background-color:color-mix(in oklab,var(--skippr-color-black)7.0%,transparent)}}.skippr\\:bg-brand,.skippr\\:bg-brand\\/50{background-color:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-brand\\/50{background-color:color-mix(in oklab,var(--skippr-brand,#2bc0ae)50%,transparent)}}.skippr\\:bg-bubble{background-color:#2d2b3d}.skippr\\:bg-bubble\\/95{background-color:oklab(29.9244% .0107414 -.0305411/.95)}.skippr\\:bg-card{background-color:oklch(100% 0 0)}.skippr\\:bg-current{background-color:currentColor}.skippr\\:bg-destructive{background-color:#d94f4f}.skippr\\:bg-emerald-400{background-color:var(--skippr-color-emerald-400)}.skippr\\:bg-foreground{background-color:oklch(14.7% .004 49.25)}.skippr\\:bg-foreground\\/10{background-color:oklab(14.7% .00261104 .00303026/.1)}.skippr\\:bg-launcher{background-color:#2d2d3f}.skippr\\:bg-muted-foreground\\/40{background-color:oklab(55.3% .00687528 .0110332/.4)}.skippr\\:bg-neutral-100{background-color:var(--skippr-color-neutral-100)}.skippr\\:bg-primary,.skippr\\:bg-primary\\/10{background-color:var(--skippr-brand,#2d2b3d)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-primary\\/10{background-color:color-mix(in oklab,var(--skippr-brand,#2d2b3d)10%,transparent)}}.skippr\\:bg-red-50{background-color:var(--skippr-color-red-50)}.skippr\\:bg-red-100{background-color:var(--skippr-color-red-100)}.skippr\\:bg-red-500{background-color:var(--skippr-color-red-500)}.skippr\\:bg-secondary{background-color:#ffdfb5}.skippr\\:bg-transparent{background-color:#0000}.skippr\\:bg-white,.skippr\\:bg-white\\/40{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-white\\/40{background-color:color-mix(in oklab,var(--skippr-color-white)40%,transparent)}}.skippr\\:bg-white\\/70{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-white\\/70{background-color:color-mix(in oklab,var(--skippr-color-white)70%,transparent)}}.skippr\\:bg-white\\/80{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-white\\/80{background-color:color-mix(in oklab,var(--skippr-color-white)80%,transparent)}}.skippr\\:bg-white\\/95{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-white\\/95{background-color:color-mix(in oklab,var(--skippr-color-white)95%,transparent)}}.skippr\\:fill-brand{fill:var(--skippr-brand,#2bc0ae)}.skippr\\:fill-current{fill:currentColor}.skippr\\:fill-primary\\/30{fill:var(--skippr-brand,#2d2b3d)}@supports (color:color-mix(in lab, red, red)){.skippr\\:fill-primary\\/30{fill:color-mix(in oklab,var(--skippr-brand,#2d2b3d)30%,transparent)}}.skippr\\:fill-white{fill:var(--skippr-color-white)}.skippr\\:stroke-black\\/15{stroke:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:stroke-black\\/15{stroke:color-mix(in oklab,var(--skippr-color-black)15%,transparent)}}.skippr\\:stroke-bubble{stroke:#2d2b3d}.skippr\\:object-cover{object-fit:cover}.skippr\\:p-0{padding:calc(var(--skippr-spacing)*0)}.skippr\\:p-1\\.5{padding:calc(var(--skippr-spacing)*1.5)}.skippr\\:p-2{padding:calc(var(--skippr-spacing)*2)}.skippr\\:p-3{padding:calc(var(--skippr-spacing)*3)}.skippr\\:p-3\\.5{padding:calc(var(--skippr-spacing)*3.5)}.skippr\\:p-4{padding:calc(var(--skippr-spacing)*4)}.skippr\\:p-\\[2px\\]{padding:2px}.skippr\\:p-\\[3px\\]{padding:3px}.skippr\\:p-\\[9px\\]{padding:9px}.skippr\\:p-\\[14px\\]{padding:14px}.skippr\\:px-1{padding-inline:calc(var(--skippr-spacing)*1)}.skippr\\:px-1\\.5{padding-inline:calc(var(--skippr-spacing)*1.5)}.skippr\\:px-2{padding-inline:calc(var(--skippr-spacing)*2)}.skippr\\:px-2\\.5{padding-inline:calc(var(--skippr-spacing)*2.5)}.skippr\\:px-3{padding-inline:calc(var(--skippr-spacing)*3)}.skippr\\:px-3\\.5{padding-inline:calc(var(--skippr-spacing)*3.5)}.skippr\\:px-4{padding-inline:calc(var(--skippr-spacing)*4)}.skippr\\:px-6{padding-inline:calc(var(--skippr-spacing)*6)}.skippr\\:px-8{padding-inline:calc(var(--skippr-spacing)*8)}.skippr\\:px-\\[5px\\]{padding-inline:5px}.skippr\\:px-\\[7px\\]{padding-inline:7px}.skippr\\:px-\\[8px\\]{padding-inline:8px}.skippr\\:px-\\[9px\\]{padding-inline:9px}.skippr\\:px-\\[10px\\]{padding-inline:10px}.skippr\\:px-\\[11px\\]{padding-inline:11px}.skippr\\:px-\\[12px\\]{padding-inline:12px}.skippr\\:py-0\\.5{padding-block:calc(var(--skippr-spacing)*.5)}.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\\:py-6{padding-block:calc(var(--skippr-spacing)*6)}.skippr\\:py-\\[1px\\]{padding-block:1px}.skippr\\:py-\\[3px\\]{padding-block:3px}.skippr\\:py-\\[4px\\]{padding-block:4px}.skippr\\:py-\\[5px\\]{padding-block:5px}.skippr\\:py-\\[6px\\]{padding-block:6px}.skippr\\:py-\\[7px\\]{padding-block:7px}.skippr\\:pt-1{padding-top:calc(var(--skippr-spacing)*1)}.skippr\\:pt-\\[8px\\]{padding-top:8px}.skippr\\:pt-\\[9px\\]{padding-top:9px}.skippr\\:pt-\\[10px\\]{padding-top:10px}.skippr\\:pr-2\\.5{padding-right:calc(var(--skippr-spacing)*2.5)}.skippr\\:pr-3{padding-right:calc(var(--skippr-spacing)*3)}.skippr\\:pr-\\[5px\\]{padding-right:5px}.skippr\\:pr-\\[6px\\]{padding-right:6px}.skippr\\:pr-\\[9px\\]{padding-right:9px}.skippr\\:pr-\\[10px\\]{padding-right:10px}.skippr\\:pb-0\\.5{padding-bottom:calc(var(--skippr-spacing)*.5)}.skippr\\:pb-1{padding-bottom:calc(var(--skippr-spacing)*1)}.skippr\\:pb-4{padding-bottom:calc(var(--skippr-spacing)*4)}.skippr\\:pb-\\[8px\\]{padding-bottom:8px}.skippr\\:pb-\\[10px\\]{padding-bottom:10px}.skippr\\:pl-1\\.5{padding-left:calc(var(--skippr-spacing)*1.5)}.skippr\\:pl-2\\.5{padding-left:calc(var(--skippr-spacing)*2.5)}.skippr\\:pl-3\\.5{padding-left:calc(var(--skippr-spacing)*3.5)}.skippr\\:pl-\\[9px\\]{padding-left:9px}.skippr\\:pl-\\[13px\\]{padding-left:13px}.skippr\\:text-center{text-align:center}.skippr\\:text-left{text-align:left}.skippr\\:font-mono{font-family:var(--skippr-font-mono)}.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\\:text-\\[8\\.5px\\]{font-size:8.5px}.skippr\\:text-\\[9\\.5px\\]{font-size:9.5px}.skippr\\:text-\\[9px\\]{font-size:9px}.skippr\\:text-\\[10\\.5px\\]{font-size:10.5px}.skippr\\:text-\\[10px\\]{font-size:10px}.skippr\\:text-\\[11\\.5px\\]{font-size:11.5px}.skippr\\:text-\\[11px\\]{font-size:11px}.skippr\\:text-\\[12\\.5px\\]{font-size:12.5px}.skippr\\:text-\\[12px\\]{font-size:12px}.skippr\\:text-\\[13px\\]{font-size:13px}.skippr\\:leading-5{--tw-leading:calc(var(--skippr-spacing)*5);line-height:calc(var(--skippr-spacing)*5)}.skippr\\:leading-\\[1\\.2\\]{--tw-leading:1.2;line-height:1.2}.skippr\\:leading-\\[1\\.25\\]{--tw-leading:1.25;line-height:1.25}.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\\:leading-snug{--tw-leading:var(--skippr-leading-snug);line-height:var(--skippr-leading-snug)}.skippr\\:font-bold{--tw-font-weight:var(--skippr-font-weight-bold);font-weight:var(--skippr-font-weight-bold)}.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-\\[-0\\.01em\\]{--tw-tracking:-.01em;letter-spacing:-.01em}.skippr\\:tracking-\\[0\\.02em\\]{--tw-tracking:.02em;letter-spacing:.02em}.skippr\\:tracking-\\[0\\.05em\\]{--tw-tracking:.05em;letter-spacing:.05em}.skippr\\:whitespace-nowrap{white-space:nowrap}.skippr\\:text-\\[\\#2D2D3F\\]{color:#2d2d3f}.skippr\\:text-\\[\\#5a5650\\]{color:#5a5650}.skippr\\:text-\\[\\#5c5850\\]{color:#5c5850}.skippr\\:text-\\[\\#6b6660\\]{color:#6b6660}.skippr\\:text-\\[\\#8b877f\\]{color:#8b877f}.skippr\\:text-\\[\\#92400e\\]{color:#92400e}.skippr\\:text-\\[\\#a8a49c\\]{color:#a8a49c}.skippr\\:text-\\[\\#b8b4ac\\]{color:#b8b4ac}.skippr\\:text-\\[\\#c9c5bd\\]{color:#c9c5bd}.skippr\\:text-\\[\\#cbc7bf\\]{color:#cbc7bf}.skippr\\:text-\\[\\#dc2626\\]{color:#dc2626}.skippr\\:text-\\[var\\(--skippr-brand-deep\\)\\]{color:var(--skippr-brand-deep)}.skippr\\:text-amber-700{color:var(--skippr-color-amber-700)}.skippr\\:text-amber-950{color:var(--skippr-color-amber-950)}.skippr\\:text-background{color:oklch(100% 0 0)}.skippr\\:text-black,.skippr\\:text-black\\/40{color:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:text-black\\/40{color:color-mix(in oklab,var(--skippr-color-black)40%,transparent)}}.skippr\\:text-brand{color:var(--skippr-brand,#2bc0ae)}.skippr\\:text-bubble{color:#2d2b3d}.skippr\\:text-chart-3{color:oklch(66.6% .179 58.318)}.skippr\\:text-destructive{color:#d94f4f}.skippr\\:text-foreground{color:oklch(14.7% .004 49.25)}.skippr\\:text-muted-foreground{color:oklch(55.3% .013 58.071)}.skippr\\:text-muted-foreground\\/30{color:oklab(55.3% .00687528 .0110332/.3)}.skippr\\:text-muted-foreground\\/60{color:oklab(55.3% .00687528 .0110332/.6)}.skippr\\:text-neutral-500{color:var(--skippr-color-neutral-500)}.skippr\\:text-neutral-700{color:var(--skippr-color-neutral-700)}.skippr\\:text-primary{color:var(--skippr-brand,#2d2b3d)}.skippr\\:text-primary-foreground{color:var(--skippr-brand-foreground,#fff)}.skippr\\:text-red-400{color:var(--skippr-color-red-400)}.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:#613700}.skippr\\:text-white,.skippr\\:text-white\\/60{color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:text-white\\/60{color:color-mix(in oklab,var(--skippr-color-white)60%,transparent)}}.skippr\\:capitalize{text-transform:capitalize}.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\\:underline{text-decoration-line:underline}.skippr\\:decoration-muted-foreground\\/40{text-decoration-color:oklab(55.3% .00687528 .0110332/.4)}.skippr\\:underline-offset-2,.skippr\\:underline-offset-\\[2px\\]{text-underline-offset:2px}.skippr\\:placeholder-muted-foreground::placeholder{color:oklch(55.3% .013 58.071)}.skippr\\:opacity-0{opacity:0}.skippr\\:opacity-40{opacity:.4}.skippr\\:opacity-75{opacity:.75}.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-\\[-3px_0_14px_var\\(--skippr-brand-halo\\)\\]{--tw-shadow:-3px 0 14px var(--tw-shadow-color,var(--skippr-brand-halo));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-\\[-4px_6px_18px_rgba\\(45\\,45\\,63\\,0\\.16\\)\\]{--tw-shadow:-4px 6px 18px var(--tw-shadow-color,#2d2d3f29);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-\\[-6px_8px_30px_rgba\\(15\\,18\\,26\\,0\\.32\\)\\]{--tw-shadow:-6px 8px 30px var(--tw-shadow-color,#0f121a52);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-\\[0_-3px_14px_var\\(--skippr-brand-halo\\)\\]{--tw-shadow:0 -3px 14px var(--tw-shadow-color,var(--skippr-brand-halo));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-\\[0_-6px_18px_rgba\\(45\\,45\\,63\\,0\\.16\\)\\]{--tw-shadow:0 -6px 18px var(--tw-shadow-color,#2d2d3f29);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-\\[0_0_0_1\\.5px_rgba\\(255\\,255\\,255\\,0\\.85\\)\\]{--tw-shadow:0 0 0 1.5px var(--tw-shadow-color,#ffffffd9);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-\\[0_0_0_4px_var\\(--skippr-brand-ring\\)\\]{--tw-shadow:0 0 0 4px var(--tw-shadow-color,var(--skippr-brand-ring));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-\\[0_1px_2px_rgba\\(45\\,45\\,63\\,0\\.05\\)\\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#2d2d3f0d);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-\\[0_1px_2px_rgba\\(45\\,45\\,63\\,0\\.08\\)\\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#2d2d3f14);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-\\[0_2px_6px_rgba\\(0\\,0\\,0\\,0\\.28\\)\\]{--tw-shadow:0 2px 6px var(--tw-shadow-color,#00000047);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-\\[0_2px_6px_rgba\\(45\\,45\\,63\\,0\\.14\\)\\]{--tw-shadow:0 2px 6px var(--tw-shadow-color,#2d2d3f24);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-\\[0_3px_14px_var\\(--skippr-brand-halo\\)\\]{--tw-shadow:0 3px 14px var(--tw-shadow-color,var(--skippr-brand-halo));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-\\[0_4px_12px_rgba\\(0\\,0\\,0\\,0\\.12\\)\\]{--tw-shadow:0 4px 12px var(--tw-shadow-color,#0000001f);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-\\[0_4px_12px_rgba\\(45\\,45\\,63\\,0\\.1\\)\\]{--tw-shadow:0 4px 12px var(--tw-shadow-color,#2d2d3f1a);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-\\[0_4px_14px_rgba\\(0\\,0\\,0\\,0\\.12\\)\\]{--tw-shadow:0 4px 14px var(--tw-shadow-color,#0000001f);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-\\[0_4px_14px_rgba\\(239\\,68\\,68\\,0\\.45\\)\\]{--tw-shadow:0 4px 14px var(--tw-shadow-color,#ef444473);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-\\[0_4px_16px_rgba\\(45\\,43\\,61\\,0\\.45\\)\\,0_2px_4px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\]{--tw-shadow:0 4px 16px var(--tw-shadow-color,#2d2b3d73),0 2px 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-\\[0_6px_16px_rgba\\(45\\,45\\,63\\,0\\.14\\)\\]{--tw-shadow:0 6px 16px var(--tw-shadow-color,#2d2d3f24);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-\\[0_6px_18px_rgba\\(45\\,45\\,63\\,0\\.16\\)\\]{--tw-shadow:0 6px 18px var(--tw-shadow-color,#2d2d3f29);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-\\[0_8px_22px_rgba\\(45\\,45\\,63\\,0\\.12\\)\\,0_1px_3px_rgba\\(45\\,45\\,63\\,0\\.04\\)\\]{--tw-shadow:0 8px 22px var(--tw-shadow-color,#2d2d3f1f),0 1px 3px var(--tw-shadow-color,#2d2d3f0a);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-\\[0_8px_24px_rgba\\(0\\,0\\,0\\,0\\.18\\)\\]{--tw-shadow:0 8px 24px var(--tw-shadow-color,#0000002e);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-\\[0_8px_24px_rgba\\(45\\,43\\,61\\,0\\.35\\)\\]{--tw-shadow:0 8px 24px var(--tw-shadow-color,#2d2b3d59);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-\\[0_8px_30px_rgba\\(45\\,45\\,63\\,0\\.14\\)\\,0_2px_6px_rgba\\(45\\,45\\,63\\,0\\.06\\)\\]{--tw-shadow:0 8px 30px var(--tw-shadow-color,#2d2d3f24),0 2px 6px var(--tw-shadow-color,#2d2d3f0f);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-\\[0_10px_26px_rgba\\(45\\,45\\,63\\,0\\.13\\)\\,0_2px_6px_rgba\\(45\\,45\\,63\\,0\\.05\\)\\]{--tw-shadow:0 10px 26px var(--tw-shadow-color,#2d2d3f21),0 2px 6px var(--tw-shadow-color,#2d2d3f0d);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-\\[0_10px_28px_rgba\\(45\\,45\\,63\\,0\\.16\\)\\]{--tw-shadow:0 10px 28px var(--tw-shadow-color,#2d2d3f29);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-\\[0_10px_30px_rgba\\(45\\,45\\,63\\,0\\.14\\)\\,0_0_0_1\\.5px_var\\(--skippr-brand-ring\\)\\]{--tw-shadow:0 10px 30px var(--tw-shadow-color,#2d2d3f24),0 0 0 1.5px var(--tw-shadow-color,var(--skippr-brand-ring));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-\\[0_10px_32px_rgba\\(0\\,0\\,0\\,0\\.18\\)\\]{--tw-shadow:0 10px 32px var(--tw-shadow-color,#0000002e);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-\\[0_14px_34px_rgba\\(45\\,45\\,63\\,0\\.15\\)\\,0_2px_6px_rgba\\(45\\,45\\,63\\,0\\.06\\)\\]{--tw-shadow:0 14px 34px var(--tw-shadow-color,#2d2d3f26),0 2px 6px var(--tw-shadow-color,#2d2d3f0f);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-\\[3px_0_14px_var\\(--skippr-brand-halo\\)\\]{--tw-shadow:3px 0 14px var(--tw-shadow-color,var(--skippr-brand-halo));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-\\[4px_6px_18px_rgba\\(45\\,45\\,63\\,0\\.16\\)\\]{--tw-shadow:4px 6px 18px var(--tw-shadow-color,#2d2d3f29);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-\\[inset_0_0_0_1\\.5px_var\\(--skippr-brand\\,\\#2bc0ae\\)\\]{--tw-shadow:inset 0 0 0 1.5px var(--tw-shadow-color,var(--skippr-brand,#2bc0ae));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-inner{--tw-shadow:inset 0 2px 4px 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\\: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-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px 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-1{--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\\:ring-2{--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\\:ring-black\\/5{--tw-ring-color:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:ring-black\\/5{--tw-ring-color:color-mix(in oklab,var(--skippr-color-black)5%,transparent)}}.skippr\\:ring-brand{--tw-ring-color:var(--skippr-brand,#2bc0ae)}.skippr\\:ring-white\\/15{--tw-ring-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:ring-white\\/15{--tw-ring-color:color-mix(in oklab,var(--skippr-color-white)15%,transparent)}}.skippr\\:ring-offset-background{--tw-ring-offset-color:oklch(100% 0 0)}.skippr\\:drop-shadow-\\[0_2px_5px_rgba\\(0\\,0\\,0\\,0\\.4\\)\\]{--tw-drop-shadow-size:drop-shadow(0 2px 5px var(--tw-drop-shadow-color,#0006));--tw-drop-shadow:var(--tw-drop-shadow-size);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\\:backdrop-blur-sm{--tw-backdrop-blur:blur(var(--skippr-blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.skippr\\:transition-\\[filter\\]{transition-property:filter;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-\\[gap\\]{transition-property:gap;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-\\[height\\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-\\[left\\]{transition-property:left;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\\,transform\\,height\\]{transition-property:opacity,transform,height;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\\,height\\,background-color\\,border-color\\]{transition-property:width,height,background-color,border-color;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\\,margin\\]{transition-property:width,margin;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\\:transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:duration-75{--tw-duration:75ms;transition-duration:75ms}.skippr\\:duration-100{--tw-duration:.1s;transition-duration:.1s}.skippr\\:duration-150{--tw-duration:.15s;transition-duration:.15s}.skippr\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.skippr\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.skippr\\:duration-\\[400ms\\]{--tw-duration:.4s;transition-duration:.4s}.skippr\\:ease-\\[cubic-bezier\\(0\\.22\\,1\\,0\\.36\\,1\\)\\]{--tw-ease:cubic-bezier(.22,1,.36,1);transition-timing-function:cubic-bezier(.22,1,.36,1)}.skippr\\:ease-\\[cubic-bezier\\(0\\.34\\,1\\.3\\,0\\.64\\,1\\)\\]{--tw-ease:cubic-bezier(.34,1.3,.64,1);transition-timing-function:cubic-bezier(.34,1.3,.64,1)}.skippr\\:ease-\\[cubic-bezier\\(0\\.34\\,1\\.56\\,0\\.64\\,1\\)\\]{--tw-ease:cubic-bezier(.34,1.56,.64,1);transition-timing-function:cubic-bezier(.34,1.56,.64,1)}.skippr\\:ease-in-out{--tw-ease:var(--skippr-ease-in-out);transition-timing-function:var(--skippr-ease-in-out)}.skippr\\:ease-out{--tw-ease:var(--skippr-ease-out);transition-timing-function:var(--skippr-ease-out)}.skippr\\:outline-none{--tw-outline-style:none;outline-style:none}.skippr\\:select-none{-webkit-user-select:none;user-select:none}.skippr\\:select-text{-webkit-user-select:text;user-select:text}.skippr\\:\\[animation-delay\\:0ms\\]{animation-delay:0s}.skippr\\:\\[animation-delay\\:150ms\\]{animation-delay:.15s}.skippr\\:\\[animation-delay\\:200ms\\]{animation-delay:.2s}.skippr\\:\\[animation-delay\\:300ms\\]{animation-delay:.3s}.skippr\\:\\[animation-delay\\:400ms\\]{animation-delay:.4s}.skippr\\:\\[overflow-anchor\\:none\\]{overflow-anchor:none}.skippr\\:group-focus-within\\:scale-100:is(:where(.skippr\\:group):focus-within *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:group-focus-within\\:opacity-100:is(:where(.skippr\\:group):focus-within *){opacity:1}@media (hover:hover){.skippr\\:group-hover\\:scale-100:is(:where(.skippr\\:group):hover *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:group-hover\\:text-red-300:is(:where(.skippr\\:group):hover *){color:var(--skippr-color-red-300)}.skippr\\:group-hover\\:text-white\\/80:is(:where(.skippr\\:group):hover *){color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:group-hover\\:text-white\\/80:is(:where(.skippr\\:group):hover *){color:color-mix(in oklab,var(--skippr-color-white)80%,transparent)}}.skippr\\:group-hover\\:opacity-100:is(:where(.skippr\\:group):hover *){opacity:1}}.skippr\\:placeholder\\:text-\\[\\#b0aca4\\]::placeholder{color:#b0aca4}@media (hover:hover){.skippr\\:hover\\:-translate-y-0\\.5:hover{--tw-translate-y:calc(var(--skippr-spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:hover\\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:hover\\:bg-\\[\\#3a384b\\]:hover{background-color:#3a384b}.skippr\\:hover\\:bg-\\[\\#3d3d52\\]:hover{background-color:#3d3d52}.skippr\\:hover\\:bg-\\[\\#f2f0eb\\]:hover{background-color:#f2f0eb}.skippr\\:hover\\:bg-\\[\\#f4f2ee\\]:hover{background-color:#f4f2ee}.skippr\\:hover\\:bg-\\[\\#f6f4f0\\]:hover{background-color:#f6f4f0}.skippr\\:hover\\:bg-accent:hover{background-color:#e7e5e4}.skippr\\:hover\\:bg-amber-100:hover{background-color:var(--skippr-color-amber-100)}.skippr\\:hover\\:bg-bubble:hover{background-color:#2d2b3d}.skippr\\:hover\\:bg-destructive\\/90:hover{background-color:oklab(61.4357% .15892 .0698893/.9)}.skippr\\:hover\\:bg-foreground\\/8:hover{background-color:oklab(14.7% .00261104 .00303026/.08)}.skippr\\:hover\\:bg-muted:hover{background-color:oklch(97% .001 106.424)}.skippr\\:hover\\:bg-neutral-100:hover{background-color:var(--skippr-color-neutral-100)}.skippr\\:hover\\:bg-neutral-200:hover{background-color:var(--skippr-color-neutral-200)}.skippr\\:hover\\:bg-primary\\/90:hover{background-color:var(--skippr-brand,#2d2b3d)}@supports (color:color-mix(in lab, red, red)){.skippr\\:hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab,var(--skippr-brand,#2d2b3d)90%,transparent)}}.skippr\\:hover\\:bg-red-200:hover{background-color:var(--skippr-color-red-200)}.skippr\\:hover\\:bg-red-600:hover{background-color:var(--skippr-color-red-600)}.skippr\\:hover\\:bg-secondary\\/80:hover{background-color:oklab(91.9963% .0175391 .0626889/.8)}.skippr\\:hover\\:bg-transparent:hover{background-color:#0000}.skippr\\:hover\\:bg-white\\/20:hover{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:hover\\:bg-white\\/20:hover{background-color:color-mix(in oklab,var(--skippr-color-white)20%,transparent)}}.skippr\\:hover\\:text-\\[\\#2D2D3F\\]:hover{color:#2d2d3f}.skippr\\:hover\\:text-\\[\\#5a5650\\]:hover{color:#5a5650}.skippr\\:hover\\:text-\\[\\#8b877f\\]:hover{color:#8b877f}.skippr\\:hover\\:text-\\[\\#b8b4ac\\]:hover{color:#b8b4ac}.skippr\\:hover\\:text-accent-foreground:hover{color:oklch(21.6% .006 56.043)}.skippr\\:hover\\:text-foreground:hover{color:oklch(14.7% .004 49.25)}.skippr\\:hover\\:decoration-muted-foreground:hover{text-decoration-color:oklch(55.3% .013 58.071)}.skippr\\:hover\\:opacity-80:hover{opacity:.8}.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\\:hover\\:brightness-\\[1\\.04\\]:hover{--tw-brightness:brightness(1.04);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\\:hover\\:brightness-\\[1\\.06\\]:hover{--tw-brightness:brightness(1.06);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\\:border-primary:focus{border-color:var(--skippr-brand,#2d2b3d)}.skippr\\:focus\\:ring-2:focus{--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\\:ring-primary\\/30:focus{--tw-ring-color:var(--skippr-brand,#2d2b3d)}@supports (color:color-mix(in lab, red, red)){.skippr\\:focus\\:ring-primary\\/30:focus{--tw-ring-color:color-mix(in oklab,var(--skippr-brand,#2d2b3d)30%,transparent)}}.skippr\\:focus-visible\\:border-\\[var\\(--skippr-brand-ring\\)\\]:focus-visible{border-color:var(--skippr-brand-ring)}.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-\\[var\\(--skippr-brand-ring\\)\\]:focus-visible{--tw-ring-color:var(--skippr-brand-ring)}.skippr\\:focus-visible\\:ring-bubble\\/60:focus-visible{--tw-ring-color:oklab(29.9244% .0107414 -.0305411/.6)}.skippr\\:focus-visible\\:ring-ring:focus-visible{--tw-ring-color:oklch(70.9% .01 56.259)}.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-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.skippr\\:focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.skippr\\:focus-visible\\:outline-\\[var\\(--skippr-brand\\)\\]:focus-visible{outline-color:var(--skippr-brand)}.skippr\\:focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.skippr\\:active\\:translate-y-0:active{--tw-translate-y:calc(var(--skippr-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:active\\:scale-\\[0\\.98\\]:active{scale:.98}.skippr\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.skippr\\:disabled\\:cursor-default:disabled{cursor:default}.skippr\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.skippr\\:disabled\\:opacity-50:disabled{opacity:.5}.skippr\\:disabled\\:opacity-60:disabled{opacity:.6}.skippr\\:disabled\\:opacity-80:disabled{opacity:.8}@media (hover:hover){.skippr\\:disabled\\:hover\\:bg-\\[\\#2D2D3F\\]:disabled:hover{background-color:#2d2d3f}.skippr\\:disabled\\:hover\\:bg-white:disabled:hover{background-color:var(--skippr-color-white)}}@media (prefers-reduced-motion:reduce){.skippr\\:motion-reduce\\:hidden{display:none}.skippr\\:motion-reduce\\:scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:motion-reduce\\:animate-none{animation:none}}.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)}}:host{--skippr-brand-active:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){:host{--skippr-brand-active:color-mix(in srgb,var(--skippr-brand,#2bc0ae)93%,#000)}}:host{--skippr-brand-deep:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){:host{--skippr-brand-deep:color-mix(in srgb,var(--skippr-brand,#2bc0ae)78%,#000)}}:host{--skippr-brand-ring:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){:host{--skippr-brand-ring:color-mix(in srgb,var(--skippr-brand,#2bc0ae)22%,transparent)}}:host{--skippr-brand-halo:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){:host{--skippr-brand-halo:color-mix(in srgb,var(--skippr-brand,#2bc0ae)40%,transparent)}}:host{--skippr-brand-glow:linear-gradient(90deg,var(--skippr-brand,#2bc0ae),var(--skippr-brand,#2bc0ae),var(--skippr-brand,#2bc0ae),var(--skippr-brand,#2bc0ae),var(--skippr-brand,#2bc0ae))}@supports (color:color-mix(in lab, red, red)){:host{--skippr-brand-glow:linear-gradient(90deg,var(--skippr-brand,#2bc0ae),color-mix(in srgb,var(--skippr-brand,#2bc0ae)55%,#fff),color-mix(in srgb,var(--skippr-brand,#2bc0ae)72%,#fff),var(--skippr-brand,#2bc0ae),color-mix(in srgb,var(--skippr-brand,#2bc0ae)42%,#fff))}}@keyframes skippr-tap{0%{transform:scale(1)}45%{transform:scale(.7)}to{transform:scale(1)}}@keyframes skippr-press{0%{transform:scale(1)}55%{transform:scale(1)}85%{transform:scale(.68)}to{transform:scale(1)}}@keyframes skippr-cursor-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes skippr-click-ping{0%{opacity:.9;transform:translate(-50%,-50%)scale(.4)}to{opacity:0;transform:translate(-50%,-50%)scale(2.4)}}@keyframes skippr-tab-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes skippr-speak{0%,to{opacity:.6;transform:scaleY(.4)}50%{opacity:1;transform:scaleY(1)}}@keyframes skippr-thinking-dot{0%,80%,to{opacity:.2;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}@keyframes skippr-pulse-ring{0%,to{box-shadow:0 0 #2d2b3d66}50%{box-shadow:0 0 0 10px #2d2b3d00}}@keyframes skippr-rec-ring{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--skippr-brand,#2bc0ae)55%,transparent)}70%{box-shadow:0 0 0 11px #0000}to{box-shadow:0 0 #0000}}@keyframes skippr-voice-pulse{0%{box-shadow:0 0 0 0 var(--skippr-pulse-color,#2bc0ae80)}70%{box-shadow:0 0 0 8px #0000}to{box-shadow:0 0 #0000}}@keyframes skippr-ptt-transmit{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--skippr-brand,#2bc0ae)60%,transparent),0 0 0 0 color-mix(in srgb,var(--skippr-brand,#2bc0ae)35%,transparent)}70%{box-shadow:0 0 0 9px #0000,0 0 0 16px #0000}to{box-shadow:0 0 #0000,0 0 #0000}}@keyframes skippr-annotation-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb,var(--skippr-brand,#2bc0ae)50%,transparent)}50%{box-shadow:0 0 0 6px #0000}}@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)}}@keyframes skippr-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes skippr-evaporate{0%{opacity:1;filter:blur();transform:translateY(0)scale(1)}55%{opacity:.85;filter:blur()}to{opacity:0;filter:blur(2.5px);transform:translateY(-7px)scale(.965)}}@keyframes skippr-mote-rise{0%{opacity:0;transform:translateY(2px)scale(.5)}25%{opacity:.85}to{opacity:0;transform:translateY(-24px)scale(1)}}@keyframes skippr-flow{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes skippr-wave{0%,to{opacity:.4;transform:scaleY(.4)}50%{opacity:1;transform:scaleY(1)}}@keyframes skippr-bubble-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes skippr-tip-in{0%{opacity:0;transform:translateY(14px)scale(.96)}60%{opacity:1;transform:translateY(-2px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes skippr-pill-content{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes skippr-banner-look{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}@keyframes skippr-finger-tap{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(2px)rotate(-6deg)}}@keyframes skippr-toolset-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes skippr-stage-fade{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes skippr-agent-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes skippr-orb-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes skippr-pop{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:none}}@keyframes skippr-blink{0%,40%{transform:scaleY(1)}41.3%,42%{transform:scaleY(.08)}43.3%,70%{transform:scaleY(1)}71.3%,72%{transform:scaleY(.08)}73.3%,to{transform:scaleY(1)}}.skippr-buddy-blink{transform-box:fill-box;transform-origin:50%;animation:5s linear infinite skippr-blink}@keyframes skippr-avatar-eyes-bob{0%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(0)}18%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(24px)}33.33%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(-30px)}48%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(-7px)}64%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(-30px)}82%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(31px)}96%,to{transform:translateY(0)}}@keyframes skippr-avatar-pupil-glance{0%,21.33%{transform:translate(0)}28%,68%{transform:translate(-30px)}74%,to{transform:translate(0)}}@keyframes skippr-avatar-body-vibe{0%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1)}17.67%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1.08,.95)}33.67%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1)}49.67%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1.08,.95)}65.67%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1)}81.67%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1.08,.95)}96%,to{transform:scale(1)}}@keyframes skippr-avatar-blink{0%,40%{transform:scaleY(1)}41.3%,42%{transform:scaleY(.08)}43.3%,70%{transform:scaleY(1)}71.3%,72%{transform:scaleY(.08)}73.3%,to{transform:scaleY(1)}}@keyframes skippr-avatar-bub-tail-drift{0%,10%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translate(0)}45%,60%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translate(-24px)}95%,to{transform:translate(0)}}@keyframes skippr-avatar-antenna-shake{0%,to{transform:rotate(-4deg)}25%{transform:rotate(4deg)}50%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}.skippr-avatar-eyes{animation:5s infinite skippr-avatar-eyes-bob}.skippr-avatar-pupil{animation:5s linear infinite skippr-avatar-pupil-glance}.skippr-avatar-body{transform-box:fill-box;transform-origin:50% 100%;animation:5s infinite skippr-avatar-body-vibe}.skippr-avatar-blink{transform-box:fill-box;transform-origin:50%;animation:5s infinite skippr-avatar-blink}.skippr-avatar-body .skippr-avatar-antenna{transform-box:view-box;transform-origin:48px 22px;animation:1.6s ease-in-out infinite skippr-avatar-antenna-shake}.skippr-avatar-body .skippr-avatar-bub-tail{animation:5s infinite skippr-avatar-bub-tail-drift}@keyframes skippr-buddy-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes skippr-buddy-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes skippr-buddy-pop{0%{transform:scale(1)}50%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes skippr-buddy-sleep{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(1px)scale(.995)}}@keyframes skippr-buddy-zfloat{0%{opacity:0;transform:translateY(0)}20%{opacity:1}to{opacity:0;transform:translateY(-10px)}}@keyframes skippr-peek-left{0%,20%{transform:translate(-58%)}46%,66%{transform:translate(0)}92%,to{transform:translate(-58%)}}@keyframes skippr-peek-right{0%,20%{transform:translate(58%)}46%,66%{transform:translate(0)}92%,to{transform:translate(58%)}}@keyframes skippr-peek-top{0%,20%{transform:translateY(-58%)}46%,66%{transform:translateY(0)}92%,to{transform:translateY(-58%)}}@keyframes skippr-peek-bottom{0%,20%{transform:translateY(58%)}46%,66%{transform:translateY(0)}92%,to{transform:translateY(58%)}}.skippr-peek-left{animation:3.6s ease-in-out infinite skippr-peek-left}.skippr-peek-right{animation:3.6s ease-in-out infinite skippr-peek-right}.skippr-peek-top{animation:3.6s ease-in-out infinite skippr-peek-top}.skippr-peek-bottom{animation:3.6s ease-in-out infinite skippr-peek-bottom}.skippr-peek-out{animation:none;transform:none}@keyframes skippr-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(4px)}}@keyframes skippr-block-reveal{0%{opacity:0;max-height:0;transform:translateY(-4px)}55%{opacity:1}to{opacity:1;max-height:260px;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.skippr-buddy-blink,[style*=skippr-blink],[style*=skippr-buddy-bob],[style*=skippr-buddy-breathe],[style*=skippr-buddy-pop],[style*=skippr-buddy-sleep],[style*=skippr-buddy-zfloat],.skippr-avatar-eyes,.skippr-avatar-pupil,.skippr-avatar-body,.skippr-avatar-blink,.skippr-avatar-body .skippr-avatar-antenna,.skippr-avatar-body .skippr-avatar-bub-tail,.skippr-peek-left,.skippr-peek-right,.skippr-peek-top,.skippr-peek-bottom{animation-play-state:paused}}.skippr-no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.skippr-no-scrollbar::-webkit-scrollbar{display:none}:host{color:var(--color-foreground)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@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-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}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@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}}`;
|
|
8193
8258
|
const hostStyle = accentColor && isHexColor(accentColor) ? {
|
|
8194
8259
|
"--skippr-brand": accentColor,
|
|
8195
8260
|
"--skippr-brand-foreground": brandForeground(accentColor)
|
|
@@ -8219,7 +8284,7 @@ function ShadowHost({
|
|
|
8219
8284
|
}
|
|
8220
8285
|
|
|
8221
8286
|
// src/components/Sidebar.tsx
|
|
8222
|
-
import { useContext as useContext18, useEffect as useEffect36 } from "react";
|
|
8287
|
+
import { useCallback as useCallback26, useContext as useContext18, useEffect as useEffect36, useRef as useRef32 } from "react";
|
|
8223
8288
|
|
|
8224
8289
|
// src/hooks/useCombinedMessages.ts
|
|
8225
8290
|
import { useContext as useContext12, useMemo as useMemo7 } from "react";
|
|
@@ -8410,7 +8475,7 @@ function useSessionRemaining() {
|
|
|
8410
8475
|
}
|
|
8411
8476
|
|
|
8412
8477
|
// src/components/ChatHeader.tsx
|
|
8413
|
-
import { useContext as useContext15
|
|
8478
|
+
import { useContext as useContext15 } from "react";
|
|
8414
8479
|
|
|
8415
8480
|
// src/hooks/useTextMode.ts
|
|
8416
8481
|
import { useLocalParticipant as useLocalParticipant11 } from "@livekit/components-react/hooks";
|
|
@@ -8449,21 +8514,15 @@ function useTextMode() {
|
|
|
8449
8514
|
import { jsx as jsx28, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
8450
8515
|
var TABS_PILL_BASE = "skippr:cursor-pointer skippr:rounded-full skippr:border-none skippr:bg-transparent skippr:px-[9px] skippr:py-[3px] skippr:text-[11.5px] skippr:font-semibold skippr:text-[#8b877f] skippr:transition-colors";
|
|
8451
8516
|
var TABS_PILL_ACTIVE = "skippr:bg-white skippr:text-[#2D2D3F] skippr:shadow-[0_1px_2px_rgba(45,45,63,0.08)]";
|
|
8452
|
-
function ChatHeader() {
|
|
8517
|
+
function ChatHeader({ wasDraggedRef, draggable, headerRef }) {
|
|
8453
8518
|
const ctx = useContext15(LiveAgentContext);
|
|
8454
8519
|
if (!ctx) {
|
|
8455
8520
|
throw new Error("ChatHeader must be used within a <LiveAgent> provider");
|
|
8456
8521
|
}
|
|
8457
8522
|
const {
|
|
8458
8523
|
isConnected,
|
|
8459
|
-
variant,
|
|
8460
|
-
isPanelOpen,
|
|
8461
8524
|
minimizable,
|
|
8462
8525
|
minimizePanel,
|
|
8463
|
-
commitLauncherDrop,
|
|
8464
|
-
panelRef,
|
|
8465
|
-
controlBarRef,
|
|
8466
|
-
setIsDragging,
|
|
8467
8526
|
sidebarTab,
|
|
8468
8527
|
setSidebarTab,
|
|
8469
8528
|
agentMode,
|
|
@@ -8476,17 +8535,14 @@ function ChatHeader() {
|
|
|
8476
8535
|
const displayedMode = agentMode ?? defaultModule?.mode ?? null;
|
|
8477
8536
|
const showAgenda = displayedMode !== AGENT_MODE.AlwaysOn;
|
|
8478
8537
|
const showToggle = isConnected && (sidebarTab === "chat" || !showAgenda);
|
|
8479
|
-
const headerRef = useRef29(null);
|
|
8480
|
-
const followsPanel = variant === "floating" && isPanelOpen;
|
|
8481
|
-
const dragFollowers = followsPanel ? [panelRef, controlBarRef] : null;
|
|
8482
|
-
const { wasDraggedRef } = useLauncherDrag(headerRef, commitLauncherDrop, dragFollowers, setIsDragging);
|
|
8483
8538
|
return /* @__PURE__ */ jsxs22("header", {
|
|
8484
8539
|
ref: headerRef,
|
|
8485
|
-
className: cn("skippr:sticky skippr:top-0 skippr:z-10 skippr:flex skippr:shrink-0 skippr:items-center skippr:gap-[7px] skippr:border-b skippr:border-[rgba(45,45,63,0.08)] skippr:bg-white skippr:pl-[13px] skippr:pr-[9px] skippr:pt-[9px] skippr:pb-[8px]",
|
|
8540
|
+
className: cn("skippr:sticky skippr:top-0 skippr:z-10 skippr:flex skippr:shrink-0 skippr:items-center skippr:gap-[7px] skippr:border-b skippr:border-[rgba(45,45,63,0.08)] skippr:bg-white skippr:pl-[13px] skippr:pr-[9px] skippr:pt-[9px] skippr:pb-[8px]", draggable && "skippr:cursor-grab"),
|
|
8486
8541
|
children: [
|
|
8487
8542
|
showAgenda ? /* @__PURE__ */ jsxs22("div", {
|
|
8488
8543
|
role: "tablist",
|
|
8489
8544
|
"aria-label": "Panel",
|
|
8545
|
+
"data-skippr-no-drag": "",
|
|
8490
8546
|
className: "skippr:flex skippr:gap-[2px] skippr:rounded-full skippr:bg-[#f4f2ee] skippr:p-[2px]",
|
|
8491
8547
|
children: [
|
|
8492
8548
|
/* @__PURE__ */ jsx28("button", {
|
|
@@ -8508,7 +8564,7 @@ function ChatHeader() {
|
|
|
8508
8564
|
]
|
|
8509
8565
|
}) : /* @__PURE__ */ jsx28("span", {
|
|
8510
8566
|
className: "skippr:text-[12.5px] skippr:font-semibold skippr:tracking-[-0.01em] skippr:text-[#2D2D3F]",
|
|
8511
|
-
children: "
|
|
8567
|
+
children: "Skippr AI"
|
|
8512
8568
|
}),
|
|
8513
8569
|
/* @__PURE__ */ jsx28("div", {
|
|
8514
8570
|
className: "skippr:flex-1"
|
|
@@ -8519,6 +8575,7 @@ function ChatHeader() {
|
|
|
8519
8575
|
onClick: () => void toggleTextMode(),
|
|
8520
8576
|
title: textMode ? "Switch to voice" : "Switch to text",
|
|
8521
8577
|
"aria-label": textMode ? "Switch to voice" : "Switch to text",
|
|
8578
|
+
"data-skippr-no-drag": "",
|
|
8522
8579
|
className: "skippr:flex skippr:h-[26px] skippr:shrink-0 skippr:cursor-pointer skippr:items-center skippr:gap-[5px] skippr:rounded-full skippr:border skippr:border-[rgba(45,45,63,0.12)] skippr:bg-white skippr:pl-[9px] skippr:pr-[10px] skippr:text-[11px] skippr:font-semibold skippr:text-[#5c5850] skippr:transition-colors skippr:hover:bg-[#f6f4f0] skippr:hover:text-[#2D2D3F] skippr:disabled:cursor-not-allowed skippr:disabled:opacity-50",
|
|
8523
8580
|
children: [
|
|
8524
8581
|
textMode ? /* @__PURE__ */ jsx28(Mic, {
|
|
@@ -8539,6 +8596,7 @@ function ChatHeader() {
|
|
|
8539
8596
|
},
|
|
8540
8597
|
"aria-label": "Close",
|
|
8541
8598
|
title: "Close",
|
|
8599
|
+
"data-skippr-no-drag": "",
|
|
8542
8600
|
className: "skippr:flex skippr:size-[26px] skippr:shrink-0 skippr:cursor-pointer skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-transparent skippr:text-[#a8a49c] skippr:transition-colors skippr:hover:bg-[#f4f2ee] skippr:hover:text-[#2D2D3F]",
|
|
8543
8601
|
children: /* @__PURE__ */ jsx28(X, {
|
|
8544
8602
|
className: "skippr:size-[14px]",
|
|
@@ -8578,10 +8636,10 @@ function LoadingDots({ label }) {
|
|
|
8578
8636
|
}
|
|
8579
8637
|
|
|
8580
8638
|
// src/components/MessageList.tsx
|
|
8581
|
-
import { useCallback as useCallback25, useLayoutEffect as useLayoutEffect3, useRef as
|
|
8639
|
+
import { useCallback as useCallback25, useLayoutEffect as useLayoutEffect3, useRef as useRef31, useState as useState27 } from "react";
|
|
8582
8640
|
|
|
8583
8641
|
// src/components/ChatInput.tsx
|
|
8584
|
-
import { useContext as useContext16, useEffect as useEffect33, useRef as
|
|
8642
|
+
import { useContext as useContext16, useEffect as useEffect33, useRef as useRef29, useState as useState24 } from "react";
|
|
8585
8643
|
import { jsx as jsx30, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
8586
8644
|
var MAX_INPUT_HEIGHT = 60;
|
|
8587
8645
|
function ChatInput({ sendChatMessage, isSendingChat, autoFocus = false }) {
|
|
@@ -8591,7 +8649,7 @@ function ChatInput({ sendChatMessage, isSendingChat, autoFocus = false }) {
|
|
|
8591
8649
|
const [localDraft, setLocalDraft] = useState24("");
|
|
8592
8650
|
const inputText = ctx?.chatDraft ?? localDraft;
|
|
8593
8651
|
const setInputText = ctx?.setChatDraft ?? setLocalDraft;
|
|
8594
|
-
const textareaRef =
|
|
8652
|
+
const textareaRef = useRef29(null);
|
|
8595
8653
|
const canSend = inputText.trim().length > 0 && !isSendingChat;
|
|
8596
8654
|
useEffect33(() => {
|
|
8597
8655
|
if (autoFocus && isPanelOpen !== false)
|
|
@@ -8626,6 +8684,7 @@ function ChatInput({ sendChatMessage, isSendingChat, autoFocus = false }) {
|
|
|
8626
8684
|
}
|
|
8627
8685
|
return /* @__PURE__ */ jsxs24("form", {
|
|
8628
8686
|
onSubmit: handleSubmit,
|
|
8687
|
+
"data-skippr-no-drag": "",
|
|
8629
8688
|
className: "skippr:flex skippr:items-center skippr:gap-[7px] skippr:border-t skippr:border-[rgba(45,45,63,0.08)] skippr:bg-white skippr:p-[9px]",
|
|
8630
8689
|
children: [
|
|
8631
8690
|
/* @__PURE__ */ jsx30("textarea", {
|
|
@@ -8687,7 +8746,7 @@ function ChatMessage({ message }) {
|
|
|
8687
8746
|
}
|
|
8688
8747
|
|
|
8689
8748
|
// src/components/LinkCard.tsx
|
|
8690
|
-
import { useCallback as useCallback24, useEffect as useEffect34, useRef as
|
|
8749
|
+
import { useCallback as useCallback24, useEffect as useEffect34, useRef as useRef30, useState as useState25 } from "react";
|
|
8691
8750
|
|
|
8692
8751
|
// src/lib/clipboard.ts
|
|
8693
8752
|
async function copyToClipboard(text) {
|
|
@@ -8705,7 +8764,7 @@ var COPIED_RESET_MS = 2000;
|
|
|
8705
8764
|
var DISMISS_AFTER_COPY_MS = 3000;
|
|
8706
8765
|
function LinkCard({ card, onDismiss }) {
|
|
8707
8766
|
const [copied, setCopied] = useState25(false);
|
|
8708
|
-
const dismissTimerRef =
|
|
8767
|
+
const dismissTimerRef = useRef30(null);
|
|
8709
8768
|
useEffect34(() => {
|
|
8710
8769
|
if (!copied)
|
|
8711
8770
|
return;
|
|
@@ -8932,9 +8991,9 @@ function MessageList({
|
|
|
8932
8991
|
autoFocus = false,
|
|
8933
8992
|
readOnly = false
|
|
8934
8993
|
}) {
|
|
8935
|
-
const containerRef =
|
|
8936
|
-
const isPinnedToBottom =
|
|
8937
|
-
const lastSeenMessageId =
|
|
8994
|
+
const containerRef = useRef31(null);
|
|
8995
|
+
const isPinnedToBottom = useRef31(true);
|
|
8996
|
+
const lastSeenMessageId = useRef31(undefined);
|
|
8938
8997
|
const [showJumpToLatest, setShowJumpToLatest] = useState27(false);
|
|
8939
8998
|
const lastMessage = messages.length > 0 ? messages[messages.length - 1] : undefined;
|
|
8940
8999
|
const [dismissedPlanId, setDismissedPlanId] = useState27(null);
|
|
@@ -8988,7 +9047,8 @@ function MessageList({
|
|
|
8988
9047
|
/* @__PURE__ */ jsxs29("div", {
|
|
8989
9048
|
ref: containerRef,
|
|
8990
9049
|
onScroll: handleScroll,
|
|
8991
|
-
|
|
9050
|
+
"data-skippr-no-drag": "",
|
|
9051
|
+
className: "skippr:min-h-0 skippr:flex-1 skippr:select-text skippr:space-y-4 skippr:overflow-y-auto skippr:p-4 skippr:[overflow-anchor:none]",
|
|
8992
9052
|
children: [
|
|
8993
9053
|
messages.length === 0 && !showTyping && (readOnly ? /* @__PURE__ */ jsx35("p", {
|
|
8994
9054
|
className: "skippr:px-2 skippr:py-6 skippr:text-center skippr:text-sm skippr:text-muted-foreground",
|
|
@@ -9014,6 +9074,7 @@ function MessageList({
|
|
|
9014
9074
|
]
|
|
9015
9075
|
}),
|
|
9016
9076
|
sendChatMessage && isPlanVisible(plan) && plan.planId !== dismissedPlanId && /* @__PURE__ */ jsx35("div", {
|
|
9077
|
+
"data-skippr-no-drag": "",
|
|
9017
9078
|
className: "skippr:shrink-0 skippr:border-t skippr:border-border skippr:p-3",
|
|
9018
9079
|
children: /* @__PURE__ */ jsx35(PlanCard, {
|
|
9019
9080
|
plan,
|
|
@@ -9022,6 +9083,7 @@ function MessageList({
|
|
|
9022
9083
|
}, plan.planId)
|
|
9023
9084
|
}),
|
|
9024
9085
|
linkCard && linkCard.cardId !== dismissedLinkCardId && /* @__PURE__ */ jsx35("div", {
|
|
9086
|
+
"data-skippr-no-drag": "",
|
|
9025
9087
|
className: "skippr:shrink-0 skippr:border-t skippr:border-border skippr:p-3",
|
|
9026
9088
|
children: /* @__PURE__ */ jsx35(LinkCard, {
|
|
9027
9089
|
card: linkCard,
|
|
@@ -9182,39 +9244,55 @@ function Sidebar({
|
|
|
9182
9244
|
phases: [],
|
|
9183
9245
|
isLoading: false
|
|
9184
9246
|
};
|
|
9185
|
-
const
|
|
9186
|
-
const
|
|
9187
|
-
const
|
|
9188
|
-
const barCentreY = barDock && !barIsTopBottom ? barDock.offsetPx : 0;
|
|
9189
|
-
const popsDown = barIsTopBottom ? barEdge === "top" : barCentreY < window.innerHeight / 2;
|
|
9247
|
+
const barPos = internalCtx?.barPos ?? null;
|
|
9248
|
+
const popsDown = barPos ? barPopsDown(barPos) : false;
|
|
9249
|
+
const isLeftAligned = barPos ? barLeftAligned(barPos) : false;
|
|
9190
9250
|
const panelExpanded = internalCtx?.panelExpanded ?? false;
|
|
9191
9251
|
const defaultModule = displayModules.find((m) => m.id === defaultAgentId) ?? null;
|
|
9192
9252
|
const displayedMode = agentMode ?? defaultModule?.mode ?? null;
|
|
9193
9253
|
const showAgenda = displayedMode !== AGENT_MODE.AlwaysOn;
|
|
9194
9254
|
const isFloating = variant === "floating";
|
|
9195
9255
|
const isSidebar = variant === "sidebar";
|
|
9196
|
-
const
|
|
9256
|
+
const setBarPos = internalCtx?.setBarPos;
|
|
9257
|
+
const voiceBarRef = internalCtx?.voiceBarRef;
|
|
9258
|
+
const panelRef = internalCtx?.panelRef;
|
|
9259
|
+
const controlBarRef = internalCtx?.controlBarRef;
|
|
9260
|
+
const setIsDragging = internalCtx?.setIsDragging;
|
|
9261
|
+
const onPanelDrop = useCallback26((_drop) => {
|
|
9262
|
+
if (!voiceBarRef?.current || !setBarPos)
|
|
9263
|
+
return;
|
|
9264
|
+
const rect = voiceBarRef.current.getBoundingClientRect();
|
|
9265
|
+
setBarPos(clampBarPos({ x: rect.left, y: rect.top }));
|
|
9266
|
+
}, [setBarPos, voiceBarRef]);
|
|
9267
|
+
const followsPanel = isFloating && isPanelOpen;
|
|
9268
|
+
const dragFollowers = followsPanel && panelRef && controlBarRef && voiceBarRef ? [panelRef, controlBarRef, voiceBarRef] : null;
|
|
9269
|
+
const headerRef = useRef32(null);
|
|
9270
|
+
const { wasDraggedRef } = useLauncherDrag(headerRef, onPanelDrop, dragFollowers, setIsDragging, isFloating);
|
|
9197
9271
|
let floatingStyle;
|
|
9198
|
-
if (isFloating) {
|
|
9199
|
-
|
|
9200
|
-
|
|
9201
|
-
|
|
9202
|
-
|
|
9203
|
-
|
|
9204
|
-
|
|
9205
|
-
|
|
9206
|
-
}
|
|
9207
|
-
|
|
9208
|
-
|
|
9209
|
-
|
|
9210
|
-
|
|
9211
|
-
|
|
9212
|
-
|
|
9213
|
-
|
|
9214
|
-
|
|
9215
|
-
|
|
9216
|
-
|
|
9217
|
-
|
|
9272
|
+
if (isFloating && barPos) {
|
|
9273
|
+
const barBottom = barPos.y + VOICE_BAR_HEIGHT_PX;
|
|
9274
|
+
const topAnchorPx = barBottom + PANEL_GAP_PX;
|
|
9275
|
+
const bottomAnchorPx = window.innerHeight - barPos.y + PANEL_GAP_PX;
|
|
9276
|
+
const availableHeightDown = `calc(100vh - ${topAnchorPx + PANEL_VIEWPORT_MARGIN_PX}px)`;
|
|
9277
|
+
const availableHeightUp = `${barPos.y - PANEL_GAP_PX - PANEL_VIEWPORT_MARGIN_PX}px`;
|
|
9278
|
+
const availableHeight = popsDown ? availableHeightDown : availableHeightUp;
|
|
9279
|
+
floatingStyle = {
|
|
9280
|
+
...popsDown ? { top: topAnchorPx } : { bottom: bottomAnchorPx },
|
|
9281
|
+
...isLeftAligned ? {
|
|
9282
|
+
left: `clamp(${PANEL_VIEWPORT_MARGIN_PX}px, ${barPos.x}px, calc(100vw - ${PANEL_VIEWPORT_MARGIN_PX + SIDEBAR_WIDTH}px))`
|
|
9283
|
+
} : {
|
|
9284
|
+
right: `clamp(${PANEL_VIEWPORT_MARGIN_PX}px, calc(100vw - ${barPos.x + VOICE_BAR_WIDTH_PX}px), calc(100vw - ${PANEL_VIEWPORT_MARGIN_PX + SIDEBAR_WIDTH}px))`
|
|
9285
|
+
},
|
|
9286
|
+
height: panelExpanded ? availableHeight : `min(${PANEL_MAX_HEIGHT_PX}px, ${availableHeight})`
|
|
9287
|
+
};
|
|
9288
|
+
} else if (isFloating) {
|
|
9289
|
+
const defaultBottomAnchorPx = VOICE_BAR_EDGE_MARGIN_PX + VOICE_BAR_HEIGHT_PX + PANEL_GAP_PX;
|
|
9290
|
+
const defaultAvailableHeight = `calc(100vh - ${defaultBottomAnchorPx + PANEL_VIEWPORT_MARGIN_PX}px)`;
|
|
9291
|
+
floatingStyle = {
|
|
9292
|
+
bottom: defaultBottomAnchorPx,
|
|
9293
|
+
left: `clamp(${PANEL_VIEWPORT_MARGIN_PX}px, 50vw - ${SIDEBAR_WIDTH / 2}px, calc(100vw - ${PANEL_VIEWPORT_MARGIN_PX + SIDEBAR_WIDTH}px))`,
|
|
9294
|
+
height: panelExpanded ? defaultAvailableHeight : `min(${PANEL_MAX_HEIGHT_PX}px, ${defaultAvailableHeight})`
|
|
9295
|
+
};
|
|
9218
9296
|
}
|
|
9219
9297
|
useEffect36(() => {
|
|
9220
9298
|
if (!isSidebar)
|
|
@@ -9232,10 +9310,14 @@ function Sidebar({
|
|
|
9232
9310
|
}, [isSidebar, isPanelOpen, position]);
|
|
9233
9311
|
return /* @__PURE__ */ jsxs31("div", {
|
|
9234
9312
|
ref: internalCtx?.panelRef,
|
|
9235
|
-
className: cn("skippr:fixed skippr:z-[9999]", "skippr:bg-card", "skippr:flex skippr:flex-col", "skippr:overflow-hidden", isFloating && "skippr:rounded-[16px] skippr:border skippr:border-[rgba(45,45,63,0.08)] skippr:shadow-[0_14px_34px_rgba(45,45,63,0.15),0_2px_6px_rgba(45,45,63,0.06)]", isFloating && "skippr:transition-[opacity,transform,height] skippr:duration-300 skippr:ease-in-out", isFloating && (
|
|
9313
|
+
className: cn("skippr:fixed skippr:z-[9999]", "skippr:bg-card", "skippr:flex skippr:flex-col", "skippr:overflow-hidden", isFloating && "skippr:rounded-[16px] skippr:border skippr:border-[rgba(45,45,63,0.08)] skippr:shadow-[0_14px_34px_rgba(45,45,63,0.15),0_2px_6px_rgba(45,45,63,0.06)]", isFloating && "skippr:transition-[opacity,transform,height] skippr:duration-300 skippr:ease-in-out", isFloating && (popsDown ? isLeftAligned ? "skippr:origin-top-left" : "skippr:origin-top-right" : isLeftAligned ? "skippr:origin-bottom-left" : "skippr:origin-bottom-right"), isFloating && !isPanelOpen && "skippr:scale-0 skippr:opacity-0 skippr:pointer-events-none", isFloating && isPanelOpen && "skippr:scale-100 skippr:opacity-100", followsPanel && "skippr:select-none", 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"),
|
|
9236
9314
|
style: { width: isPanelOpen ? SIDEBAR_WIDTH : undefined, ...floatingStyle },
|
|
9237
9315
|
children: [
|
|
9238
|
-
!hideHeader && /* @__PURE__ */ jsx38(ChatHeader, {
|
|
9316
|
+
!hideHeader && /* @__PURE__ */ jsx38(ChatHeader, {
|
|
9317
|
+
wasDraggedRef,
|
|
9318
|
+
draggable: followsPanel,
|
|
9319
|
+
headerRef
|
|
9320
|
+
}),
|
|
9239
9321
|
authFailed ? /* @__PURE__ */ jsx38(AuthError, {}) : isAuthenticated && hasResolvedModules ? /* @__PURE__ */ jsx38(AuthenticatedContent, {
|
|
9240
9322
|
isConnected,
|
|
9241
9323
|
isPaused,
|
|
@@ -9257,11 +9339,14 @@ function Sidebar({
|
|
|
9257
9339
|
children: /* @__PURE__ */ jsx38(LoadingDots, {
|
|
9258
9340
|
label: "Loading..."
|
|
9259
9341
|
})
|
|
9260
|
-
}) : /* @__PURE__ */ jsx38(
|
|
9261
|
-
|
|
9262
|
-
|
|
9263
|
-
|
|
9264
|
-
|
|
9342
|
+
}) : /* @__PURE__ */ jsx38("div", {
|
|
9343
|
+
"data-skippr-no-drag": "",
|
|
9344
|
+
children: /* @__PURE__ */ jsx38(LoginFlow, {
|
|
9345
|
+
requestOtp,
|
|
9346
|
+
verifyOtp,
|
|
9347
|
+
error: authError,
|
|
9348
|
+
isSubmitting: isAuthSubmitting
|
|
9349
|
+
})
|
|
9265
9350
|
})
|
|
9266
9351
|
]
|
|
9267
9352
|
});
|
|
@@ -9309,6 +9394,7 @@ function AuthenticatedContent({
|
|
|
9309
9394
|
})
|
|
9310
9395
|
}),
|
|
9311
9396
|
!hideControls && /* @__PURE__ */ jsx38("div", {
|
|
9397
|
+
"data-skippr-no-drag": "",
|
|
9312
9398
|
className: "skippr:shrink-0 skippr:border-t skippr:border-border",
|
|
9313
9399
|
children: /* @__PURE__ */ jsxs31("div", {
|
|
9314
9400
|
className: "skippr:flex skippr:items-center skippr:justify-center skippr:gap-1 skippr:px-4 skippr:pt-1 skippr:pb-0.5 skippr:text-[10px] skippr:text-muted-foreground",
|
|
@@ -9334,8 +9420,13 @@ function AuthenticatedContent({
|
|
|
9334
9420
|
})
|
|
9335
9421
|
}),
|
|
9336
9422
|
/* @__PURE__ */ jsx38("div", {
|
|
9337
|
-
|
|
9338
|
-
|
|
9423
|
+
"data-skippr-no-drag": "",
|
|
9424
|
+
className: `skippr:shrink-0 skippr:px-2${hideControls ? " skippr:pb-4 skippr:border-t skippr:border-border skippr:pt-1" : " skippr:pb-1"}`,
|
|
9425
|
+
children: /* @__PURE__ */ jsx38(ConsentNotice, {
|
|
9426
|
+
leadIn: "By continuing",
|
|
9427
|
+
determiner: "the",
|
|
9428
|
+
className: "skippr:whitespace-nowrap skippr:text-[10px]"
|
|
9429
|
+
})
|
|
9339
9430
|
})
|
|
9340
9431
|
]
|
|
9341
9432
|
});
|
|
@@ -9385,6 +9476,7 @@ function IdleHistory({
|
|
|
9385
9476
|
className: "skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col skippr:animate-skippr-tab-fade",
|
|
9386
9477
|
children: [
|
|
9387
9478
|
activeTab === "agenda" ? /* @__PURE__ */ jsx38("div", {
|
|
9479
|
+
"data-skippr-no-drag": "",
|
|
9388
9480
|
className: "skippr:min-h-0 skippr:flex-1 skippr:overflow-y-auto",
|
|
9389
9481
|
children: /* @__PURE__ */ jsx38(SessionAgenda, {
|
|
9390
9482
|
phases: history2.phases,
|
|
@@ -9396,6 +9488,7 @@ function IdleHistory({
|
|
|
9396
9488
|
readOnly: true
|
|
9397
9489
|
}),
|
|
9398
9490
|
(showTalk || error) && /* @__PURE__ */ jsxs31("div", {
|
|
9491
|
+
"data-skippr-no-drag": "",
|
|
9399
9492
|
className: "skippr:shrink-0 skippr:border-t skippr:border-border skippr:p-3",
|
|
9400
9493
|
children: [
|
|
9401
9494
|
showTalk && /* @__PURE__ */ jsxs31("button", {
|
|
@@ -9432,6 +9525,7 @@ function ConnectedBody({
|
|
|
9432
9525
|
const { isHeld } = useSessionHoldContext();
|
|
9433
9526
|
if (activeTab === "agenda") {
|
|
9434
9527
|
return /* @__PURE__ */ jsx38("div", {
|
|
9528
|
+
"data-skippr-no-drag": "",
|
|
9435
9529
|
className: "skippr:min-h-0 skippr:flex-1 skippr:overflow-y-auto skippr:animate-skippr-tab-fade",
|
|
9436
9530
|
children: /* @__PURE__ */ jsx38(SessionAgenda, {
|
|
9437
9531
|
phases,
|
|
@@ -9534,7 +9628,7 @@ function SidebarTrigger() {
|
|
|
9534
9628
|
}
|
|
9535
9629
|
|
|
9536
9630
|
// src/components/VoiceBar.tsx
|
|
9537
|
-
import { useCallback as
|
|
9631
|
+
import { useCallback as useCallback32, useContext as useContext24, useState as useState38 } from "react";
|
|
9538
9632
|
|
|
9539
9633
|
// src/hooks/useBarNotifications.ts
|
|
9540
9634
|
import { useContext as useContext21 } from "react";
|
|
@@ -9575,8 +9669,7 @@ function useBarNotifications() {
|
|
|
9575
9669
|
agentMode,
|
|
9576
9670
|
hasResolvedModules,
|
|
9577
9671
|
isConnected,
|
|
9578
|
-
|
|
9579
|
-
startAdoptionSession,
|
|
9672
|
+
previewStart,
|
|
9580
9673
|
attendGoal
|
|
9581
9674
|
} = ctx;
|
|
9582
9675
|
const tips = useAdoptionTips();
|
|
@@ -9590,7 +9683,7 @@ function useBarNotifications() {
|
|
|
9590
9683
|
activate: inAlwaysOnSession ? () => {
|
|
9591
9684
|
attendGoal(goal.goalId);
|
|
9592
9685
|
sendChatMessage(goal.objective).catch((e) => console.warn("[Skippr] tip prompt send failed", e));
|
|
9593
|
-
} : () =>
|
|
9686
|
+
} : () => previewStart({ kind: PENDING_START_KIND.Goal, goal })
|
|
9594
9687
|
}));
|
|
9595
9688
|
const moduleNotifications = !hasResolvedModules ? [] : displayModules.filter((module) => module.id !== defaultAgentId && module.id !== activeModule?.id).filter((module) => {
|
|
9596
9689
|
const state = getModuleSessionState(module.currentSession, module.mode);
|
|
@@ -9600,24 +9693,24 @@ function useBarNotifications() {
|
|
|
9600
9693
|
kind: NOTIFICATION_KIND.Module,
|
|
9601
9694
|
message: module.name,
|
|
9602
9695
|
accentColor: MODULE_ACCENT_COLOR,
|
|
9603
|
-
activate: () =>
|
|
9696
|
+
activate: () => previewStart({ kind: PENDING_START_KIND.Module, moduleId: module.id })
|
|
9604
9697
|
}));
|
|
9605
9698
|
return [...tipNotifications, ...moduleNotifications];
|
|
9606
9699
|
}
|
|
9607
9700
|
|
|
9608
9701
|
// src/components/VoiceBarFrame.tsx
|
|
9609
9702
|
import { useIsSpeaking, useLocalParticipant as useLocalParticipant13 } from "@livekit/components-react/hooks";
|
|
9610
|
-
import { useCallback as
|
|
9703
|
+
import { useCallback as useCallback30, useContext as useContext23, useEffect as useEffect46, useRef as useRef39, useState as useState35 } from "react";
|
|
9611
9704
|
|
|
9612
9705
|
// src/hooks/useHighlightControl.ts
|
|
9613
9706
|
import { useLocalParticipant as useLocalParticipant12 } from "@livekit/components-react/hooks";
|
|
9614
|
-
import { useCallback as
|
|
9707
|
+
import { useCallback as useCallback27, useEffect as useEffect37, useState as useState28 } from "react";
|
|
9615
9708
|
var textEncoder7 = new TextEncoder;
|
|
9616
9709
|
function useHighlightControl() {
|
|
9617
9710
|
const { localParticipant } = useLocalParticipant12();
|
|
9618
9711
|
const [active, setActive] = useState28(isHighlightActive);
|
|
9619
9712
|
useEffect37(() => subscribeHighlightActive(setActive), []);
|
|
9620
|
-
const requestClear =
|
|
9713
|
+
const requestClear = useCallback27(async () => {
|
|
9621
9714
|
clearHighlight();
|
|
9622
9715
|
try {
|
|
9623
9716
|
await localParticipant.publishData(textEncoder7.encode(JSON.stringify({ type: "dismiss" })), {
|
|
@@ -9801,12 +9894,10 @@ function useVoiceBarDrag(containerRef, onDrop, followRefs, reportDragging) {
|
|
|
9801
9894
|
return;
|
|
9802
9895
|
if (dragging) {
|
|
9803
9896
|
const rect = el.getBoundingClientRect();
|
|
9804
|
-
const centerX = rect.left + rect.width / 2;
|
|
9805
|
-
const centerY = rect.top + rect.height / 2;
|
|
9806
9897
|
clearDragOffset();
|
|
9807
9898
|
for (const follower of followers)
|
|
9808
9899
|
follower.style.transform = "";
|
|
9809
|
-
flushSync2(() => onDropRef.current(
|
|
9900
|
+
flushSync2(() => onDropRef.current(clampBarPos({ x: rect.left, y: rect.top })));
|
|
9810
9901
|
}
|
|
9811
9902
|
endDrag();
|
|
9812
9903
|
};
|
|
@@ -9881,11 +9972,11 @@ function useVoiceBarDrag(containerRef, onDrop, followRefs, reportDragging) {
|
|
|
9881
9972
|
}
|
|
9882
9973
|
|
|
9883
9974
|
// src/components/VoiceBarChatLine.tsx
|
|
9884
|
-
import { useCallback as
|
|
9975
|
+
import { useCallback as useCallback28, useContext as useContext22, useEffect as useEffect42, useRef as useRef36, useState as useState31 } from "react";
|
|
9885
9976
|
import { jsx as jsx41, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
9886
9977
|
var IDLE_HIDE_MS = 6000;
|
|
9887
9978
|
function VoiceBarChatLine({
|
|
9888
|
-
|
|
9979
|
+
popsDown,
|
|
9889
9980
|
canSend,
|
|
9890
9981
|
onClose,
|
|
9891
9982
|
embedded = false
|
|
@@ -9900,7 +9991,7 @@ function VoiceBarChatLine({
|
|
|
9900
9991
|
const idleTimerRef = useRef36(null);
|
|
9901
9992
|
const onCloseRef = useRef36(onClose);
|
|
9902
9993
|
onCloseRef.current = onClose;
|
|
9903
|
-
const armIdle =
|
|
9994
|
+
const armIdle = useCallback28(() => {
|
|
9904
9995
|
if (idleTimerRef.current)
|
|
9905
9996
|
clearTimeout(idleTimerRef.current);
|
|
9906
9997
|
idleTimerRef.current = setTimeout(() => onCloseRef.current(), IDLE_HIDE_MS);
|
|
@@ -9929,7 +10020,7 @@ function VoiceBarChatLine({
|
|
|
9929
10020
|
position: "absolute",
|
|
9930
10021
|
left: 0,
|
|
9931
10022
|
width: 255,
|
|
9932
|
-
...
|
|
10023
|
+
...popsDown ? { top: "calc(100% + 12px)" } : { bottom: "calc(100% + 12px)" }
|
|
9933
10024
|
};
|
|
9934
10025
|
return /* @__PURE__ */ jsxs33("div", {
|
|
9935
10026
|
style: embedded ? undefined : style,
|
|
@@ -9974,7 +10065,7 @@ function VoiceBarChatLine({
|
|
|
9974
10065
|
}
|
|
9975
10066
|
|
|
9976
10067
|
// src/components/VoiceBarLinkCard.tsx
|
|
9977
|
-
import { useCallback as
|
|
10068
|
+
import { useCallback as useCallback29, useEffect as useEffect43, useRef as useRef37, useState as useState32 } from "react";
|
|
9978
10069
|
import { jsx as jsx42, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
9979
10070
|
var COPIED_RESET_MS2 = 2000;
|
|
9980
10071
|
var DISMISS_AFTER_COPY_MS2 = 3000;
|
|
@@ -9993,7 +10084,7 @@ function VoiceBarLinkCard({ card, onDismiss }) {
|
|
|
9993
10084
|
clearTimeout(dismissTimerRef.current);
|
|
9994
10085
|
};
|
|
9995
10086
|
}, []);
|
|
9996
|
-
const handleCopy =
|
|
10087
|
+
const handleCopy = useCallback29(async () => {
|
|
9997
10088
|
const ok = await copyToClipboard(card.url);
|
|
9998
10089
|
if (!ok)
|
|
9999
10090
|
return;
|
|
@@ -10063,11 +10154,7 @@ function VoiceBarLinkCard({ card, onDismiss }) {
|
|
|
10063
10154
|
// src/components/VoiceBarNotification.tsx
|
|
10064
10155
|
import { useEffect as useEffect44, useRef as useRef38, useState as useState33 } from "react";
|
|
10065
10156
|
import { jsx as jsx43, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
10066
|
-
function VoiceBarNotification({
|
|
10067
|
-
notifications,
|
|
10068
|
-
dock,
|
|
10069
|
-
onDismiss
|
|
10070
|
-
}) {
|
|
10157
|
+
function VoiceBarNotification({ notifications, pos, onDismiss }) {
|
|
10071
10158
|
const [index2, setIndex] = useState33(0);
|
|
10072
10159
|
const [paused, setPaused] = useState33(false);
|
|
10073
10160
|
const cardRef = useRef38(null);
|
|
@@ -10101,22 +10188,15 @@ function VoiceBarNotification({
|
|
|
10101
10188
|
if (!notification)
|
|
10102
10189
|
return null;
|
|
10103
10190
|
const hasMultiple = notifications.length > 1;
|
|
10104
|
-
const
|
|
10191
|
+
const popsDown = barPopsDown(pos);
|
|
10192
|
+
const wrapperStyle = {
|
|
10105
10193
|
position: "absolute",
|
|
10106
10194
|
left: 0,
|
|
10107
10195
|
right: 0,
|
|
10108
10196
|
display: "flex",
|
|
10109
10197
|
justifyContent: "center",
|
|
10110
10198
|
zIndex: 6,
|
|
10111
|
-
...
|
|
10112
|
-
} : {
|
|
10113
|
-
position: "absolute",
|
|
10114
|
-
top: 0,
|
|
10115
|
-
bottom: 0,
|
|
10116
|
-
display: "flex",
|
|
10117
|
-
alignItems: "center",
|
|
10118
|
-
zIndex: 6,
|
|
10119
|
-
...dock.edge === "left" ? { left: "calc(100% + 10px)" } : { right: "calc(100% + 10px)" }
|
|
10199
|
+
...popsDown ? { top: "calc(100% + 10px)" } : { bottom: "calc(100% + 10px)" }
|
|
10120
10200
|
};
|
|
10121
10201
|
return /* @__PURE__ */ jsx43("div", {
|
|
10122
10202
|
style: wrapperStyle,
|
|
@@ -10520,7 +10600,7 @@ function ShortcutHint({
|
|
|
10520
10600
|
});
|
|
10521
10601
|
}
|
|
10522
10602
|
function VoiceBarFrame({
|
|
10523
|
-
|
|
10603
|
+
pos,
|
|
10524
10604
|
canFold,
|
|
10525
10605
|
notifications,
|
|
10526
10606
|
onDrop,
|
|
@@ -10538,7 +10618,8 @@ function VoiceBarFrame({
|
|
|
10538
10618
|
isAuthenticated,
|
|
10539
10619
|
usesHostAuth,
|
|
10540
10620
|
defaultAgentId,
|
|
10541
|
-
|
|
10621
|
+
pendingStart,
|
|
10622
|
+
startPrimarySession,
|
|
10542
10623
|
pauseSession,
|
|
10543
10624
|
disconnect,
|
|
10544
10625
|
minimizePanel,
|
|
@@ -10548,6 +10629,7 @@ function VoiceBarFrame({
|
|
|
10548
10629
|
appearance,
|
|
10549
10630
|
isPanelOpen,
|
|
10550
10631
|
panelRef,
|
|
10632
|
+
voiceBarRef,
|
|
10551
10633
|
textMode,
|
|
10552
10634
|
captureMode,
|
|
10553
10635
|
chatActivityAt,
|
|
@@ -10562,8 +10644,12 @@ function VoiceBarFrame({
|
|
|
10562
10644
|
const [bannerOpen, setBannerOpen] = useState35(false);
|
|
10563
10645
|
const hasNotifications = notifications.length > 0;
|
|
10564
10646
|
const notifAccent = notifications[0]?.accentColor;
|
|
10565
|
-
const closeBanner =
|
|
10647
|
+
const closeBanner = useCallback30(() => setBannerOpen(false), []);
|
|
10566
10648
|
const containerRef = useRef39(null);
|
|
10649
|
+
const setContainerRefs = useCallback30((node) => {
|
|
10650
|
+
containerRef.current = node;
|
|
10651
|
+
voiceBarRef.current = node;
|
|
10652
|
+
}, [voiceBarRef]);
|
|
10567
10653
|
const dragFollowers = isPanelOpen ? [panelRef] : null;
|
|
10568
10654
|
const { wasDraggedRef } = useVoiceBarDrag(containerRef, onDrop, dragFollowers, setDragging);
|
|
10569
10655
|
const { isMuted, toggleMute } = useMediaControls();
|
|
@@ -10624,7 +10710,7 @@ function VoiceBarFrame({
|
|
|
10624
10710
|
requireCtrl: true
|
|
10625
10711
|
});
|
|
10626
10712
|
const sessionLive = isConnected || isStarting || isPausing || isDisconnecting;
|
|
10627
|
-
const canStart = isAuthenticated && !!defaultAgentId;
|
|
10713
|
+
const canStart = isAuthenticated && (!!defaultAgentId || !!pendingStart);
|
|
10628
10714
|
const showClose = canFold || sessionLive;
|
|
10629
10715
|
const logoUrl = appearance?.logoUrl ?? null;
|
|
10630
10716
|
const ifNotDragged = (action) => () => {
|
|
@@ -10700,28 +10786,30 @@ function VoiceBarFrame({
|
|
|
10700
10786
|
const liveStripLabel = showActionControl ? "working…" : "thinking…";
|
|
10701
10787
|
const heldMinutes = Math.floor(holdCountdown / 60);
|
|
10702
10788
|
const heldSeconds = String(holdCountdown % 60).padStart(2, "0");
|
|
10789
|
+
const popsDown = barPopsDown(pos);
|
|
10790
|
+
const isLeftAligned = barLeftAligned(pos);
|
|
10703
10791
|
const stripStyle = {
|
|
10704
10792
|
position: "absolute",
|
|
10705
10793
|
left: 0,
|
|
10706
10794
|
right: 0,
|
|
10707
10795
|
display: "flex",
|
|
10708
10796
|
justifyContent: "center",
|
|
10709
|
-
...
|
|
10797
|
+
...popsDown ? { top: "calc(100% + 10px)" } : { bottom: "calc(100% + 10px)" }
|
|
10710
10798
|
};
|
|
10711
10799
|
const planCardStyle = {
|
|
10712
10800
|
...stripStyle,
|
|
10713
|
-
...
|
|
10801
|
+
...popsDown ? { top: "calc(100% + 10px)" } : { bottom: "calc(100% + 10px)" }
|
|
10714
10802
|
};
|
|
10715
10803
|
const chatBlockStyle = {
|
|
10716
10804
|
position: "absolute",
|
|
10717
|
-
left: 0,
|
|
10718
10805
|
width: 255,
|
|
10719
|
-
...
|
|
10806
|
+
...isLeftAligned ? { left: 0 } : { right: 0 },
|
|
10807
|
+
...popsDown ? { top: "calc(100% + 12px)" } : { bottom: "calc(100% + 12px)" }
|
|
10720
10808
|
};
|
|
10721
10809
|
const pillEvaporate = autoOffClosing ? "skippr:[animation:skippr-evaporate_3.2s_ease-in_forwards] skippr:motion-reduce:animate-none" : "";
|
|
10722
10810
|
return /* @__PURE__ */ jsxs37("div", {
|
|
10723
|
-
ref:
|
|
10724
|
-
style:
|
|
10811
|
+
ref: setContainerRefs,
|
|
10812
|
+
style: barPosStyle(pos),
|
|
10725
10813
|
className: "skippr:fixed skippr:z-[9999] skippr:flex skippr:w-[255px] skippr:touch-none skippr:cursor-grab skippr:items-center",
|
|
10726
10814
|
children: [
|
|
10727
10815
|
glow && /* @__PURE__ */ jsx45("span", {
|
|
@@ -10860,6 +10948,17 @@ function VoiceBarFrame({
|
|
|
10860
10948
|
}
|
|
10861
10949
|
})
|
|
10862
10950
|
}),
|
|
10951
|
+
!sessionLive && !needsLogin && !bannerActive && /* @__PURE__ */ jsx45("div", {
|
|
10952
|
+
style: planCardStyle,
|
|
10953
|
+
className: "skippr:z-[6]",
|
|
10954
|
+
"data-skippr-no-drag": "",
|
|
10955
|
+
children: /* @__PURE__ */ jsx45("div", {
|
|
10956
|
+
className: "skippr:w-[220px] skippr:rounded-[14px] skippr:border skippr:border-[rgba(45,45,63,0.08)] skippr:bg-white skippr:px-3 skippr:py-2 skippr:shadow-[0_10px_28px_rgba(45,45,63,0.16)] skippr:[animation:skippr-tip-in_360ms_cubic-bezier(0.34,1.3,0.64,1)]",
|
|
10957
|
+
children: /* @__PURE__ */ jsx45(ConsentNotice, {
|
|
10958
|
+
leadIn: "By starting a session"
|
|
10959
|
+
})
|
|
10960
|
+
})
|
|
10961
|
+
}),
|
|
10863
10962
|
hasNotifications && !bannerOpen && !chatOpen && !isCapturingSpeech && !planCardActive && /* @__PURE__ */ jsx45("button", {
|
|
10864
10963
|
type: "button",
|
|
10865
10964
|
onClick: ifNotDragged(() => setBannerOpen(true)),
|
|
@@ -10872,7 +10971,7 @@ function VoiceBarFrame({
|
|
|
10872
10971
|
}),
|
|
10873
10972
|
bannerActive && !chatOpen && !isCapturingSpeech && !planCardActive && /* @__PURE__ */ jsx45(VoiceBarNotification, {
|
|
10874
10973
|
notifications,
|
|
10875
|
-
|
|
10974
|
+
pos,
|
|
10876
10975
|
onDismiss: closeBanner
|
|
10877
10976
|
}),
|
|
10878
10977
|
/* @__PURE__ */ jsxs37("div", {
|
|
@@ -11038,14 +11137,14 @@ function VoiceBarFrame({
|
|
|
11038
11137
|
type: "button",
|
|
11039
11138
|
onClick: ifNotDragged(() => {
|
|
11040
11139
|
if (canStart) {
|
|
11041
|
-
|
|
11140
|
+
startPrimarySession();
|
|
11042
11141
|
} else if (needsLogin) {
|
|
11043
11142
|
setAutoStartAfterLogin(true);
|
|
11044
11143
|
setLoginOpen(true);
|
|
11045
11144
|
}
|
|
11046
11145
|
}),
|
|
11047
11146
|
disabled: !canStart && !needsLogin,
|
|
11048
|
-
"aria-label": "Talk to Agent",
|
|
11147
|
+
"aria-label": "Talk to AI Agent",
|
|
11049
11148
|
style: { color: "var(--skippr-brand-foreground, #2d2b3d)" },
|
|
11050
11149
|
className: cn(PILL, "skippr:cursor-pointer skippr:bg-brand skippr:px-[12px] skippr:transition-[filter] skippr:hover:brightness-[1.04] skippr:active:scale-[0.98] skippr:disabled:cursor-not-allowed skippr:disabled:opacity-60"),
|
|
11051
11150
|
children: [
|
|
@@ -11059,7 +11158,7 @@ function VoiceBarFrame({
|
|
|
11059
11158
|
className: "skippr:block skippr:size-full skippr:bg-launcher"
|
|
11060
11159
|
})
|
|
11061
11160
|
}),
|
|
11062
|
-
"Talk to Agent"
|
|
11161
|
+
"Talk to AI Agent"
|
|
11063
11162
|
]
|
|
11064
11163
|
}),
|
|
11065
11164
|
(sessionLive || isRoomChat) && /* @__PURE__ */ jsx45("button", {
|
|
@@ -11092,7 +11191,7 @@ function VoiceBarFrame({
|
|
|
11092
11191
|
}),
|
|
11093
11192
|
/* @__PURE__ */ jsx45(VoiceBarChatLine, {
|
|
11094
11193
|
embedded: true,
|
|
11095
|
-
|
|
11194
|
+
popsDown,
|
|
11096
11195
|
canSend: isConnected,
|
|
11097
11196
|
onClose: () => setChatLineOpen(false)
|
|
11098
11197
|
})
|
|
@@ -11103,7 +11202,7 @@ function VoiceBarFrame({
|
|
|
11103
11202
|
}
|
|
11104
11203
|
|
|
11105
11204
|
// src/components/VoiceBarLauncher.tsx
|
|
11106
|
-
import { useCallback as
|
|
11205
|
+
import { useCallback as useCallback31, useEffect as useEffect48, useRef as useRef41, useState as useState37 } from "react";
|
|
11107
11206
|
|
|
11108
11207
|
// src/components/LauncherNotification.tsx
|
|
11109
11208
|
import { useEffect as useEffect47, useRef as useRef40, useState as useState36 } from "react";
|
|
@@ -11331,22 +11430,6 @@ function loginCardWrapperStyle2(edge) {
|
|
|
11331
11430
|
bottom: "calc(100% + 8px)"
|
|
11332
11431
|
};
|
|
11333
11432
|
}
|
|
11334
|
-
function consentBubbleStyle(edge) {
|
|
11335
|
-
if (isHorizontalEdge(edge)) {
|
|
11336
|
-
return {
|
|
11337
|
-
position: "absolute",
|
|
11338
|
-
zIndex: 6,
|
|
11339
|
-
right: 0,
|
|
11340
|
-
...edge === "top" ? { top: "calc(100% + 8px)" } : { bottom: "calc(100% + 8px)" }
|
|
11341
|
-
};
|
|
11342
|
-
}
|
|
11343
|
-
return {
|
|
11344
|
-
position: "absolute",
|
|
11345
|
-
zIndex: 6,
|
|
11346
|
-
bottom: "calc(100% + 8px)",
|
|
11347
|
-
...edge === "left" ? { left: 0 } : { right: 0 }
|
|
11348
|
-
};
|
|
11349
|
-
}
|
|
11350
11433
|
function VoiceBarLauncher({
|
|
11351
11434
|
dock,
|
|
11352
11435
|
mode,
|
|
@@ -11362,7 +11445,14 @@ function VoiceBarLauncher({
|
|
|
11362
11445
|
}) {
|
|
11363
11446
|
const containerRef = useRef41(null);
|
|
11364
11447
|
const closeTimerRef = useRef41(null);
|
|
11365
|
-
const
|
|
11448
|
+
const onDropPos = useCallback31((pos) => {
|
|
11449
|
+
const el = containerRef.current;
|
|
11450
|
+
if (!el)
|
|
11451
|
+
return;
|
|
11452
|
+
const { width, height } = el.getBoundingClientRect();
|
|
11453
|
+
onDrop(dropTargetFromPointer(pos.x + width / 2, pos.y + height / 2));
|
|
11454
|
+
}, [onDrop]);
|
|
11455
|
+
const { wasDraggedRef } = useVoiceBarDrag(containerRef, onDropPos, null, setDragging);
|
|
11366
11456
|
const horizontal = isHorizontalEdge(dock.edge);
|
|
11367
11457
|
const [cardOpen, setCardOpen] = useState37(false);
|
|
11368
11458
|
const [loginOpen, setLoginOpen] = useState37(false);
|
|
@@ -11406,11 +11496,6 @@ function VoiceBarLauncher({
|
|
|
11406
11496
|
const open = () => {
|
|
11407
11497
|
if (wasDraggedRef.current)
|
|
11408
11498
|
return;
|
|
11409
|
-
if (needsLogin) {
|
|
11410
|
-
onLoginOpen();
|
|
11411
|
-
setLoginOpen(true);
|
|
11412
|
-
return;
|
|
11413
|
-
}
|
|
11414
11499
|
onOpen();
|
|
11415
11500
|
};
|
|
11416
11501
|
const openChat = (event) => {
|
|
@@ -11424,7 +11509,7 @@ function VoiceBarLauncher({
|
|
|
11424
11509
|
}
|
|
11425
11510
|
onChat?.();
|
|
11426
11511
|
};
|
|
11427
|
-
const closeLogin =
|
|
11512
|
+
const closeLogin = useCallback31(() => {
|
|
11428
11513
|
setLoginOpen(false);
|
|
11429
11514
|
onLoginDismiss();
|
|
11430
11515
|
}, [onLoginDismiss]);
|
|
@@ -11442,7 +11527,7 @@ function VoiceBarLauncher({
|
|
|
11442
11527
|
return;
|
|
11443
11528
|
setCardOpen((open2) => !open2);
|
|
11444
11529
|
};
|
|
11445
|
-
const closeCard =
|
|
11530
|
+
const closeCard = useCallback31(() => setCardOpen(false), []);
|
|
11446
11531
|
if (mode === "strip") {
|
|
11447
11532
|
const expanded = hovered && !!onChat;
|
|
11448
11533
|
const length = expanded ? 84 : 40;
|
|
@@ -11513,12 +11598,7 @@ function VoiceBarLauncher({
|
|
|
11513
11598
|
mode,
|
|
11514
11599
|
onDismiss: closeCard
|
|
11515
11600
|
}),
|
|
11516
|
-
loginCard
|
|
11517
|
-
hovered && !loginOpen && /* @__PURE__ */ jsx47("div", {
|
|
11518
|
-
style: consentBubbleStyle(dock.edge),
|
|
11519
|
-
"data-skippr-no-drag": "",
|
|
11520
|
-
children: /* @__PURE__ */ jsx47(ConsentBubble, {})
|
|
11521
|
-
})
|
|
11601
|
+
loginCard
|
|
11522
11602
|
]
|
|
11523
11603
|
});
|
|
11524
11604
|
}
|
|
@@ -11569,12 +11649,7 @@ function VoiceBarLauncher({
|
|
|
11569
11649
|
mode,
|
|
11570
11650
|
onDismiss: closeCard
|
|
11571
11651
|
}),
|
|
11572
|
-
loginCard
|
|
11573
|
-
hovered && !loginOpen && /* @__PURE__ */ jsx47("div", {
|
|
11574
|
-
style: consentBubbleStyle(dock.edge),
|
|
11575
|
-
"data-skippr-no-drag": "",
|
|
11576
|
-
children: /* @__PURE__ */ jsx47(ConsentBubble, {})
|
|
11577
|
-
})
|
|
11652
|
+
loginCard
|
|
11578
11653
|
]
|
|
11579
11654
|
});
|
|
11580
11655
|
}
|
|
@@ -11595,17 +11670,16 @@ function VoiceBar({ revealed }) {
|
|
|
11595
11670
|
isAuthenticated,
|
|
11596
11671
|
usesHostAuth,
|
|
11597
11672
|
appearance,
|
|
11598
|
-
defaultAgentId,
|
|
11599
|
-
startDefaultSession,
|
|
11600
11673
|
expandPanel,
|
|
11674
|
+
revealBar,
|
|
11601
11675
|
agentControls,
|
|
11602
11676
|
setIsDragging,
|
|
11603
|
-
|
|
11604
|
-
|
|
11677
|
+
barPos,
|
|
11678
|
+
setBarPos,
|
|
11605
11679
|
setAutoStartAfterLogin
|
|
11606
11680
|
} = ctx;
|
|
11607
11681
|
const [launcherDock, setLauncherDock] = useState38(() => readSavedDock("launcher"));
|
|
11608
|
-
const onLauncherDrop =
|
|
11682
|
+
const onLauncherDrop = useCallback32((next) => {
|
|
11609
11683
|
setLauncherDock(next);
|
|
11610
11684
|
persistDock("launcher", next);
|
|
11611
11685
|
}, []);
|
|
@@ -11615,14 +11689,12 @@ function VoiceBar({ revealed }) {
|
|
|
11615
11689
|
const launcherMode = appearance?.launcherMode ?? DEFAULT_LAUNCHER_MODE;
|
|
11616
11690
|
const sessionLive = isConnected || isStarting || isPausing || isDisconnecting;
|
|
11617
11691
|
const canFold = launcherMode !== LAUNCHER_MODE.None;
|
|
11618
|
-
const canStart = isAuthenticated && !!defaultAgentId;
|
|
11619
11692
|
const needsLogin = !usesHostAuth && !isAuthenticated;
|
|
11620
11693
|
const launcherEdge = appearance?.position === "left" ? "left" : "right";
|
|
11621
11694
|
const effectiveLauncherDock = launcherDock ?? {
|
|
11622
11695
|
edge: launcherEdge,
|
|
11623
11696
|
offsetPx: defaultOffset(launcherEdge)
|
|
11624
11697
|
};
|
|
11625
|
-
const effectiveBarDock = barDock ?? { edge: "bottom", offsetPx: defaultOffset("bottom") };
|
|
11626
11698
|
const roomChatEnabled = (agentControls?.chat ?? DEFAULT_CHAT_SURFACE) === CHAT_SURFACE.Room;
|
|
11627
11699
|
if (launcherMode === LAUNCHER_MODE.Custom && !sessionLive && isMinimized) {
|
|
11628
11700
|
return null;
|
|
@@ -11636,17 +11708,18 @@ function VoiceBar({ revealed }) {
|
|
|
11636
11708
|
needsLogin,
|
|
11637
11709
|
onLoginOpen: () => setAutoStartAfterLogin(true),
|
|
11638
11710
|
onLoginDismiss: () => setAutoStartAfterLogin(false),
|
|
11639
|
-
onOpen:
|
|
11711
|
+
onOpen: revealBar,
|
|
11640
11712
|
onChat: roomChatEnabled ? expandPanel : null,
|
|
11641
11713
|
onDrop: onLauncherDrop,
|
|
11642
11714
|
setDragging: setIsDragging
|
|
11643
11715
|
});
|
|
11644
11716
|
}
|
|
11717
|
+
const effectiveBarPos = barPos ?? defaultBarPos();
|
|
11645
11718
|
return /* @__PURE__ */ jsx48(VoiceBarFrame, {
|
|
11646
|
-
|
|
11719
|
+
pos: effectiveBarPos,
|
|
11647
11720
|
canFold,
|
|
11648
11721
|
notifications,
|
|
11649
|
-
onDrop:
|
|
11722
|
+
onDrop: setBarPos,
|
|
11650
11723
|
setDragging: setIsDragging
|
|
11651
11724
|
});
|
|
11652
11725
|
}
|
|
@@ -11721,17 +11794,17 @@ function LiveAgent(props) {
|
|
|
11721
11794
|
const effectiveAuthToken = usesHostAuth ? authTokenProp : auth.authToken ?? undefined;
|
|
11722
11795
|
const [activeModule, setActiveModule] = useState39(null);
|
|
11723
11796
|
const [sessionAgentMode, setSessionAgentMode] = useState39(null);
|
|
11724
|
-
const minimizeOnSessionStart =
|
|
11797
|
+
const minimizeOnSessionStart = useCallback33(() => {
|
|
11725
11798
|
if (minimizable) {
|
|
11726
11799
|
setIsMinimized(true);
|
|
11727
11800
|
setIsPanelOpen(false);
|
|
11728
11801
|
}
|
|
11729
11802
|
}, [minimizable]);
|
|
11730
|
-
const expandOnSessionStartError =
|
|
11803
|
+
const expandOnSessionStartError = useCallback33(() => {
|
|
11731
11804
|
setIsMinimized(false);
|
|
11732
11805
|
setIsPanelOpen(true);
|
|
11733
11806
|
}, []);
|
|
11734
|
-
const minimizeOnSessionDisconnect =
|
|
11807
|
+
const minimizeOnSessionDisconnect = useCallback33(() => {
|
|
11735
11808
|
setActiveModule(null);
|
|
11736
11809
|
setSessionAgentMode(null);
|
|
11737
11810
|
if (minimizable) {
|
|
@@ -11770,7 +11843,7 @@ function LiveAgent(props) {
|
|
|
11770
11843
|
});
|
|
11771
11844
|
const teardownInFlightRef = useRef42(false);
|
|
11772
11845
|
teardownInFlightRef.current = isPaused || isPausing || isDisconnecting;
|
|
11773
|
-
const handleRoomDisconnected =
|
|
11846
|
+
const handleRoomDisconnected = useCallback33(() => {
|
|
11774
11847
|
if (teardownInFlightRef.current)
|
|
11775
11848
|
return;
|
|
11776
11849
|
disconnect();
|
|
@@ -11778,15 +11851,17 @@ function LiveAgent(props) {
|
|
|
11778
11851
|
const isSessionLive = connection !== null || isStarting || isPausing || isDisconnecting;
|
|
11779
11852
|
const [isPanelOpen, setIsPanelOpen] = useState39(defaultOpen);
|
|
11780
11853
|
const [isMinimized, setIsMinimized] = useState39(minimizable && !defaultOpen);
|
|
11854
|
+
const [pendingStart, setPendingStart] = useState39(null);
|
|
11781
11855
|
const [sidebarTab, setSidebarTab] = useState39("agenda");
|
|
11782
11856
|
const [phasesSnapshot, setPhasesSnapshot] = useState39([]);
|
|
11783
11857
|
const [textMode, setTextMode] = useState39(false);
|
|
11784
11858
|
const [panelExpanded, setPanelExpanded] = useState39(false);
|
|
11785
|
-
const togglePanelExpanded =
|
|
11859
|
+
const togglePanelExpanded = useCallback33(() => setPanelExpanded((prev) => !prev), []);
|
|
11786
11860
|
const panelRef = useRef42(null);
|
|
11787
11861
|
const controlBarRef = useRef42(null);
|
|
11862
|
+
const voiceBarRef = useRef42(null);
|
|
11788
11863
|
const [isDragging, setIsDragging] = useState39(false);
|
|
11789
|
-
const setTextModeState =
|
|
11864
|
+
const setTextModeState = useCallback33((enabled) => {
|
|
11790
11865
|
setTextMode(enabled);
|
|
11791
11866
|
}, []);
|
|
11792
11867
|
const isConnected = connection !== null;
|
|
@@ -11822,7 +11897,7 @@ function LiveAgent(props) {
|
|
|
11822
11897
|
const buddyActive = isBuddyActive(appearance) && variant !== "sidebar" && !hostAgentId;
|
|
11823
11898
|
const buddyShape = appearance?.buddy?.shape ?? DEFAULT_BUDDY_SHAPE;
|
|
11824
11899
|
const effectiveHostAgentId = buddyActive ? undefined : hostAgentId;
|
|
11825
|
-
const startSession =
|
|
11900
|
+
const startSession = useCallback33((opts) => startSessionRaw(buddyActive ? { ...opts, agentControls: buddyEffectiveControls(opts.agentControls) } : opts), [startSessionRaw, buddyActive]);
|
|
11826
11901
|
const defaultAgentId = buddyActive ? defaultSelection.agentId : hostAgentId ?? defaultSelection.agentId;
|
|
11827
11902
|
const defaultModule = availableModules.find((m) => m.id === defaultAgentId) ?? null;
|
|
11828
11903
|
const operatingModule = buddyActive ? defaultModule : activeModule ?? (effectiveHostAgentId ? availableModules[0] ?? null : null);
|
|
@@ -11833,7 +11908,7 @@ function LiveAgent(props) {
|
|
|
11833
11908
|
const shouldAnimateCursor = operatingModule?.uiPreferences?.animateCursor ?? animateAgentCursor;
|
|
11834
11909
|
const buddyDefaultMissing = buddyActive && hasResolvedModules && !modulesError && !defaultModule && !isSessionLive;
|
|
11835
11910
|
const resumableSession = useMemo8(() => getResumableSession(operatingModule), [operatingModule]);
|
|
11836
|
-
const resumeSession =
|
|
11911
|
+
const resumeSession = useCallback33(async () => {
|
|
11837
11912
|
if (!resumableSession)
|
|
11838
11913
|
return;
|
|
11839
11914
|
if (operatingModule) {
|
|
@@ -11846,7 +11921,7 @@ function LiveAgent(props) {
|
|
|
11846
11921
|
existingSessionId: resumableSession.id
|
|
11847
11922
|
});
|
|
11848
11923
|
}, [resumableSession, operatingModule, startSession, baseAgentControls]);
|
|
11849
|
-
const selectModule =
|
|
11924
|
+
const selectModule = useCallback33((moduleId, opts) => {
|
|
11850
11925
|
const found = availableModules.find((m) => m.id === moduleId);
|
|
11851
11926
|
if (!found)
|
|
11852
11927
|
return;
|
|
@@ -11859,7 +11934,7 @@ function LiveAgent(props) {
|
|
|
11859
11934
|
autoStarted: opts?.autoStarted
|
|
11860
11935
|
});
|
|
11861
11936
|
}, [availableModules, startSession]);
|
|
11862
|
-
const startAdoptionSession =
|
|
11937
|
+
const startAdoptionSession = useCallback33((goal) => {
|
|
11863
11938
|
attendGoal(goal.goalId);
|
|
11864
11939
|
const found = availableModules.find((m) => m.id === goal.agentId);
|
|
11865
11940
|
if (found)
|
|
@@ -11871,12 +11946,16 @@ function LiveAgent(props) {
|
|
|
11871
11946
|
adoptionGoalId: goal.goalId
|
|
11872
11947
|
});
|
|
11873
11948
|
}, [attendGoal, availableModules, startSession]);
|
|
11949
|
+
const previewStart = useCallback33((pending) => {
|
|
11950
|
+
setPendingStart(pending);
|
|
11951
|
+
setIsMinimized(false);
|
|
11952
|
+
}, []);
|
|
11874
11953
|
const [welcomeDismissed, setWelcomeDismissed] = useState39(false);
|
|
11875
|
-
const dismissWelcome =
|
|
11954
|
+
const dismissWelcome = useCallback33(() => setWelcomeDismissed(true), []);
|
|
11876
11955
|
const [savedPosition] = useState39(readSavedPosition);
|
|
11877
11956
|
const [currentPosition, setCurrentPosition] = useState39(savedPosition ?? "right");
|
|
11878
11957
|
const positionLockedRef = useRef42(savedPosition !== null);
|
|
11879
|
-
const setPositionWithPersist =
|
|
11958
|
+
const setPositionWithPersist = useCallback33((pos) => {
|
|
11880
11959
|
positionLockedRef.current = true;
|
|
11881
11960
|
setCurrentPosition(pos);
|
|
11882
11961
|
try {
|
|
@@ -11903,7 +11982,7 @@ function LiveAgent(props) {
|
|
|
11903
11982
|
setLauncherBottomPxState(next);
|
|
11904
11983
|
setPopsDown(launcherPopsDown(next));
|
|
11905
11984
|
}, [serverVerticalAlign, hostVerticalAlign]);
|
|
11906
|
-
const setLauncherBottomPx =
|
|
11985
|
+
const setLauncherBottomPx = useCallback33((px) => {
|
|
11907
11986
|
hasDraggedRef.current = true;
|
|
11908
11987
|
setLauncherBottomPxState(px);
|
|
11909
11988
|
setPopsDown(launcherPopsDown(px));
|
|
@@ -11914,20 +11993,37 @@ function LiveAgent(props) {
|
|
|
11914
11993
|
const launcherBottomPxRef = useRef42(launcherBottomPx);
|
|
11915
11994
|
launcherBottomPxRef.current = launcherBottomPx;
|
|
11916
11995
|
const [chatActivityAt, setChatActivityAt] = useState39(0);
|
|
11917
|
-
const reportChatActivity =
|
|
11996
|
+
const reportChatActivity = useCallback33(() => {
|
|
11918
11997
|
const now = Date.now();
|
|
11919
11998
|
setChatActivityAt((last) => now - last < CHAT_ACTIVITY_THROTTLE_MS ? last : now);
|
|
11920
11999
|
}, []);
|
|
11921
12000
|
const [chatDraft, setChatDraft] = useState39("");
|
|
11922
12001
|
const [autoStartAfterLogin, setAutoStartAfterLogin] = useState39(false);
|
|
11923
|
-
const commitLauncherDrop =
|
|
12002
|
+
const commitLauncherDrop = useCallback33(({ side, bottomPx }) => {
|
|
11924
12003
|
setPositionWithPersist(side);
|
|
11925
12004
|
setLauncherBottomPx(bottomPx);
|
|
11926
12005
|
}, [setPositionWithPersist, setLauncherBottomPx]);
|
|
11927
|
-
const [
|
|
11928
|
-
const
|
|
11929
|
-
|
|
11930
|
-
|
|
12006
|
+
const [barPos, setBarPosState] = useState39(() => readSavedBarPos());
|
|
12007
|
+
const barPosRatioRef = useRef42(null);
|
|
12008
|
+
if (barPos !== null) {
|
|
12009
|
+
barPosRatioRef.current = {
|
|
12010
|
+
xRatio: barPos.x / window.innerWidth,
|
|
12011
|
+
yRatio: barPos.y / window.innerHeight
|
|
12012
|
+
};
|
|
12013
|
+
} else if (barPosRatioRef.current === null) {
|
|
12014
|
+
const def = defaultBarPos();
|
|
12015
|
+
barPosRatioRef.current = {
|
|
12016
|
+
xRatio: def.x / window.innerWidth,
|
|
12017
|
+
yRatio: def.y / window.innerHeight
|
|
12018
|
+
};
|
|
12019
|
+
}
|
|
12020
|
+
const setBarPos = useCallback33((next) => {
|
|
12021
|
+
setBarPosState(next);
|
|
12022
|
+
persistBarPos(next);
|
|
12023
|
+
barPosRatioRef.current = {
|
|
12024
|
+
xRatio: next.x / window.innerWidth,
|
|
12025
|
+
yRatio: next.y / window.innerHeight
|
|
12026
|
+
};
|
|
11931
12027
|
}, []);
|
|
11932
12028
|
useEffect49(() => {
|
|
11933
12029
|
const syncToViewport = () => {
|
|
@@ -11939,24 +12035,41 @@ function LiveAgent(props) {
|
|
|
11939
12035
|
window.addEventListener("resize", syncToViewport);
|
|
11940
12036
|
return () => window.removeEventListener("resize", syncToViewport);
|
|
11941
12037
|
}, []);
|
|
11942
|
-
|
|
11943
|
-
|
|
11944
|
-
|
|
11945
|
-
|
|
12038
|
+
useEffect49(() => {
|
|
12039
|
+
const syncBarToViewport = () => {
|
|
12040
|
+
const ratios = barPosRatioRef.current;
|
|
12041
|
+
if (!ratios)
|
|
12042
|
+
return;
|
|
12043
|
+
setBarPosState(clampBarPos({
|
|
12044
|
+
x: ratios.xRatio * window.innerWidth,
|
|
12045
|
+
y: ratios.yRatio * window.innerHeight
|
|
12046
|
+
}));
|
|
12047
|
+
};
|
|
12048
|
+
window.addEventListener("resize", syncBarToViewport);
|
|
12049
|
+
return () => window.removeEventListener("resize", syncBarToViewport);
|
|
12050
|
+
}, []);
|
|
12051
|
+
const openPanel = useCallback33(() => setIsPanelOpen(true), []);
|
|
12052
|
+
const closePanel = useCallback33(() => setIsPanelOpen(false), []);
|
|
12053
|
+
const togglePanel = useCallback33(() => setIsPanelOpen((prev) => !prev), []);
|
|
12054
|
+
const expandPanel = useCallback33(() => {
|
|
11946
12055
|
setIsMinimized(false);
|
|
11947
12056
|
setIsPanelOpen(true);
|
|
11948
12057
|
}, []);
|
|
11949
|
-
const minimizePanel =
|
|
12058
|
+
const minimizePanel = useCallback33(() => {
|
|
11950
12059
|
if (!minimizable)
|
|
11951
12060
|
return;
|
|
11952
12061
|
setIsMinimized(true);
|
|
11953
12062
|
setIsPanelOpen(false);
|
|
11954
12063
|
}, [minimizable]);
|
|
11955
|
-
const
|
|
12064
|
+
const revealBar = useCallback33(() => {
|
|
12065
|
+
setPendingStart(null);
|
|
12066
|
+
setIsMinimized(false);
|
|
12067
|
+
}, []);
|
|
12068
|
+
const pauseSessionAndMinimize = useCallback33(async () => {
|
|
11956
12069
|
await pauseSession();
|
|
11957
12070
|
minimizePanel();
|
|
11958
12071
|
}, [pauseSession, minimizePanel]);
|
|
11959
|
-
const startDefaultSession =
|
|
12072
|
+
const startDefaultSession = useCallback33(() => {
|
|
11960
12073
|
const target = availableModules.find((m) => m.id === defaultAgentId);
|
|
11961
12074
|
if (!target)
|
|
11962
12075
|
return;
|
|
@@ -11968,6 +12081,18 @@ function LiveAgent(props) {
|
|
|
11968
12081
|
existingSessionId: defaultSelection.sessionId ?? undefined
|
|
11969
12082
|
});
|
|
11970
12083
|
}, [defaultAgentId, availableModules, defaultSelection.sessionId, startSession]);
|
|
12084
|
+
const startPrimarySession = useCallback33(() => {
|
|
12085
|
+
if (pendingStart) {
|
|
12086
|
+
const pending = pendingStart;
|
|
12087
|
+
setPendingStart(null);
|
|
12088
|
+
if (pending.kind === PENDING_START_KIND.Goal)
|
|
12089
|
+
startAdoptionSession(pending.goal);
|
|
12090
|
+
else
|
|
12091
|
+
selectModule(pending.moduleId);
|
|
12092
|
+
return;
|
|
12093
|
+
}
|
|
12094
|
+
startDefaultSession();
|
|
12095
|
+
}, [pendingStart, startAdoptionSession, selectModule, startDefaultSession]);
|
|
11971
12096
|
useAutoStart({
|
|
11972
12097
|
availableModules,
|
|
11973
12098
|
suppressed: isSessionLive || buddyActive,
|
|
@@ -11980,15 +12105,16 @@ function LiveAgent(props) {
|
|
|
11980
12105
|
if (bearerToken === null || !hasResolvedModules || isSessionLive)
|
|
11981
12106
|
return;
|
|
11982
12107
|
setAutoStartAfterLogin(false);
|
|
11983
|
-
if (defaultAgentId)
|
|
11984
|
-
|
|
12108
|
+
if (defaultAgentId || pendingStart)
|
|
12109
|
+
startPrimarySession();
|
|
11985
12110
|
}, [
|
|
11986
12111
|
autoStartAfterLogin,
|
|
11987
12112
|
bearerToken,
|
|
11988
12113
|
hasResolvedModules,
|
|
11989
12114
|
isSessionLive,
|
|
11990
12115
|
defaultAgentId,
|
|
11991
|
-
|
|
12116
|
+
pendingStart,
|
|
12117
|
+
startPrimarySession
|
|
11992
12118
|
]);
|
|
11993
12119
|
const idleHistoryEnabled = !isSessionLive && !isPaused && isPanelOpen && isAuthenticated;
|
|
11994
12120
|
const {
|
|
@@ -12036,12 +12162,13 @@ function LiveAgent(props) {
|
|
|
12036
12162
|
setLauncherBottomPx,
|
|
12037
12163
|
commitLauncherDrop,
|
|
12038
12164
|
popsDown,
|
|
12039
|
-
|
|
12040
|
-
|
|
12165
|
+
barPos,
|
|
12166
|
+
setBarPos,
|
|
12041
12167
|
panelExpanded,
|
|
12042
12168
|
togglePanelExpanded,
|
|
12043
12169
|
panelRef,
|
|
12044
12170
|
controlBarRef,
|
|
12171
|
+
voiceBarRef,
|
|
12045
12172
|
isDragging,
|
|
12046
12173
|
setIsDragging,
|
|
12047
12174
|
chatActivityAt,
|
|
@@ -12052,6 +12179,7 @@ function LiveAgent(props) {
|
|
|
12052
12179
|
isMinimized,
|
|
12053
12180
|
expandPanel,
|
|
12054
12181
|
minimizePanel,
|
|
12182
|
+
revealBar,
|
|
12055
12183
|
isAuthenticated,
|
|
12056
12184
|
usesHostAuth,
|
|
12057
12185
|
authFailed,
|
|
@@ -12074,6 +12202,9 @@ function LiveAgent(props) {
|
|
|
12074
12202
|
activeModule,
|
|
12075
12203
|
defaultAgentId,
|
|
12076
12204
|
startDefaultSession,
|
|
12205
|
+
startPrimarySession,
|
|
12206
|
+
pendingStart,
|
|
12207
|
+
previewStart,
|
|
12077
12208
|
isLoadingModules,
|
|
12078
12209
|
modulesError,
|
|
12079
12210
|
refetchModules,
|
|
@@ -12116,8 +12247,8 @@ function LiveAgent(props) {
|
|
|
12116
12247
|
setLauncherBottomPx,
|
|
12117
12248
|
commitLauncherDrop,
|
|
12118
12249
|
popsDown,
|
|
12119
|
-
|
|
12120
|
-
|
|
12250
|
+
barPos,
|
|
12251
|
+
setBarPos,
|
|
12121
12252
|
panelExpanded,
|
|
12122
12253
|
togglePanelExpanded,
|
|
12123
12254
|
isDragging,
|
|
@@ -12128,6 +12259,7 @@ function LiveAgent(props) {
|
|
|
12128
12259
|
isMinimized,
|
|
12129
12260
|
expandPanel,
|
|
12130
12261
|
minimizePanel,
|
|
12262
|
+
revealBar,
|
|
12131
12263
|
isAuthenticated,
|
|
12132
12264
|
usesHostAuth,
|
|
12133
12265
|
authFailed,
|
|
@@ -12149,6 +12281,9 @@ function LiveAgent(props) {
|
|
|
12149
12281
|
activeModule,
|
|
12150
12282
|
defaultAgentId,
|
|
12151
12283
|
startDefaultSession,
|
|
12284
|
+
startPrimarySession,
|
|
12285
|
+
pendingStart,
|
|
12286
|
+
previewStart,
|
|
12152
12287
|
isLoadingModules,
|
|
12153
12288
|
modulesError,
|
|
12154
12289
|
refetchModules,
|