@snapcall/stream-ui 1.41.2 → 1.41.3

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.
@@ -3,17 +3,16 @@ import {createRoot as $3Sbms$createRoot} from "react-dom/client";
3
3
  import {QueryClient as $3Sbms$QueryClient, QueryClientProvider as $3Sbms$QueryClientProvider, useQueryClient as $3Sbms$useQueryClient, useQuery as $3Sbms$useQuery, useMutation as $3Sbms$useMutation, queryOptions as $3Sbms$queryOptions} from "@tanstack/react-query";
4
4
  import {I18nextProvider as $3Sbms$I18nextProvider, initReactI18next as $3Sbms$initReactI18next, useTranslation as $3Sbms$useTranslation, Trans as $3Sbms$Trans} from "react-i18next";
5
5
  import {createInstance as $3Sbms$createInstance} from "i18next";
6
- import {toast as $3Sbms$toast, useToast as $3Sbms$useToast, useDialogState as $3Sbms$useDialogState, ToastAction as $3Sbms$ToastAction, TooltipProvider as $3Sbms$TooltipProvider, Toaster as $3Sbms$Toaster, DropdownMenu as $3Sbms$DropdownMenu, DropdownMenuTrigger as $3Sbms$DropdownMenuTrigger, Button as $3Sbms$Button, DropdownMenuPortal as $3Sbms$DropdownMenuPortal, DropdownMenuContent as $3Sbms$DropdownMenuContent, DropdownMenuItem as $3Sbms$DropdownMenuItem, Tooltip as $3Sbms$Tooltip, TooltipTrigger as $3Sbms$TooltipTrigger, TooltipContent as $3Sbms$TooltipContent, Select as $3Sbms$Select, SelectTrigger as $3Sbms$SelectTrigger, SelectValue as $3Sbms$SelectValue, SelectContent as $3Sbms$SelectContent, SelectGroup as $3Sbms$SelectGroup, SelectItem as $3Sbms$SelectItem, Dialog as $3Sbms$Dialog, DialogContent as $3Sbms$DialogContent, DialogHeader as $3Sbms$DialogHeader, DialogTitle as $3Sbms$DialogTitle, Tabs as $3Sbms$Tabs, TabsList as $3Sbms$TabsList, TabsTrigger as $3Sbms$TabsTrigger, TabsContent as $3Sbms$TabsContent, Separator as $3Sbms$Separator, Input as $3Sbms$Input, CreatableSelect as $3Sbms$CreatableSelect, Textarea as $3Sbms$Textarea, DialogDescription as $3Sbms$DialogDescription, DialogFooter as $3Sbms$DialogFooter, AlertDialog as $3Sbms$AlertDialog, Sheet as $3Sbms$Sheet, DialogTrigger as $3Sbms$DialogTrigger, AlertDialogTrigger as $3Sbms$AlertDialogTrigger, SheetTrigger as $3Sbms$SheetTrigger, AlertDialogHeader as $3Sbms$AlertDialogHeader, SheetHeader as $3Sbms$SheetHeader, SheetClose as $3Sbms$SheetClose, AlertDialogContent as $3Sbms$AlertDialogContent, SheetContent as $3Sbms$SheetContent, AlertDialogTitle as $3Sbms$AlertDialogTitle, SheetTitle as $3Sbms$SheetTitle, AlertDialogDescription as $3Sbms$AlertDialogDescription, SheetDescription as $3Sbms$SheetDescription, Avatar as $3Sbms$Avatar, AlertDialogFooter as $3Sbms$AlertDialogFooter, AlertDialogCancel as $3Sbms$AlertDialogCancel, AlertDialogAction as $3Sbms$AlertDialogAction, DropdownMenuSeparator as $3Sbms$DropdownMenuSeparator, MediaCard as $3Sbms$MediaCard, Skeleton as $3Sbms$Skeleton} from "@snapcall/design-system";
6
+ import {toast as $3Sbms$toast, useToast as $3Sbms$useToast, useDialogState as $3Sbms$useDialogState, ToastAction as $3Sbms$ToastAction, TooltipProvider as $3Sbms$TooltipProvider, Toaster as $3Sbms$Toaster, DropdownMenu as $3Sbms$DropdownMenu, DropdownMenuTrigger as $3Sbms$DropdownMenuTrigger, Button as $3Sbms$Button, DropdownMenuPortal as $3Sbms$DropdownMenuPortal, DropdownMenuContent as $3Sbms$DropdownMenuContent, DropdownMenuItem as $3Sbms$DropdownMenuItem, Tooltip as $3Sbms$Tooltip, TooltipTrigger as $3Sbms$TooltipTrigger, TooltipContent as $3Sbms$TooltipContent, Select as $3Sbms$Select, SelectTrigger as $3Sbms$SelectTrigger, SelectValue as $3Sbms$SelectValue, SelectContent as $3Sbms$SelectContent, SelectGroup as $3Sbms$SelectGroup, SelectItem as $3Sbms$SelectItem, Dialog as $3Sbms$Dialog, DialogContent as $3Sbms$DialogContent, DialogHeader as $3Sbms$DialogHeader, DialogTitle as $3Sbms$DialogTitle, Tabs as $3Sbms$Tabs, TabsList as $3Sbms$TabsList, TabsTrigger as $3Sbms$TabsTrigger, TabsContent as $3Sbms$TabsContent, Separator as $3Sbms$Separator, Input as $3Sbms$Input, CreatableSelect as $3Sbms$CreatableSelect, Textarea as $3Sbms$Textarea, DialogDescription as $3Sbms$DialogDescription, DialogFooter as $3Sbms$DialogFooter, AlertDialog as $3Sbms$AlertDialog, Sheet as $3Sbms$Sheet, DialogTrigger as $3Sbms$DialogTrigger, AlertDialogTrigger as $3Sbms$AlertDialogTrigger, SheetTrigger as $3Sbms$SheetTrigger, AlertDialogHeader as $3Sbms$AlertDialogHeader, SheetHeader as $3Sbms$SheetHeader, SheetClose as $3Sbms$SheetClose, AlertDialogContent as $3Sbms$AlertDialogContent, SheetContent as $3Sbms$SheetContent, AlertDialogTitle as $3Sbms$AlertDialogTitle, SheetTitle as $3Sbms$SheetTitle, AlertDialogDescription as $3Sbms$AlertDialogDescription, SheetDescription as $3Sbms$SheetDescription, Avatar as $3Sbms$Avatar, AlertDialogFooter as $3Sbms$AlertDialogFooter, AlertDialogCancel as $3Sbms$AlertDialogCancel, AlertDialogAction as $3Sbms$AlertDialogAction, DropdownMenuSeparator as $3Sbms$DropdownMenuSeparator, Popover as $3Sbms$Popover, PopoverTrigger as $3Sbms$PopoverTrigger, PopoverContent as $3Sbms$PopoverContent, PopoverArrow as $3Sbms$PopoverArrow, MediaCard as $3Sbms$MediaCard, Skeleton as $3Sbms$Skeleton} from "@snapcall/design-system";
7
7
  import {useRef as $3Sbms$useRef, useState as $3Sbms$useState, useCallback as $3Sbms$useCallback, useEffect as $3Sbms$useEffect, useContext as $3Sbms$useContext, useMemo as $3Sbms$useMemo, cloneElement as $3Sbms$cloneElement, createContext as $3Sbms$createContext, useReducer as $3Sbms$useReducer, Fragment as $3Sbms$Fragment1, useLayoutEffect as $3Sbms$useLayoutEffect, forwardRef as $3Sbms$forwardRef} from "react";
8
8
  import $3Sbms$classnames from "classnames";
9
9
  import "inobounce";
10
- import {RecordIcon as $3Sbms$RecordIcon, InfoCircleIcon as $3Sbms$InfoCircleIcon, Speedometer4Icon as $3Sbms$Speedometer4Icon, Copy7Icon as $3Sbms$Copy7Icon, LinkExternal1Icon as $3Sbms$LinkExternal1Icon, QrCode1Icon as $3Sbms$QrCode1Icon, UserPlus1Icon as $3Sbms$UserPlus1Icon, XCloseIcon as $3Sbms$XCloseIcon, Settings1Icon as $3Sbms$Settings1Icon, Menu1Icon as $3Sbms$Menu1Icon, PhoneCall1Icon as $3Sbms$PhoneCall1Icon, VideoRecorderIcon as $3Sbms$VideoRecorderIcon, Recording2Icon as $3Sbms$Recording2Icon, Monitor2Icon as $3Sbms$Monitor2Icon, Camera2Icon as $3Sbms$Camera2Icon, Copy5Icon as $3Sbms$Copy5Icon, CheckIcon as $3Sbms$CheckIcon, XCircleIcon as $3Sbms$XCircleIcon, Send3Icon as $3Sbms$Send3Icon, AlertTriangleIcon as $3Sbms$AlertTriangleIcon, CopyIcon as $3Sbms$CopyIcon, Link1Icon as $3Sbms$Link1Icon, VolumeMaxIcon as $3Sbms$VolumeMaxIcon, Settings3Icon as $3Sbms$Settings3Icon, UserSquareIcon as $3Sbms$UserSquareIcon, Recording3Icon as $3Sbms$Recording3Icon, ArrowLeftIcon as $3Sbms$ArrowLeftIcon, HelpCircleIcon as $3Sbms$HelpCircleIcon, SpinnerIcon as $3Sbms$SpinnerIcon, User1Icon as $3Sbms$User1Icon, Microphone1Icon as $3Sbms$Microphone1Icon, MicrophoneOff1Icon as $3Sbms$MicrophoneOff1Icon, VideoRecorderOffIcon as $3Sbms$VideoRecorderOffIcon, CameraPlusIcon as $3Sbms$CameraPlusIcon, CursorBoxIcon as $3Sbms$CursorBoxIcon, Minimize1Icon as $3Sbms$Minimize1Icon, Maximize1Icon as $3Sbms$Maximize1Icon, CheckCircleIcon as $3Sbms$CheckCircleIcon, Download1Icon as $3Sbms$Download1Icon, ScreensharingIcon as $3Sbms$ScreensharingIcon, RefreshCcw2Icon as $3Sbms$RefreshCcw2Icon, DotsVerticalIcon as $3Sbms$DotsVerticalIcon, YoutubeIcon as $3Sbms$YoutubeIcon, Upload3Icon as $3Sbms$Upload3Icon, LogIn2Icon as $3Sbms$LogIn2Icon, FlipBackwardIcon as $3Sbms$FlipBackwardIcon, ArrowUpRightIcon as $3Sbms$ArrowUpRightIcon, Star1Icon as $3Sbms$Star1Icon, ImageXIcon as $3Sbms$ImageXIcon, AnnotationInfoIcon as $3Sbms$AnnotationInfoIcon, Upload1Icon as $3Sbms$Upload1Icon, RefreshCw3Icon as $3Sbms$RefreshCw3Icon, Camera1Icon as $3Sbms$Camera1Icon, File2Icon as $3Sbms$File2Icon, PlayIcon as $3Sbms$PlayIcon, FileQuestion3Icon as $3Sbms$FileQuestion3Icon, QrCodeIcon as $3Sbms$QrCodeIcon, MarkerPin4Icon as $3Sbms$MarkerPin4Icon, Edit5Icon as $3Sbms$Edit5Icon, UserCircleIcon as $3Sbms$UserCircleIcon, PlusCircleIcon as $3Sbms$PlusCircleIcon, Trash3Icon as $3Sbms$Trash3Icon, TrashIcon as $3Sbms$TrashIcon} from "@snapcall/design-system/icons";
10
+ import {RecordIcon as $3Sbms$RecordIcon, InfoCircleIcon as $3Sbms$InfoCircleIcon, Speedometer4Icon as $3Sbms$Speedometer4Icon, Copy7Icon as $3Sbms$Copy7Icon, LinkExternal1Icon as $3Sbms$LinkExternal1Icon, QrCode1Icon as $3Sbms$QrCode1Icon, UserPlus1Icon as $3Sbms$UserPlus1Icon, XCloseIcon as $3Sbms$XCloseIcon, Settings1Icon as $3Sbms$Settings1Icon, Menu1Icon as $3Sbms$Menu1Icon, PhoneCall1Icon as $3Sbms$PhoneCall1Icon, VideoRecorderIcon as $3Sbms$VideoRecorderIcon, Recording2Icon as $3Sbms$Recording2Icon, Monitor2Icon as $3Sbms$Monitor2Icon, Camera2Icon as $3Sbms$Camera2Icon, Copy5Icon as $3Sbms$Copy5Icon, CheckIcon as $3Sbms$CheckIcon, XCircleIcon as $3Sbms$XCircleIcon, Send3Icon as $3Sbms$Send3Icon, AlertTriangleIcon as $3Sbms$AlertTriangleIcon, CopyIcon as $3Sbms$CopyIcon, Link1Icon as $3Sbms$Link1Icon, VolumeMaxIcon as $3Sbms$VolumeMaxIcon, Settings3Icon as $3Sbms$Settings3Icon, UserSquareIcon as $3Sbms$UserSquareIcon, Recording3Icon as $3Sbms$Recording3Icon, ArrowLeftIcon as $3Sbms$ArrowLeftIcon, HelpCircleIcon as $3Sbms$HelpCircleIcon, SpinnerIcon as $3Sbms$SpinnerIcon, User1Icon as $3Sbms$User1Icon, Microphone1Icon as $3Sbms$Microphone1Icon, MicrophoneOff1Icon as $3Sbms$MicrophoneOff1Icon, VideoRecorderOffIcon as $3Sbms$VideoRecorderOffIcon, CameraPlusIcon as $3Sbms$CameraPlusIcon, CursorBoxIcon as $3Sbms$CursorBoxIcon, Minimize1Icon as $3Sbms$Minimize1Icon, Maximize1Icon as $3Sbms$Maximize1Icon, CheckCircleIcon as $3Sbms$CheckCircleIcon, Download1Icon as $3Sbms$Download1Icon, ScreensharingIcon as $3Sbms$ScreensharingIcon, RefreshCcw2Icon as $3Sbms$RefreshCcw2Icon, DotsVerticalIcon as $3Sbms$DotsVerticalIcon, YoutubeIcon as $3Sbms$YoutubeIcon, Upload3Icon as $3Sbms$Upload3Icon, LogIn2Icon as $3Sbms$LogIn2Icon, FlipBackwardIcon as $3Sbms$FlipBackwardIcon, ArrowUpRightIcon as $3Sbms$ArrowUpRightIcon, Star1Icon as $3Sbms$Star1Icon, ImageXIcon as $3Sbms$ImageXIcon, AnnotationInfoIcon as $3Sbms$AnnotationInfoIcon, Upload1Icon as $3Sbms$Upload1Icon, DotsHorizontalIcon as $3Sbms$DotsHorizontalIcon, RefreshCw3Icon as $3Sbms$RefreshCw3Icon, Camera1Icon as $3Sbms$Camera1Icon, File2Icon as $3Sbms$File2Icon, PlayIcon as $3Sbms$PlayIcon, FileQuestion3Icon as $3Sbms$FileQuestion3Icon, QrCodeIcon as $3Sbms$QrCodeIcon, MarkerPin4Icon as $3Sbms$MarkerPin4Icon, Edit5Icon as $3Sbms$Edit5Icon, UserCircleIcon as $3Sbms$UserCircleIcon, PlusCircleIcon as $3Sbms$PlusCircleIcon, Trash3Icon as $3Sbms$Trash3Icon, TrashIcon as $3Sbms$TrashIcon} from "@snapcall/design-system/icons";
11
11
  import $3Sbms$bowser from "bowser";
12
12
  import {v4 as $3Sbms$v4} from "uuid";
13
13
  import {WebSocketTransport as $3Sbms$WebSocketTransport, Peer as $3Sbms$Peer} from "protoo-client";
14
14
  import {Device as $3Sbms$Device} from "mediasoup-client";
15
15
  import {Buffer as $3Sbms$Buffer} from "buffer";
16
- import {SelfieSegmentation as $3Sbms$SelfieSegmentation} from "@mediapipe/selfie_segmentation";
17
16
  import "./timer.43cfcbcc.js";
18
17
  import {Form as $3Sbms$Form, FormField as $3Sbms$FormField, FormItem as $3Sbms$FormItem, FormLabel as $3Sbms$FormLabel, FormControl as $3Sbms$FormControl, FormMessage as $3Sbms$FormMessage} from "@snapcall/design-system/form";
19
18
  import {useForm as $3Sbms$useForm} from "react-hook-form";
@@ -880,6 +879,1278 @@ const $7a4afee3d30fe755$export$c30017717ce2168e = async (apiUrl, token, asset)=>
880
879
  };
881
880
 
882
881
 
882
+
883
+ const $031bfaf8b266d819$var$log = new (0, $0f65a9eaf4a1e910$export$2e2bcd8739ae039)('LiveAIAgent/Helper/image');
884
+ const $031bfaf8b266d819$export$1ee2bff0dde4713b = async (imageUrl, maxSize = 720)=>{
885
+ // log.info('scaleImage:', imageUrl);
886
+ return new Promise((resolve, reject)=>{
887
+ const img = new Image();
888
+ img.crossOrigin = 'anonymous';
889
+ img.onload = ()=>{
890
+ try {
891
+ const canvas = document.createElement('canvas');
892
+ const ctx = canvas.getContext('2d');
893
+ if (!ctx) {
894
+ reject(new Error('Could not get canvas context'));
895
+ return;
896
+ }
897
+ let width = img.width;
898
+ let height = img.height;
899
+ if (width > height) {
900
+ if (width > maxSize) {
901
+ height = height * (maxSize / width);
902
+ width = maxSize;
903
+ }
904
+ } else if (height > maxSize) {
905
+ width = width * (maxSize / height);
906
+ height = maxSize;
907
+ }
908
+ // log.debug('width:', width, 'height:', height);
909
+ canvas.width = width;
910
+ canvas.height = height;
911
+ ctx.drawImage(img, 0, 0, width, height);
912
+ let quality = 1;
913
+ let dataUrl = canvas.toDataURL('image/jpeg', 1);
914
+ let size = Math.round(dataUrl.length * 6 / 8);
915
+ while(size > 200000){
916
+ $031bfaf8b266d819$var$log.debug('closed size:', size, 'quality:', quality);
917
+ quality -= 0.1;
918
+ dataUrl = canvas.toDataURL('image/jpeg', quality);
919
+ size = Math.round(dataUrl.length * 6 / 8);
920
+ }
921
+ // log.debug('closed size:', Math.round((dataUrl.length * 6) / 8), 'quality:', quality);
922
+ // log.debug('dataUrl:', dataUrl);
923
+ resolve(dataUrl);
924
+ return;
925
+ // const base64 = dataUrl.split(',')[1];
926
+ // resolve(base64);
927
+ } catch (error) {
928
+ reject(error);
929
+ }
930
+ };
931
+ img.onerror = ()=>{
932
+ reject(new Error('Failed to load image'));
933
+ };
934
+ img.src = imageUrl;
935
+ });
936
+ };
937
+
938
+
939
+
940
+ const $8b98e8a5771f5886$export$83af83298e0405cb = async (tools, options, requestInput = false)=>{
941
+ const audio = {
942
+ output: {
943
+ voice: options.voice
944
+ }
945
+ };
946
+ if (requestInput) audio.input = {
947
+ transcription: {
948
+ model: 'gpt-4o-transcribe'
949
+ }
950
+ };
951
+ const sessionConfig = JSON.stringify({
952
+ instructions: `
953
+ ${options.instructions}
954
+ `,
955
+ tools: tools.list(),
956
+ audio: audio
957
+ });
958
+ const response = await fetch(`${(0, $c9e496369b59be7a$export$2f377c2162fd02b2).config.apiUrl}/public/streams/${(0, $c9e496369b59be7a$export$2f377c2162fd02b2).roomId}/live-agent`, {
959
+ method: 'POST',
960
+ headers: {
961
+ 'Content-Type': 'application/json'
962
+ },
963
+ body: sessionConfig
964
+ });
965
+ const data = await response.json();
966
+ return data;
967
+ };
968
+
969
+
970
+
971
+ const $b10694cdbe7436a4$export$7a6ec380c1221521 = ()=>{
972
+ return (0, $3Sbms$v4)().replace(/-/g, '');
973
+ };
974
+
975
+
976
+
977
+
978
+
979
+ class $9479f834268e4c06$export$46bbf1c329ce020 {
980
+ addContent(text) {
981
+ this.content.push({
982
+ type: 'input_text',
983
+ text: text
984
+ });
985
+ }
986
+ addMediaContent(type, state) {
987
+ this.content.push({
988
+ type: 'input_text',
989
+ text: `[DEVICE_EVENT] {"type":"${type}","status":"${state}"}`
990
+ });
991
+ }
992
+ addAppContent(type, text) {
993
+ this.content.push({
994
+ type: 'input_text',
995
+ text: `[APP_EVENT] {"type":"${type}","text":"${text}"}`
996
+ });
997
+ }
998
+ addInstructionContent(instruction) {
999
+ this.content.push({
1000
+ type: 'input_text',
1001
+ text: `[INSTRUCTION] ${instruction}`
1002
+ });
1003
+ }
1004
+ async addImageContent(url) {
1005
+ const scaledImage = await (0, $031bfaf8b266d819$export$1ee2bff0dde4713b)(url);
1006
+ this.content.push({
1007
+ type: 'input_image',
1008
+ image_url: scaledImage
1009
+ });
1010
+ }
1011
+ build() {
1012
+ return {
1013
+ event_id: this.id,
1014
+ type: 'conversation.item.create',
1015
+ item: {
1016
+ id: this.id,
1017
+ type: 'message',
1018
+ role: 'user',
1019
+ content: this.content
1020
+ }
1021
+ };
1022
+ }
1023
+ constructor(){
1024
+ this.id = (0, $3Sbms$v4)().replace(/-/g, '');
1025
+ this.status = 'pending';
1026
+ this.content = [];
1027
+ }
1028
+ }
1029
+
1030
+
1031
+
1032
+ class $37c469f7c496a04a$export$3ed9ee166c6e6ed3 {
1033
+ constructor(response_id){
1034
+ this.id = (0, $b10694cdbe7436a4$export$7a6ec380c1221521)();
1035
+ this.type = 'response.cancel';
1036
+ this.response_id = response_id;
1037
+ }
1038
+ build() {
1039
+ return {
1040
+ event_id: this.id,
1041
+ type: this.type,
1042
+ response_id: this.response_id
1043
+ };
1044
+ }
1045
+ }
1046
+
1047
+
1048
+
1049
+
1050
+ class $194b1221c75af877$export$a144ab69971f4316 {
1051
+ static{
1052
+ this.internalIdCounter = 0;
1053
+ }
1054
+ constructor(initiator){
1055
+ this.terminated = false;
1056
+ this.canceled = false;
1057
+ this.initiator = initiator;
1058
+ this.id = (0, $b10694cdbe7436a4$export$7a6ec380c1221521)();
1059
+ }
1060
+ setResponseId(response_id) {
1061
+ this.responseId = response_id;
1062
+ }
1063
+ setTerminated() {
1064
+ this.terminated = true;
1065
+ }
1066
+ cancel() {
1067
+ if (!this.responseId || this.canceled) return undefined;
1068
+ this.canceled = true;
1069
+ return new (0, $37c469f7c496a04a$export$3ed9ee166c6e6ed3)(this.responseId);
1070
+ }
1071
+ build() {
1072
+ return {
1073
+ type: 'response.create',
1074
+ event_id: this.id,
1075
+ response: {
1076
+ output_modalities: [
1077
+ 'audio'
1078
+ ],
1079
+ metadata: {
1080
+ initial_event_id: this.id
1081
+ }
1082
+ }
1083
+ };
1084
+ }
1085
+ }
1086
+
1087
+
1088
+
1089
+
1090
+
1091
+
1092
+
1093
+ const $abcb1ebea6899c97$var$log = new (0, $0f65a9eaf4a1e910$export$2e2bcd8739ae039)('LiveAIAgent/PeerConnection');
1094
+ class $abcb1ebea6899c97$export$d84cf184fade0488 {
1095
+ async init({ track: track, onMessage: onMessage, onReady: onReady }) {
1096
+ this.pc = new RTCPeerConnection();
1097
+ this.pc.addTransceiver('audio', {
1098
+ direction: 'sendrecv'
1099
+ });
1100
+ this.onMessage = onMessage;
1101
+ this.pc.addEventListener('close', ()=>{
1102
+ $abcb1ebea6899c97$var$log.info('PeerConnection closed');
1103
+ });
1104
+ this.audioRenderer = new (0, $82e31ca38889c079$export$2e2bcd8739ae039)({
1105
+ consumerId: 'live-ai-agent'
1106
+ });
1107
+ this.audioRenderer.play();
1108
+ this.pc.ontrack = (e)=>{
1109
+ console.log('ontrack', e);
1110
+ this.audioRenderer?.setSource(e.streams[0]);
1111
+ };
1112
+ if (track) this.pc.addTrack(track);
1113
+ else this.pc.addTransceiver('audio', {
1114
+ direction: 'sendrecv'
1115
+ });
1116
+ this.setDataChannel(onReady);
1117
+ const offer = await this.pc.createOffer();
1118
+ await this.pc.setLocalDescription(offer);
1119
+ return offer.sdp;
1120
+ }
1121
+ setTrack(track) {
1122
+ this.pc?.getTransceivers().forEach((transceiver)=>{
1123
+ transceiver.sender.replaceTrack(track);
1124
+ $abcb1ebea6899c97$var$log.debug('replaceTrack', track, transceiver);
1125
+ });
1126
+ }
1127
+ setDataChannel(onOpen) {
1128
+ if (this.pc) {
1129
+ this.dc = this.pc.createDataChannel('oai-events');
1130
+ this.dc.onmessage = (e)=>{
1131
+ const data = JSON.parse(e.data);
1132
+ if (data.type !== 'response.output_audio_transcript.delta') this.history.push({
1133
+ direction: 'receive',
1134
+ message: JSON.stringify(data)
1135
+ });
1136
+ if (data.type === 'response.created') {
1137
+ console.log(this.responseQueue);
1138
+ const message = this.responseQueue[data.response.metadata.initial_event_id];
1139
+ if (message) {
1140
+ message.resolve(data);
1141
+ delete this.responseQueue[data.response.metadata.initial_event_id];
1142
+ } else $abcb1ebea6899c97$var$log.error('Response not found in queue:', data.response.metadata.initial_event_id);
1143
+ }
1144
+ if (data.type === 'conversation.item.done') {
1145
+ const item = data.item;
1146
+ if (item.type === 'function_call') return;
1147
+ const message = this.messageQueue[item.id];
1148
+ if (item.type === 'function_call_output') {
1149
+ console.log(this.toolOutputQueue);
1150
+ const toolOutput = this.toolOutputQueue[item?.call_id];
1151
+ if (toolOutput) {
1152
+ toolOutput.resolve(data);
1153
+ delete this.toolOutputQueue[item?.call_id];
1154
+ return;
1155
+ }
1156
+ }
1157
+ if (message) {
1158
+ message.resolve(data);
1159
+ delete this.messageQueue[item.id];
1160
+ } else $abcb1ebea6899c97$var$log.error('Message not found in queue:', item.id);
1161
+ } else if (data.type === 'error') {
1162
+ if (data.error?.event_id) {
1163
+ const message = this.messageQueue[data.error?.event_id];
1164
+ if (message) {
1165
+ message.reject(data.error);
1166
+ delete this.messageQueue[data.error?.event_id];
1167
+ } else $abcb1ebea6899c97$var$log.error('Message not found in queue:', data.event_id);
1168
+ }
1169
+ } else if (data.type === 'invalid_request_error') {
1170
+ const message = this.responseQueue[data.event_id];
1171
+ if (message) {
1172
+ message.reject(data);
1173
+ delete this.responseQueue[data.event_id];
1174
+ } else $abcb1ebea6899c97$var$log.error('Response not found in queue:', data.event_id);
1175
+ }
1176
+ const messsage = this.messageQueue[data.event_id];
1177
+ console.log('onmessage', data.event_id, messsage);
1178
+ if (messsage) {
1179
+ messsage.resolve(data);
1180
+ delete this.messageQueue[data.event_id];
1181
+ }
1182
+ this.onMessage?.(e.data);
1183
+ };
1184
+ this.dc.onopen = ()=>{
1185
+ onOpen();
1186
+ };
1187
+ this.dc.onclose = ()=>{
1188
+ $abcb1ebea6899c97$var$log.info('Data channel closed');
1189
+ if (!this.closed) this.setDataChannel(()=>{});
1190
+ };
1191
+ }
1192
+ }
1193
+ async send(message) {
1194
+ return new Promise((resolve, reject)=>{
1195
+ if (!this.dc) {
1196
+ $abcb1ebea6899c97$var$log.error('Data channel not found');
1197
+ reject(new Error('Data channel not found'));
1198
+ }
1199
+ if (this.dc?.readyState !== 'open' && this.pc) reject(new Error('Data channel not open'));
1200
+ $abcb1ebea6899c97$var$log.debug('sending message:', message);
1201
+ const sent = JSON.stringify(message);
1202
+ this.messageQueue[message.event_id] = {
1203
+ message: message,
1204
+ resolve: resolve,
1205
+ reject: reject,
1206
+ timeout: 10000
1207
+ };
1208
+ this.history.push({
1209
+ direction: 'send',
1210
+ message: sent
1211
+ });
1212
+ this.dc?.send(sent);
1213
+ });
1214
+ }
1215
+ sendCreateResponse(message) {
1216
+ return new Promise(async (resolve, reject)=>{
1217
+ if (!this.dc) {
1218
+ $abcb1ebea6899c97$var$log.error('Data channel not found');
1219
+ reject(new Error('Data channel not found'));
1220
+ }
1221
+ if (this.dc?.readyState !== 'open' && this.pc) reject(new Error('Data channel not open'));
1222
+ const sent = JSON.stringify(message);
1223
+ this.responseQueue[message.response.metadata.initial_event_id] = {
1224
+ message: message,
1225
+ resolve: resolve,
1226
+ reject: reject
1227
+ };
1228
+ this.history.push({
1229
+ direction: 'send',
1230
+ message: sent
1231
+ });
1232
+ this.dc?.send(sent);
1233
+ });
1234
+ }
1235
+ sendCreateItem(item) {
1236
+ return new Promise(async (resolve, reject)=>{
1237
+ if (!this.dc) {
1238
+ $abcb1ebea6899c97$var$log.error('Data channel not found');
1239
+ reject(new Error('Data channel not found'));
1240
+ }
1241
+ if (this.dc?.readyState !== 'open' && this.pc) reject(new Error('Data channel not open'));
1242
+ const sent = JSON.stringify(item);
1243
+ this.messageQueue[item.event_id] = {
1244
+ message: item,
1245
+ resolve: resolve,
1246
+ reject: reject,
1247
+ timeout: 10000
1248
+ };
1249
+ this.history.push({
1250
+ direction: 'send',
1251
+ message: sent
1252
+ });
1253
+ this.dc?.send(sent);
1254
+ });
1255
+ }
1256
+ sendToolOutput(message) {
1257
+ return new Promise(async (resolve, reject)=>{
1258
+ if (!this.dc) {
1259
+ $abcb1ebea6899c97$var$log.error('Data channel not found');
1260
+ reject(new Error('Data channel not found'));
1261
+ }
1262
+ if (this.dc?.readyState !== 'open' && this.pc) reject(new Error('Data channel not open'));
1263
+ const sent = JSON.stringify(message);
1264
+ this.toolOutputQueue[message.item.call_id] = {
1265
+ message: message,
1266
+ resolve: resolve,
1267
+ reject: reject,
1268
+ timeout: 10000
1269
+ };
1270
+ this.history.push({
1271
+ direction: 'send',
1272
+ message: sent
1273
+ });
1274
+ this.dc?.send(sent);
1275
+ });
1276
+ }
1277
+ async answer(sdp) {
1278
+ const answer = new RTCSessionDescription({
1279
+ type: 'answer',
1280
+ sdp: sdp
1281
+ });
1282
+ await this.pc?.setRemoteDescription(answer);
1283
+ }
1284
+ stop() {
1285
+ if (!this.closed) {
1286
+ this.closed = true;
1287
+ this.pc?.close();
1288
+ }
1289
+ }
1290
+ constructor(){
1291
+ this.responseQueue = {};
1292
+ this.messageQueue = {};
1293
+ this.toolOutputQueue = {};
1294
+ this.history = [];
1295
+ this.closed = false;
1296
+ }
1297
+ }
1298
+
1299
+
1300
+
1301
+ const $75812785bb101fee$export$784df5c7a561530 = (0, $3Sbms$createContext)({});
1302
+ let $75812785bb101fee$var$currentContext = null;
1303
+ const $75812785bb101fee$export$5b34301179acfbb5 = ()=>{
1304
+ return $75812785bb101fee$var$currentContext;
1305
+ };
1306
+ const $75812785bb101fee$export$2174f25d572f9f31 = ()=>{
1307
+ const context = (0, $3Sbms$useContext)($75812785bb101fee$export$784df5c7a561530);
1308
+ $75812785bb101fee$var$currentContext = context;
1309
+ return context;
1310
+ };
1311
+
1312
+
1313
+
1314
+ const $b4ab02c81733a9cf$var$takePhotoFromScreenShare = {
1315
+ active: false,
1316
+ name: 'take_photo_from_screen_share',
1317
+ description: 'Take a photo from screen share',
1318
+ function: async (args)=>{
1319
+ console.log('take_photo', args);
1320
+ const state = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState();
1321
+ if (state.screenshare.enabled) await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).captureScreenShare();
1322
+ }
1323
+ };
1324
+ const $b4ab02c81733a9cf$var$takePhotoFromCamera = {
1325
+ active: false,
1326
+ name: 'take_photo_from_camera',
1327
+ description: 'Take a photo',
1328
+ function: async (args)=>{
1329
+ console.log('take_photo', args);
1330
+ const state = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState();
1331
+ if (state.camera.enabled) await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).captureVideo();
1332
+ }
1333
+ };
1334
+ const $b4ab02c81733a9cf$var$terminateCall = {
1335
+ active: false,
1336
+ name: 'terminate_call',
1337
+ description: 'Terminate call',
1338
+ function: async (args)=>{
1339
+ console.log('terminate_call', args);
1340
+ await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).terminateRoom();
1341
+ }
1342
+ };
1343
+ const $b4ab02c81733a9cf$var$startCamera = {
1344
+ active: false,
1345
+ name: 'start_camera',
1346
+ description: 'Start camera',
1347
+ function: async (args)=>{
1348
+ console.log('start_camera', args);
1349
+ await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableVideo();
1350
+ }
1351
+ };
1352
+ const $b4ab02c81733a9cf$var$stopCamera = {
1353
+ active: false,
1354
+ name: 'stop_camera',
1355
+ description: 'Stop camera',
1356
+ function: async (args)=>{
1357
+ console.log('stop_camera', args);
1358
+ await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableVideo();
1359
+ }
1360
+ };
1361
+ const $b4ab02c81733a9cf$var$stopScreenShare = {
1362
+ active: false,
1363
+ name: 'stop_screen_share',
1364
+ description: 'Stop screen share',
1365
+ function: async (args)=>{
1366
+ console.log('stop_screen_share', args);
1367
+ await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableScreenshare();
1368
+ }
1369
+ };
1370
+ const $b4ab02c81733a9cf$var$startRecord = {
1371
+ active: false,
1372
+ name: 'start_record',
1373
+ description: 'Start record',
1374
+ function: async (args)=>{
1375
+ console.log('start_record', args);
1376
+ await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).startRecord();
1377
+ }
1378
+ };
1379
+ const $b4ab02c81733a9cf$var$stopRecord = {
1380
+ active: false,
1381
+ name: 'stop_record',
1382
+ description: 'Stop record',
1383
+ function: async (args)=>{
1384
+ console.log('stop_record', args);
1385
+ await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).stopRecord();
1386
+ }
1387
+ };
1388
+ const $b4ab02c81733a9cf$var$rotateCamera = {
1389
+ active: false,
1390
+ name: 'rotate_camera',
1391
+ description: 'Rotate camera',
1392
+ function: async (args)=>{
1393
+ console.log('rotate_camera', args);
1394
+ await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).rotateVideo();
1395
+ }
1396
+ };
1397
+ const $b4ab02c81733a9cf$var$openDashboard = {
1398
+ active: false,
1399
+ name: 'open_dashboard',
1400
+ description: 'Open the dashboard',
1401
+ function: async (args)=>{
1402
+ console.log('open_dashboard', args);
1403
+ window.open('https://app.snapcall.io/', '_blank');
1404
+ window.focus();
1405
+ }
1406
+ };
1407
+ const $b4ab02c81733a9cf$var$startScreenShare = {
1408
+ active: false,
1409
+ name: 'start_screen_share',
1410
+ description: 'Start screen share ',
1411
+ function: async (args)=>{
1412
+ console.log('start_screen_share', args);
1413
+ await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).enableScreenshare();
1414
+ }
1415
+ };
1416
+ const $b4ab02c81733a9cf$var$verifyMedia = {
1417
+ active: true,
1418
+ answer: true,
1419
+ name: 'verify_media',
1420
+ description: 'Call this to Verify already sent media type and number by step, it return a json with the media count',
1421
+ function: async (args)=>{
1422
+ console.log('verify_mediaTool', args);
1423
+ const context = (0, $75812785bb101fee$export$5b34301179acfbb5)();
1424
+ const output = {};
1425
+ const steps = {};
1426
+ (0, $c9e496369b59be7a$export$2f377c2162fd02b2).streamInfo?.flow?.steps.forEach((step, index)=>{
1427
+ steps[step.token] = {
1428
+ ...step,
1429
+ index: index + 1
1430
+ };
1431
+ output[`step: ${index + 1}`] = {};
1432
+ });
1433
+ context?.assets.forEach((media)=>{
1434
+ const s = steps[media.stepToken];
1435
+ if (!output[`step: ${s.index}`][media.mode]) output[`step: ${s.index}`][media.mode] = 0;
1436
+ output[`step: ${s.index}`][media.mode]++;
1437
+ });
1438
+ if ($b4ab02c81733a9cf$var$verifyMedia.answer) {
1439
+ $b4ab02c81733a9cf$var$verifyMedia.answer = false;
1440
+ return {
1441
+ output: JSON.stringify(output),
1442
+ answer: true
1443
+ };
1444
+ }
1445
+ console.log('answer:', output);
1446
+ return {
1447
+ output: JSON.stringify(output),
1448
+ answer: false
1449
+ };
1450
+ }
1451
+ };
1452
+ const $b4ab02c81733a9cf$var$displayMessage = {
1453
+ active: false,
1454
+ name: 'display_message',
1455
+ description: 'Allow to display a message to the user',
1456
+ parameters: {
1457
+ type: 'object',
1458
+ strict: true,
1459
+ properties: {
1460
+ text: {
1461
+ type: 'string',
1462
+ description: 'The text to display to the user'
1463
+ }
1464
+ },
1465
+ required: [
1466
+ 'text'
1467
+ ]
1468
+ },
1469
+ function: async (args)=>{
1470
+ console.log('display_message', args);
1471
+ (0, $c9e496369b59be7a$export$2f377c2162fd02b2).dispatchEvent(new CustomEvent('aiDisplayMessage', {
1472
+ detail: {
1473
+ text: args.text
1474
+ }
1475
+ }));
1476
+ }
1477
+ };
1478
+ const $b4ab02c81733a9cf$var$goToStep = {
1479
+ active: false,
1480
+ name: 'go_to_step',
1481
+ description: 'Go to one step in the flow, always call it to got to the next step',
1482
+ arguments: 'the step number (1-based)',
1483
+ parameters: {
1484
+ type: 'object',
1485
+ strict: true,
1486
+ properties: {
1487
+ step: {
1488
+ type: 'number',
1489
+ description: 'The step number (1-based)'
1490
+ }
1491
+ },
1492
+ required: [
1493
+ 'step'
1494
+ ]
1495
+ },
1496
+ function: async (args)=>{
1497
+ const { step: stepNumber } = args;
1498
+ const context = (0, $75812785bb101fee$export$5b34301179acfbb5)();
1499
+ if (stepNumber > ((0, $c9e496369b59be7a$export$2f377c2162fd02b2).streamInfo?.flow?.steps?.length || 0)) return {
1500
+ answer: false,
1501
+ output: 'already at the last step'
1502
+ };
1503
+ const step = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).streamInfo?.flow?.steps[Number(stepNumber) - 1];
1504
+ if (context) context.setCurrentStep(step || null);
1505
+ }
1506
+ };
1507
+ class $b4ab02c81733a9cf$export$390d11d353c16e49 {
1508
+ static{
1509
+ this.instance = new $b4ab02c81733a9cf$export$390d11d353c16e49();
1510
+ }
1511
+ list() {
1512
+ return this.tools.map((tool)=>({
1513
+ type: 'function',
1514
+ name: tool.name,
1515
+ description: tool.description,
1516
+ parameters: tool.parameters
1517
+ }));
1518
+ }
1519
+ async onToolCall(toolOutput) {
1520
+ const tool = this.tools.find((tool)=>tool.name === toolOutput.name);
1521
+ if (tool) try {
1522
+ let parsedArgs;
1523
+ try {
1524
+ parsedArgs = JSON.parse(toolOutput.arg);
1525
+ } catch (error) {
1526
+ console.error('JSON.parse error', error);
1527
+ parsedArgs = toolOutput.arg;
1528
+ }
1529
+ const result = await tool.function(parsedArgs);
1530
+ toolOutput.answer = result?.answer || false;
1531
+ toolOutput.setOutput(result?.output || 'done');
1532
+ return toolOutput;
1533
+ } catch (error) {
1534
+ toolOutput.setOutput('error');
1535
+ console.error('tool.function error', error);
1536
+ return toolOutput;
1537
+ }
1538
+ return toolOutput;
1539
+ }
1540
+ constructor(){
1541
+ this.tools = [
1542
+ $b4ab02c81733a9cf$var$goToStep,
1543
+ $b4ab02c81733a9cf$var$verifyMedia,
1544
+ $b4ab02c81733a9cf$var$displayMessage,
1545
+ $b4ab02c81733a9cf$var$takePhotoFromScreenShare,
1546
+ $b4ab02c81733a9cf$var$takePhotoFromCamera,
1547
+ $b4ab02c81733a9cf$var$openDashboard,
1548
+ $b4ab02c81733a9cf$var$startScreenShare,
1549
+ $b4ab02c81733a9cf$var$startCamera,
1550
+ $b4ab02c81733a9cf$var$stopCamera,
1551
+ $b4ab02c81733a9cf$var$stopScreenShare,
1552
+ $b4ab02c81733a9cf$var$startRecord,
1553
+ $b4ab02c81733a9cf$var$stopRecord,
1554
+ $b4ab02c81733a9cf$var$rotateCamera,
1555
+ $b4ab02c81733a9cf$var$terminateCall
1556
+ ].filter((tool)=>tool.active);
1557
+ this.call = {};
1558
+ }
1559
+ }
1560
+
1561
+
1562
+
1563
+
1564
+
1565
+
1566
+ class $6261a3c4fcd80f00$export$c30f1113934f199 {
1567
+ constructor(initMessage){
1568
+ this.output = '';
1569
+ this.answer = true;
1570
+ this.id = (0, $b10694cdbe7436a4$export$7a6ec380c1221521)();
1571
+ this.callId = initMessage.call_id;
1572
+ this.arg = initMessage.arguments;
1573
+ this.name = initMessage.name;
1574
+ }
1575
+ setOutput(output) {
1576
+ this.output = output;
1577
+ }
1578
+ build() {
1579
+ const message = {
1580
+ type: 'conversation.item.create',
1581
+ event_id: this.id,
1582
+ item: {
1583
+ id: this.id,
1584
+ type: 'function_call_output',
1585
+ output: this.output,
1586
+ call_id: this.callId
1587
+ }
1588
+ };
1589
+ return message;
1590
+ }
1591
+ }
1592
+
1593
+
1594
+ const $1d3572d7f385cb6f$var$log = new (0, $0f65a9eaf4a1e910$export$2e2bcd8739ae039)('LiveAIAgent');
1595
+ const $1d3572d7f385cb6f$export$d713d143d88e7fb = [
1596
+ 'alloy',
1597
+ 'ash',
1598
+ 'ballad',
1599
+ 'cedar',
1600
+ 'coral',
1601
+ 'echo',
1602
+ 'marin',
1603
+ 'sage',
1604
+ 'shimmer',
1605
+ 'verse'
1606
+ ];
1607
+ class $1d3572d7f385cb6f$export$771b825376631bd6 {
1608
+ constructor(listener){
1609
+ this.responses = {};
1610
+ this.userMessages = {};
1611
+ this.tools = (0, $b4ab02c81733a9cf$export$390d11d353c16e49).instance;
1612
+ this.userDelta = [];
1613
+ this.delta = '';
1614
+ this.talking = false;
1615
+ this.options = {
1616
+ voice: 'marin',
1617
+ instructions: ''
1618
+ };
1619
+ this.listener = listener;
1620
+ window.liveAIAgent = this;
1621
+ }
1622
+ mute() {
1623
+ if (this.track) this.track.enabled = false;
1624
+ }
1625
+ unmute() {
1626
+ if (this.track) this.track.enabled = true;
1627
+ }
1628
+ sendUserMessage(message) {
1629
+ this.userMessages[message.id] = message;
1630
+ return this.peerConnection?.sendCreateItem(message.build());
1631
+ }
1632
+ setTrack(track) {
1633
+ this.track = track.clone();
1634
+ this.track.enabled = false;
1635
+ this.peerConnection?.setTrack(this.track);
1636
+ }
1637
+ async init({ instructions: instructions, voice: voice, track: track }) {
1638
+ this.options = {
1639
+ instructions: instructions,
1640
+ voice: voice
1641
+ };
1642
+ const token = await (0, $8b98e8a5771f5886$export$83af83298e0405cb)(this.tools, this.options);
1643
+ const peerConnection = new (0, $abcb1ebea6899c97$export$d84cf184fade0488)();
1644
+ this.peerConnection = peerConnection;
1645
+ const sdp = await peerConnection.init({
1646
+ track: this.track,
1647
+ onMessage: this.onMessage.bind(this),
1648
+ onReady: async ()=>{}
1649
+ });
1650
+ if (!sdp) throw new Error('can not get SDP');
1651
+ const baseUrl = 'https://api.openai.com/v1/realtime/calls';
1652
+ const model = 'gpt-realtime';
1653
+ const sdpResponse = await fetch(`${baseUrl}?model=${model}`, {
1654
+ method: 'POST',
1655
+ body: sdp,
1656
+ headers: {
1657
+ Authorization: `Bearer ${token.value}`,
1658
+ 'Content-Type': 'application/sdp'
1659
+ }
1660
+ });
1661
+ const answer = await sdpResponse.text();
1662
+ await peerConnection.answer(answer);
1663
+ if (track) this.setTrack(track);
1664
+ }
1665
+ async stopResponse() {
1666
+ console.log('stopResponse', this.currentResponse);
1667
+ if (this.currentResponse?.canceled) return;
1668
+ const response = this.currentResponse;
1669
+ const cancel = response?.cancel();
1670
+ console.log('startResponse stopResponse cancel', cancel);
1671
+ if (cancel) {
1672
+ const result = await this.peerConnection?.send(cancel.build()).catch((err)=>{
1673
+ console.error('stopResponse error', err);
1674
+ });
1675
+ /*if (!result && this.talking) {
1676
+ console.log('startResponse output_audio_buffer.clear', this.currentResponse?.responseId);
1677
+ const rq = await this.peerConnection?.send({
1678
+ type: 'output_audio_buffer.clear',
1679
+ event_id: getMessageId(),
1680
+ response_id: this.currentResponse?.responseId,
1681
+ })
1682
+ console.log('startResponse output_audio_buffer.clear', rq);
1683
+ console.log('startResponse waiting for talking to finish');
1684
+
1685
+ }/*/ console.log('startResponse stopResponse', result);
1686
+ }
1687
+ }
1688
+ async startResponse(origin) {
1689
+ const response = new (0, $194b1221c75af877$export$a144ab69971f4316)('client');
1690
+ console.log('startResponse', origin, this.currentResponse);
1691
+ if (this.currentResponse) {
1692
+ if (this.currentResponse.responseId) await this.stopResponse();
1693
+ }
1694
+ if (this.talking) {
1695
+ this.waitTalking = ()=>{
1696
+ this.startResponse(origin);
1697
+ };
1698
+ return;
1699
+ }
1700
+ this.currentResponse = response;
1701
+ const result = await this.peerConnection?.sendCreateResponse(response.build());
1702
+ console.log('startResponse', response);
1703
+ if (result?.response?.id) this.currentResponse.setResponseId(result?.response?.id);
1704
+ return response;
1705
+ }
1706
+ async onMessage(msg) {
1707
+ const data = JSON.parse(msg);
1708
+ const { type: type, delta: delta, id: id } = data;
1709
+ // log.debug(JSON.stringify(data, null, 2));
1710
+ if (type === 'session.created') this.listener.onStart();
1711
+ else if (type === 'response.done') {
1712
+ console.log('response.done:', this.currentResponse);
1713
+ console.log('response.stopped:', data);
1714
+ } else if (type === 'response.created') {
1715
+ if (!this.currentResponse) this.currentResponse = new (0, $194b1221c75af877$export$a144ab69971f4316)('server');
1716
+ this.delta = '';
1717
+ this.listener.onAssistantMessage(this.delta);
1718
+ } else if (type === 'session.updated') ;
1719
+ else if (type === 'conversation.item.input_audio_transcription.delta') this.userDelta[this.userDelta.length - 1] += delta;
1720
+ else if (type === 'conversation.item.input_audio_transcription.completed') this.userDelta.push('');
1721
+ else if (type === 'response.output_item.added') data.item.role;
1722
+ else if (type === 'output_audio_buffer.started') {
1723
+ this.talking = true;
1724
+ this.listener.onAudioAssistant('started');
1725
+ } else if (type === 'output_audio_buffer.stopped') {
1726
+ this.talking = false;
1727
+ if (this.waitTalking) {
1728
+ this.waitTalking();
1729
+ this.waitTalking = undefined;
1730
+ }
1731
+ console.log('output_audio_buffer.stopped:', data);
1732
+ this.currentResponse?.setTerminated();
1733
+ this.currentResponse = undefined;
1734
+ this.listener.onAudioAssistant('stopped');
1735
+ } else if (type === 'response.function_call_arguments.delta') ;
1736
+ else if (type === 'rate_limits.updated') $1d3572d7f385cb6f$var$log.debug('rate_limits.updated:', data.name, data.remaining);
1737
+ else if (type === 'response.output_audio_transcript.delta') {
1738
+ $1d3572d7f385cb6f$var$log.debug(id, delta);
1739
+ this.delta += delta;
1740
+ $1d3572d7f385cb6f$var$log.debug('delta:', id, this.delta);
1741
+ this.listener.onAssistantPartialMessage(this.delta);
1742
+ } else if (type === 'response.function_call_arguments.done') {
1743
+ $1d3572d7f385cb6f$var$log.debug('call:', data);
1744
+ const toolOutput = new (0, $6261a3c4fcd80f00$export$c30f1113934f199)(data);
1745
+ const result = await this.tools.onToolCall(toolOutput);
1746
+ await this.sendToolOutput(result);
1747
+ } else if (type === 'conversation.item.truncated') console.log('conversation.item.truncated:', data);
1748
+ else if (type === 'error') $1d3572d7f385cb6f$var$log.error('error:', data);
1749
+ else $1d3572d7f385cb6f$var$log.debug('onMessage:', JSON.stringify(data, null, 2));
1750
+ }
1751
+ async sendToolOutput(toolOutput) {
1752
+ const message = toolOutput.build();
1753
+ console.log('sendToolOutput:', message);
1754
+ await this.peerConnection?.sendToolOutput(message);
1755
+ console.log('sendToolOutput done:', message);
1756
+ if (toolOutput.answer) this.startResponse(toolOutput.name);
1757
+ return message;
1758
+ }
1759
+ stop() {
1760
+ this.peerConnection?.stop();
1761
+ }
1762
+ dumpHistory() {
1763
+ console.log('messageHistory:', JSON.stringify(this.peerConnection?.history, null, 2));
1764
+ }
1765
+ }
1766
+
1767
+
1768
+
1769
+
1770
+ const $e5f91b6f0b24f44b$var$log = new (0, $0f65a9eaf4a1e910$export$2e2bcd8739ae039)('LiveAIAgent/Instruction');
1771
+ const $e5f91b6f0b24f44b$var$safe = (s)=>(s ?? '').trim() || "\u2014";
1772
+ const $e5f91b6f0b24f44b$var$listSteps = (flow)=>{
1773
+ if (!flow?.steps?.length) return '(no steps defined)';
1774
+ return flow.steps.map((step, index)=>{
1775
+ const types = Array.isArray(step.types) ? step.types.join(', ') : "\u2014";
1776
+ return `\n ${index + 1} -${$e5f91b6f0b24f44b$var$safe(step.title)}: ${$e5f91b6f0b24f44b$var$safe(step.config?.description)}, requested mode: ${types}, default mode: ${step.default_type || ''}`;
1777
+ }).join(',\n');
1778
+ };
1779
+ const $e5f91b6f0b24f44b$var$prepare = (instructionParams)=>{
1780
+ const flow = instructionParams.flow;
1781
+ const unbuild = {
1782
+ role: `
1783
+ You are ${$e5f91b6f0b24f44b$var$safe(instructionParams.name)} a ${$e5f91b6f0b24f44b$var$safe(instructionParams.language)} speaker.
1784
+ You are a customer support agent for ${$e5f91b6f0b24f44b$var$safe(instructionParams.companyName)}.
1785
+ You guide the user in a recorder application.
1786
+ Follow the Flow described in Context. A Flow is an ordered list of Steps.
1787
+ At each Step, collect at least one media of the requested types. Always verify the media sent before talking about the current media.
1788
+ `.trim(),
1789
+ personality: `
1790
+ You are friendly, patient, and helpful.
1791
+ Keep replies short and clear for voice.
1792
+ Prefer ${$e5f91b6f0b24f44b$var$safe(instructionParams.language) || 'English'} answers.
1793
+ `.trim(),
1794
+ context: `
1795
+ You are connected to an application that can share screen, take photos, and receive uploads.
1796
+ A preview of the interface will be displayed to you in the first message.
1797
+ The title of the flow is: ${$e5f91b6f0b24f44b$var$safe(flow?.name)}
1798
+ The flow is described as: ${$e5f91b6f0b24f44b$var$safe(flow?.config?.description)}
1799
+ Steps are:
1800
+ ${$e5f91b6f0b24f44b$var$listSteps(flow)}
1801
+ Before Starting the flow the user has no enable is media, microphone or camera.
1802
+ `.trim(),
1803
+ reference_pronunciations: ``.trim(),
1804
+ tools: `${instructionParams.tools.map((tool)=>`- ${tool.name}: ${tool.description}`).join('\n')}
1805
+
1806
+ `.trim(),
1807
+ instructions: `
1808
+ ### EVENT INTERPRETATION
1809
+ Messages starting with \u{201C}[APP_EVENT]\u{201D} or \u{201C}[DEVICE_EVENT]\u{201D} are NOT spoken by the user.
1810
+ They are authoritative system events. You must TRUST them.
1811
+
1812
+ ### DEVICE EVENTS
1813
+ DEVICE_EVENT always contains JSON. Example:
1814
+ [DEVICE_EVENT] {"type":"microphone_state","status":"active"}
1815
+
1816
+ ### INSTRUCTION EVENTS
1817
+ INSTRUCTION indicate which action to take.
1818
+
1819
+ Supported types:
1820
+ - camera_state: {status: "active" | "inactive"}
1821
+ - microphone_state: {status: "active" | "inactive"}
1822
+
1823
+ The latest DEVICE_EVENT fully overrides previous assumptions.
1824
+
1825
+ ### MICROPHONE / CAMERA LOGIC
1826
+ - Never talk about hearing the user
1827
+ - Only talk about the permissions of the camera as the user can't proceed without it.
1828
+ - If the latest microphone_state or camera_state is "active", NEVER claim the mic is off, muted, unavailable, or not working.
1829
+ - If the latest microphone_state or camera_state is "inactive", guide the user to activate it.
1830
+ - If permission is inactive, say it must be enabled from the popup or from the browser search bar.
1831
+
1832
+ ### FLOW RULES
1833
+ This conversation is a strict media-collection flow.
1834
+ - If there is no media yet, don't mention media or say "No media has been taken yet".
1835
+ - Stay in context. For anything unrelated:
1836
+ \u{201C}I can only help you with media collection in this flow.\u{201D}
1837
+ - Verify media before starting the flow using the verify_media tool. If there is already a media propose to click on "next" or "add more".
1838
+ - Announce when media is already collected. Propose to click on the continue button.
1839
+ - Do not announce next step until receiving the setStep APP_EVENT.
1840
+ - Ask for only one media type at a time.
1841
+ - If multiple media types are allowed, encourage the user to choose one.
1842
+ - Do not judge media content; only confirm reception.
1843
+ - Confirm media **only** when receiving:
1844
+ \u{201C}[APP_EVENT] the user has taken a media\u{201D}
1845
+ - After receiving any allowed media, ask if the user is ready for the next step.
1846
+ - The next step can only be confirmed via the UI button (blue modal button).
1847
+ - Always re-verify previously collected media before proceeding.
1848
+ - Offer the option to go back to add more media at any time.
1849
+
1850
+ ### RESPONSE RULES
1851
+ - Limit responses to **30 words maximum**.
1852
+ `.trim(),
1853
+ conversation_flow: `
1854
+ You will receive step descriptions and requested media types.
1855
+ For each step:
1856
+ 1) You must verify media before starting the flow calling the verify_media tool, and announce media already taken.
1857
+ 2) Do not say "No media has been taken yet" or something similar.
1858
+ 3) You must not announce or discuss any step of the flow until the microphone is fully enabled. If the microphone is not active, the bot must focus only on helping the user enable it.
1859
+ 4) Announce the step briefly and request one allowed media type.
1860
+ 5) On media received: acknowledge ("Received. Thank you.").
1861
+ 6) List accepted types for the step and suggest the default one only if there is only many allowed type.
1862
+ 7) If the user has not taken any media, ask the user to take a media.
1863
+ 8) After loading a step, clearly tell the user that to start recording or to take a photo, they must click on the round button at the bottom of the interface.
1864
+ 9) You must not use phrases implying you will notify the user later, such as "I'll let you know when it's ready." You should only give direct, immediate instructions.
1865
+ 10) On out-of-scope question: decline and restate the current step request.
1866
+ 11) On completion: confirm the process is done and provide a short recap. open send model and request the user to click send button.
1867
+ `.trim(),
1868
+ safety_and_escalation: `
1869
+ Do not request or store sensitive personal data unrelated to the Flow.
1870
+ If the user shares such data, acknowledge and continue the Flow without repeating it.
1871
+ `.trim()
1872
+ };
1873
+ return unbuild;
1874
+ };
1875
+ const $e5f91b6f0b24f44b$export$c9df4e1f27f016e5 = (streamInfo, tools, language)=>{
1876
+ console.log('language', language);
1877
+ const flow = streamInfo.flow;
1878
+ const instructionParams = {
1879
+ name: 'Jean-Didier',
1880
+ language: language,
1881
+ companyName: 'Snapcall',
1882
+ flow: flow,
1883
+ tools: tools.list()
1884
+ };
1885
+ const unbuild = $e5f91b6f0b24f44b$var$prepare(instructionParams);
1886
+ const instruction = `
1887
+ # Role & Objective
1888
+ ${unbuild.role}
1889
+
1890
+ # Personality & Tone
1891
+ ${unbuild.personality}
1892
+
1893
+ # Context
1894
+ ${unbuild.context}
1895
+
1896
+ # Reference Pronunciations
1897
+ ${unbuild.reference_pronunciations}
1898
+
1899
+ # Tools
1900
+ ${unbuild.tools}
1901
+
1902
+ # Instructions / Rules
1903
+ ${unbuild.instructions}
1904
+
1905
+ # Conversation Flow
1906
+ ${unbuild.conversation_flow}
1907
+
1908
+ # Safety & Escalation
1909
+ ${unbuild.safety_and_escalation}
1910
+ `.trim();
1911
+ $e5f91b6f0b24f44b$var$log.debug('getInstructions', instruction);
1912
+ return instruction;
1913
+ };
1914
+
1915
+
1916
+
1917
+
1918
+ class $94dc317d964bfa69$export$53479bc84d79bdc2 {
1919
+ constructor(){
1920
+ this.ready = false;
1921
+ this.initialized = false;
1922
+ this.initialeMessageSent = false;
1923
+ this.startRequested = false;
1924
+ this.agent = new (0, $1d3572d7f385cb6f$export$771b825376631bd6)(this);
1925
+ this.tools = (0, $b4ab02c81733a9cf$export$390d11d353c16e49).instance;
1926
+ $94dc317d964bfa69$export$53479bc84d79bdc2.instance = this;
1927
+ }
1928
+ async init(options, streamInfo, track) {
1929
+ const instructions = (0, $e5f91b6f0b24f44b$export$c9df4e1f27f016e5)(streamInfo, this.tools, options.language);
1930
+ await this.agent.init({
1931
+ instructions: instructions,
1932
+ voice: options.voice,
1933
+ track: track
1934
+ });
1935
+ this.initialized = true;
1936
+ }
1937
+ setTrack(track) {
1938
+ this.agent.setTrack(track);
1939
+ }
1940
+ async addScriptedMessage(script) {
1941
+ if (!this.ready || !this.startRequested || !this.initialized) return;
1942
+ return this.agent.sendUserMessage(script.message);
1943
+ }
1944
+ async addVideoImage(image) {
1945
+ try {
1946
+ const msg = new (0, $9479f834268e4c06$export$46bbf1c329ce020)();
1947
+ await msg.addImageContent(image);
1948
+ await this.agent.sendUserMessage(msg);
1949
+ } catch (error) {
1950
+ console.error('addVideoImage error', error);
1951
+ }
1952
+ }
1953
+ async analyzeVideo() {
1954
+ try {
1955
+ const msg = new (0, $9479f834268e4c06$export$46bbf1c329ce020)();
1956
+ msg.addInstructionContent(`
1957
+ You are granted the ability to check the content of the image for this answer only.
1958
+ check the content of the images you just receive for this video and tell me if the image is conform to the steps requirements if not propose to take an other one.
1959
+ Do not give a feedback of the order like ""
1960
+ You have a 40 words limit for that answer.
1961
+ `);
1962
+ msg.addContent('please review all the images and give your feedback.');
1963
+ await this.agent.sendUserMessage(msg);
1964
+ await this.startResponse('analyzeImageResult');
1965
+ } catch (error) {
1966
+ console.error('analyzeVideo error', error);
1967
+ }
1968
+ }
1969
+ async analyzeImageResult(image) {
1970
+ try {
1971
+ const msg = new (0, $9479f834268e4c06$export$46bbf1c329ce020)();
1972
+ await msg.addImageContent(image);
1973
+ msg.addInstructionContent(`
1974
+ You are granted the ability to check the content of the image for this answer only.
1975
+ check the content of the image you just receive and tell me if the image is conform to the steps requirements if not propose to take an other one.
1976
+ You have a 40 words limit for that answer.
1977
+ `);
1978
+ msg.addContent('please review the image and give your feedback.');
1979
+ await this.agent.sendUserMessage(msg);
1980
+ await this.startResponse('analyzeImageResult');
1981
+ } catch (error) {
1982
+ console.error('analyzeImageResult error', error);
1983
+ }
1984
+ }
1985
+ async onStart() {
1986
+ this.ready = true;
1987
+ if (this.startRequested) await this.sendInitialMessage();
1988
+ }
1989
+ async sendInitialMessage() {
1990
+ console.log('sendInitialMessage', this.initialeMessageSent, this.ready);
1991
+ this.startRequested = true;
1992
+ if (!this.ready) return;
1993
+ if (this.initialeMessageSent) return;
1994
+ this.initialeMessageSent = true;
1995
+ const msg = new (0, $9479f834268e4c06$export$46bbf1c329ce020)();
1996
+ const videoTrack = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).tracksHandler.video.track;
1997
+ const audioTrack = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).tracksHandler.audio.track;
1998
+ msg.addMediaContent('camera', videoTrack ? 'active' : 'inactive');
1999
+ msg.addMediaContent('microphone', audioTrack ? 'active' : 'inactive');
2000
+ msg.addAppContent('event', `setStep: ${(0, $e5b92ac5fb47bd8c$export$2f8b47a141e57afc).instance?.getData().previousStepNumber ?? 1}`);
2001
+ await this.agent.sendUserMessage(msg);
2002
+ const response = await this.startResponse('initial');
2003
+ console.log('response', response);
2004
+ }
2005
+ startResponse(origin) {
2006
+ if (!this.startRequested || !this.ready) return;
2007
+ return this.agent.startResponse(origin);
2008
+ }
2009
+ onAssistantPartialMessage(text) {
2010
+ console.log('onAssistantPartialMessage', text);
2011
+ (0, $c9e496369b59be7a$export$2f377c2162fd02b2).dispatchEvent(new CustomEvent('aiTextMessage', {
2012
+ detail: {
2013
+ text: text
2014
+ }
2015
+ }));
2016
+ }
2017
+ onAssistantMessage(text) {
2018
+ console.log('onAssistantMessage', text);
2019
+ (0, $c9e496369b59be7a$export$2f377c2162fd02b2).dispatchEvent(new CustomEvent('aiTextMessage', {
2020
+ detail: {
2021
+ text: text
2022
+ }
2023
+ }));
2024
+ }
2025
+ onAudioAssistant(state) {
2026
+ console.log('onAudioAssistant', state);
2027
+ if (state === 'started') (0, $c9e496369b59be7a$export$2f377c2162fd02b2).dispatchEvent(new CustomEvent('aiStarted', {
2028
+ detail: {
2029
+ text: ''
2030
+ }
2031
+ }));
2032
+ else (0, $c9e496369b59be7a$export$2f377c2162fd02b2).dispatchEvent(new CustomEvent('aiStopped', {
2033
+ detail: {
2034
+ text: ''
2035
+ }
2036
+ }));
2037
+ }
2038
+ }
2039
+
2040
+
2041
+ const $e5b92ac5fb47bd8c$var$saveData = {
2042
+ mediaAccessGranted: false,
2043
+ previousStepNumber: undefined
2044
+ };
2045
+ const $e5b92ac5fb47bd8c$var$script = {
2046
+ mediaAccessGranted: (message, arg)=>{
2047
+ console.log('state', arg);
2048
+ if (arg?.audio) message.addMediaContent('microphone', arg?.audio ? 'active' : 'inactive');
2049
+ if (arg?.video) message.addMediaContent('camera', arg?.video ? 'active' : 'inactive');
2050
+ let answer = false;
2051
+ if (!$e5b92ac5fb47bd8c$var$saveData.mediaAccessGranted && Boolean(arg?.audio || arg?.video)) {
2052
+ $e5b92ac5fb47bd8c$var$saveData.mediaAccessGranted = true;
2053
+ answer = true;
2054
+ }
2055
+ console.log('mediaAccessGranted', $e5b92ac5fb47bd8c$var$saveData.mediaAccessGranted, message.content);
2056
+ return {
2057
+ message: message,
2058
+ response: answer
2059
+ };
2060
+ },
2061
+ setStep: (message, arg)=>{
2062
+ message.addAppContent('event', `setStep: ${arg?.['stepIndex']}`);
2063
+ if ($e5b92ac5fb47bd8c$var$saveData.previousStepNumber === arg?.['stepIndex']) {
2064
+ $e5b92ac5fb47bd8c$var$saveData.previousStepNumber = arg?.['stepIndex'];
2065
+ return {
2066
+ message: message,
2067
+ response: false
2068
+ };
2069
+ }
2070
+ return {
2071
+ message: message,
2072
+ response: false
2073
+ };
2074
+ },
2075
+ startStep: (message, arg)=>{
2076
+ message.addAppContent('event', `startStep: ${arg?.['stepIndex']}`);
2077
+ message.addInstructionContent(`explain that the user need to click on the record round button to start recording or take the photo`);
2078
+ return {
2079
+ message: message,
2080
+ response: true
2081
+ };
2082
+ },
2083
+ photoTaken: (message)=>{
2084
+ message.addAppContent('event', 'photoTaken');
2085
+ return {
2086
+ message: message,
2087
+ response: false
2088
+ };
2089
+ },
2090
+ startRecord: (message)=>{
2091
+ message.addAppContent('event', 'startRecord');
2092
+ return {
2093
+ message: message,
2094
+ response: false
2095
+ };
2096
+ },
2097
+ videoTaken: (message)=>{
2098
+ message.addAppContent('event', 'videoTaken');
2099
+ return {
2100
+ message: message,
2101
+ response: false
2102
+ };
2103
+ },
2104
+ submissionStep: (message)=>{
2105
+ message.addAppContent('event', 'submissionStep open');
2106
+ message.addContent('request to click the send button to submit the assets');
2107
+ return {
2108
+ message: message,
2109
+ response: true
2110
+ };
2111
+ },
2112
+ sendAssetSuccess: (message)=>{
2113
+ message.addAppContent('event', 'sendAssetSuccess');
2114
+ message.addInstructionContent('simply say thank you and confirm assets have been uploaded.');
2115
+ return {
2116
+ message: message,
2117
+ response: true
2118
+ };
2119
+ },
2120
+ upload: (message, arg)=>{
2121
+ message.addAppContent('event', `uploaded: ${arg?.['type']}`);
2122
+ return {
2123
+ message: message,
2124
+ response: true
2125
+ };
2126
+ }
2127
+ };
2128
+ class $e5b92ac5fb47bd8c$export$2f8b47a141e57afc {
2129
+ static{
2130
+ this.instance = new $e5b92ac5fb47bd8c$export$2f8b47a141e57afc();
2131
+ }
2132
+ getData() {
2133
+ return $e5b92ac5fb47bd8c$var$saveData;
2134
+ }
2135
+ async event(event, arg) {
2136
+ try {
2137
+ const msg = new (0, $9479f834268e4c06$export$46bbf1c329ce020)();
2138
+ const scripted = $e5b92ac5fb47bd8c$var$script[event];
2139
+ console.log('script.event', event);
2140
+ if (scripted) {
2141
+ let content = scripted(msg, arg);
2142
+ console.log('script.event', content);
2143
+ const result = await (0, $94dc317d964bfa69$export$53479bc84d79bdc2).instance?.addScriptedMessage(content);
2144
+ console.log('result', result);
2145
+ if (content?.response) await (0, $94dc317d964bfa69$export$53479bc84d79bdc2).instance?.startResponse(event);
2146
+ } else console.log('script not found', event);
2147
+ } catch (error) {
2148
+ console.error('script.event error', error);
2149
+ }
2150
+ }
2151
+ }
2152
+
2153
+
883
2154
  const $ab40fd7a219a4259$var$defaultConstraints = {
884
2155
  video: {
885
2156
  facingMode: 'user',
@@ -901,14 +2172,18 @@ const $ab40fd7a219a4259$var$defaultConstraints = {
901
2172
  async function $ab40fd7a219a4259$export$9b072140089cdb1b(constraints = $ab40fd7a219a4259$var$defaultConstraints) {
902
2173
  console.log('askTracks', 'constraints', constraints);
903
2174
  const mediaStream = await navigator.mediaDevices.getUserMedia(constraints).catch(async (err)=>{
904
- console.warn('askTracks', 'getUserMedia failed', err);
2175
+ console.log(err);
905
2176
  return undefined;
906
2177
  });
907
- console.log('mediaStream', mediaStream);
908
- return {
2178
+ const result = {
909
2179
  audioTrack: mediaStream?.getAudioTracks()[0] || undefined,
910
2180
  videoTrack: mediaStream?.getVideoTracks()[0] || undefined
911
2181
  };
2182
+ const aiMessage = {};
2183
+ if (result.audioTrack) aiMessage.audio = 'true';
2184
+ if (result.videoTrack) aiMessage.video = 'true';
2185
+ (0, $e5b92ac5fb47bd8c$export$2f8b47a141e57afc).instance?.event('mediaAccessGranted', aiMessage);
2186
+ return result;
912
2187
  }
913
2188
  async function $ab40fd7a219a4259$export$b4d1f928a50d3a7e() {
914
2189
  let hasWebcam = false;
@@ -1463,18 +2738,31 @@ class $18e7e050e6a491e3$export$2e2bcd8739ae039 {
1463
2738
 
1464
2739
 
1465
2740
 
1466
-
1467
2741
  const $0148b6fd862a22e8$var$log = new (0, $0f65a9eaf4a1e910$export$2e2bcd8739ae039)('MediaPipe');
1468
2742
  const $0148b6fd862a22e8$var$mediapipeUrl = "https://stream-assets.snapcall.io";
1469
2743
  let $0148b6fd862a22e8$var$selfieSegmentationInitialized = false;
1470
- const $0148b6fd862a22e8$var$selfieSegmentation = new $3Sbms$SelfieSegmentation({
1471
- locateFile: (file, prefix)=>{
1472
- $0148b6fd862a22e8$var$log.debug('selfieSegmentation', file, prefix);
1473
- if ($0148b6fd862a22e8$var$mediapipeUrl) return `${$0148b6fd862a22e8$var$mediapipeUrl}/mediapipe/${file}`;
1474
- const url = window.location.href;
1475
- const path = url.split('/').slice(0, -1).join('/');
1476
- return `${path}/mediapipe/${file}`;
1477
- }
2744
+ let $0148b6fd862a22e8$var$selfieSegmentation;
2745
+ async function $0148b6fd862a22e8$var$initSelfieSegmentation() {
2746
+ await new Promise((resolve)=>{
2747
+ const script = document.createElement('script');
2748
+ script.src = `${$0148b6fd862a22e8$var$mediapipeUrl}/mediapipe/selfie_segmentation.js`;
2749
+ script.onload = resolve;
2750
+ document.head.appendChild(script);
2751
+ });
2752
+ console.log('selfieSegmentation script loaded');
2753
+ $0148b6fd862a22e8$var$selfieSegmentation = new window.SelfieSegmentation({
2754
+ locateFile: (file, prefix)=>{
2755
+ $0148b6fd862a22e8$var$log.debug('selfieSegmentation', file, prefix);
2756
+ if ($0148b6fd862a22e8$var$mediapipeUrl) return `${$0148b6fd862a22e8$var$mediapipeUrl}/mediapipe/${file}`;
2757
+ const url = window.location.href;
2758
+ const path = url.split('/').slice(0, -1).join('/');
2759
+ return `${path}/mediapipe/${file}`;
2760
+ }
2761
+ });
2762
+ console.log('selfieSegmentation initialized', $0148b6fd862a22e8$var$selfieSegmentation);
2763
+ }
2764
+ $0148b6fd862a22e8$var$initSelfieSegmentation().catch((err)=>{
2765
+ $0148b6fd862a22e8$var$log.error('initSelfieSegmentation', 'error', err);
1478
2766
  });
1479
2767
  class $0148b6fd862a22e8$export$2e2bcd8739ae039 {
1480
2768
  constructor(stream, options){
@@ -1555,7 +2843,7 @@ class $0148b6fd862a22e8$export$2e2bcd8739ae039 {
1555
2843
  }
1556
2844
  runWithFrameCallback() {
1557
2845
  if (this.live) this.image.requestVideoFrameCallback(()=>{
1558
- $0148b6fd862a22e8$var$selfieSegmentation.send({
2846
+ $0148b6fd862a22e8$var$selfieSegmentation?.send({
1559
2847
  image: this.image
1560
2848
  });
1561
2849
  this.runWithFrameCallback();
@@ -1567,21 +2855,21 @@ class $0148b6fd862a22e8$export$2e2bcd8739ae039 {
1567
2855
  selfieMode: false,
1568
2856
  modelSelection: 0
1569
2857
  };
1570
- $0148b6fd862a22e8$var$selfieSegmentation.setOptions(option);
2858
+ $0148b6fd862a22e8$var$selfieSegmentation?.setOptions(option);
1571
2859
  $0148b6fd862a22e8$var$log.log('selfie segmentation initialized');
1572
2860
  if (!$0148b6fd862a22e8$var$selfieSegmentationInitialized) {
1573
- await $0148b6fd862a22e8$var$selfieSegmentation.initialize();
2861
+ await $0148b6fd862a22e8$var$selfieSegmentation?.initialize();
1574
2862
  $0148b6fd862a22e8$var$selfieSegmentationInitialized = true;
1575
2863
  }
1576
2864
  this.image.srcObject = this.stream;
1577
2865
  this.image.onplay = async ()=>{
1578
2866
  this.live = true;
1579
2867
  try {
1580
- $0148b6fd862a22e8$var$selfieSegmentation.onResults((res)=>{
2868
+ $0148b6fd862a22e8$var$selfieSegmentation?.onResults((res)=>{
1581
2869
  this.onFrame(res);
1582
2870
  });
1583
2871
  this.timerWorker.onmessage = ()=>{
1584
- $0148b6fd862a22e8$var$selfieSegmentation.send({
2872
+ $0148b6fd862a22e8$var$selfieSegmentation?.send({
1585
2873
  image: this.image
1586
2874
  });
1587
2875
  };
@@ -1881,6 +3169,8 @@ class $f1b448a7dd8f8e1c$export$79f141de891a5fed {
1881
3169
 
1882
3170
 
1883
3171
 
3172
+
3173
+
1884
3174
  const $c31e3fb4360572af$var$log = new (0, $0f65a9eaf4a1e910$export$2e2bcd8739ae039)('StreamerClient');
1885
3175
  $c31e3fb4360572af$var$log.info('StreamerClient', 'test');
1886
3176
  const $c31e3fb4360572af$export$103bedf43ba882db = {
@@ -2065,6 +3355,7 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
2065
3355
  }
2066
3356
  async init(room, streamInfo, options = this.joinOptions) {
2067
3357
  this.roomId = room;
3358
+ this.streamInfo = streamInfo;
2068
3359
  this.peerId = (0, $3Sbms$v4)();
2069
3360
  this.recordingGroup = options.recordingGroup;
2070
3361
  this.joinOptions = options;
@@ -2713,6 +4004,14 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
2713
4004
  detail: {}
2714
4005
  });
2715
4006
  this.dispatchEvent(event);
4007
+ this.liveAIAgent?.setTrack(track);
4008
+ }
4009
+ initLiveAIAgent(options) {
4010
+ if (!this.streamInfo) throw new Error('streamInfo not initialized');
4011
+ if (this.liveAIAgent) return this.liveAIAgent;
4012
+ this.liveAIAgent = new (0, $94dc317d964bfa69$export$53479bc84d79bdc2)();
4013
+ this.liveAIAgent?.init(options, this.streamInfo);
4014
+ return this.liveAIAgent;
2716
4015
  }
2717
4016
  muteMicrophone() {
2718
4017
  if (this.micProducer) {
@@ -2782,6 +4081,7 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
2782
4081
  this.tracksHandler.cleanAllStreams();
2783
4082
  }
2784
4083
  endCall() {
4084
+ this.liveAIAgent?.agent.stop();
2785
4085
  this.release();
2786
4086
  const event = new $c31e3fb4360572af$export$da085ff0f511c609('leaveRoom', {
2787
4087
  detail: {}
@@ -3112,6 +4412,7 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
3112
4412
  this.screenshare.error = error;
3113
4413
  throw error;
3114
4414
  });
4415
+ (0, $e5b92ac5fb47bd8c$export$2f8b47a141e57afc).instance?.event('startScreenShare');
3115
4416
  this.screenshare.error = undefined;
3116
4417
  }
3117
4418
  async _enableScreenshare(options = {
@@ -3181,6 +4482,7 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
3181
4482
  this.dispatchEvent(event);
3182
4483
  }
3183
4484
  async disableScreenshare() {
4485
+ (0, $e5b92ac5fb47bd8c$export$2f8b47a141e57afc).instance?.event('stopScreenShare');
3184
4486
  if (this.screenshareVideoProducer) {
3185
4487
  this.screenshareVideoProducer.close();
3186
4488
  if (this.protoo?.connected) await this.protoo.request('closeProducer', {
@@ -3238,11 +4540,12 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
3238
4540
  } else $c31e3fb4360572af$var$log.error('requestVideo', `Video consumer ${consumer} not found`);
3239
4541
  }
3240
4542
  async saveCapture(base64Image) {
3241
- return (0, $2114f1d49575b676$export$bfc52a1c1f84ba66)(this.config.apiUrl, {
4543
+ const snapshot = await (0, $2114f1d49575b676$export$bfc52a1c1f84ba66)(this.config.apiUrl, {
3242
4544
  token: this.roomId,
3243
4545
  base64Image: base64Image,
3244
4546
  recordingGroup: this.recordingGroup
3245
4547
  });
4548
+ return snapshot;
3246
4549
  }
3247
4550
  async uploadAsset(file, type) {
3248
4551
  return (0, $07e4bc01ab825269$export$6ad2c48011488f7)(this.config.apiUrl, {
@@ -3284,6 +4587,16 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
3284
4587
  if (videoElement) image = await (0, $15ddac3121cc3a5d$export$674c90a250a8b2c5)(videoElement, this.camera);
3285
4588
  else if (this.webcamProducer && this.webcamProducer.track) image = await (0, $15ddac3121cc3a5d$export$4a210166cc9cb64b)(this.webcamProducer.track);
3286
4589
  else throw new Error('no video to capture');
4590
+ //this.liveAIAgent?.appImage(image);
4591
+ return image;
4592
+ } else throw new Error('feature not allowed');
4593
+ }
4594
+ async captureScreenShare() {
4595
+ if (this.permissions.find((permission)=>permission === 'instant_picture')) {
4596
+ let image;
4597
+ if (this.screenshareVideoProducer && this.screenshareVideoProducer.track) image = await (0, $15ddac3121cc3a5d$export$4a210166cc9cb64b)(this.screenshareVideoProducer.track);
4598
+ else throw new Error('no video to capture');
4599
+ //this.liveAIAgent?.appImage(image);
3287
4600
  return image;
3288
4601
  } else throw new Error('feature not allowed');
3289
4602
  }
@@ -3692,6 +5005,7 @@ class $c31e3fb4360572af$export$2e2bcd8739ae039 extends $c31e3fb4360572af$var$Str
3692
5005
  }
3693
5006
 
3694
5007
 
5008
+
3695
5009
  const $c9e496369b59be7a$export$2f377c2162fd02b2 = new (0, $c31e3fb4360572af$export$2e2bcd8739ae039)();
3696
5010
 
3697
5011
 
@@ -9466,13 +10780,6 @@ const $15a01b611391c1e7$export$494039379563c94d = async (options)=>{
9466
10780
 
9467
10781
 
9468
10782
 
9469
- const $75812785bb101fee$export$784df5c7a561530 = (0, $3Sbms$createContext)({});
9470
- const $75812785bb101fee$export$2174f25d572f9f31 = ()=>{
9471
- const context = (0, $3Sbms$useContext)($75812785bb101fee$export$784df5c7a561530);
9472
- return context;
9473
- };
9474
-
9475
-
9476
10783
 
9477
10784
 
9478
10785
 
@@ -9552,6 +10859,9 @@ const $a646b6b865932ef4$export$1cdb0c90ced085 = ({ children: children, fileInput
9552
10859
  networkIssue: false,
9553
10860
  isUploaded: true
9554
10861
  });
10862
+ (0, $e5b92ac5fb47bd8c$export$2f8b47a141e57afc).instance.event('upload', {
10863
+ type: type
10864
+ });
9555
10865
  flowStepsState.open();
9556
10866
  } catch (error) {
9557
10867
  reportError({
@@ -9662,10 +10972,147 @@ const $0ec22322fcf8a874$export$a6c85b7a72deaeef = ()=>{
9662
10972
 
9663
10973
 
9664
10974
 
10975
+
10976
+
10977
+
10978
+
10979
+
10980
+
10981
+ const $c44648bb74fe2fd0$export$18ae0c9fd28c991e = ({ color: color = 'white' })=>{
10982
+ return /*#__PURE__*/ (0, $3Sbms$jsxs)("svg", {
10983
+ width: "24",
10984
+ height: "25",
10985
+ viewBox: "0 0 24 25",
10986
+ fill: "none",
10987
+ xmlns: "http://www.w3.org/2000/svg",
10988
+ children: [
10989
+ /*#__PURE__*/ (0, $3Sbms$jsx)("path", {
10990
+ d: "M8.84204 3.15789C8.84204 0.557368 9.39941 0 11.9999 0C14.6005 0 15.1578 0.557368 15.1578 3.15789C15.1578 5.75842 14.6005 6.31579 11.9999 6.31579C9.39941 6.31579 8.84204 5.75842 8.84204 3.15789Z",
10991
+ fill: "#121212"
10992
+ }),
10993
+ /*#__PURE__*/ (0, $3Sbms$jsx)("rect", {
10994
+ x: "10.7368",
10995
+ y: "3.15771",
10996
+ width: "2.52632",
10997
+ height: "5.05263",
10998
+ fill: "#121212"
10999
+ }),
11000
+ /*#__PURE__*/ (0, $3Sbms$jsx)("path", {
11001
+ fillRule: "evenodd",
11002
+ clipRule: "evenodd",
11003
+ d: "M12 7.5791C2.118 7.5791 0 9.02826 0 15.7896C0 22.551 2.118 24.0002 12 24.0002C21.882 24.0002 24 22.551 24 15.7896C24 9.02826 21.882 7.5791 12 7.5791ZM12 10.1054C4.29136 10.1054 2.63917 11.38 2.63917 15.7896C2.63917 20.1992 4.29136 21.4738 12 21.4738C19.7086 21.4738 21.3608 20.1992 21.3608 15.7896C21.3608 11.38 19.7086 10.1054 12 10.1054Z",
11004
+ fill: "#121212"
11005
+ }),
11006
+ /*#__PURE__*/ (0, $3Sbms$jsx)("path", {
11007
+ d: "M2.52637 15.7897C2.52637 11.1087 4.19847 10.1055 12.0001 10.1055C19.8016 10.1055 21.4737 11.1087 21.4737 15.7897C21.4737 20.4706 19.8016 21.4739 12.0001 21.4739C4.19847 21.4739 2.52637 20.4706 2.52637 15.7897Z",
11008
+ fill: color
11009
+ }),
11010
+ /*#__PURE__*/ (0, $3Sbms$jsx)("ellipse", {
11011
+ cx: "7.89462",
11012
+ cy: "15.7895",
11013
+ rx: "1.57895",
11014
+ ry: "2.52632",
11015
+ fill: "#121212"
11016
+ }),
11017
+ /*#__PURE__*/ (0, $3Sbms$jsx)("ellipse", {
11018
+ cx: "16.1053",
11019
+ cy: "15.7895",
11020
+ rx: "1.57895",
11021
+ ry: "2.52632",
11022
+ fill: "#121212"
11023
+ })
11024
+ ]
11025
+ });
11026
+ };
11027
+
11028
+
11029
+
11030
+
11031
+
11032
+ const $27cd2372f8d32f4c$var$browser = (0, $3Sbms$bowser).parse(window.navigator.userAgent);
11033
+ const $27cd2372f8d32f4c$export$e3cee2ebbbe23463 = ()=>{
11034
+ const [talking, setTalking] = (0, $3Sbms$useState)(false);
11035
+ const isDesktop = $27cd2372f8d32f4c$var$browser.platform.type === 'desktop';
11036
+ const onAIStarted = (event)=>{
11037
+ console.log('onAIStarted:', event);
11038
+ setTalking(true);
11039
+ };
11040
+ const onAIStopped = (event)=>{
11041
+ console.log('onAIStopped:', event);
11042
+ setTalking(false);
11043
+ };
11044
+ (0, $3Sbms$useEffect)(()=>{
11045
+ (0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener('aiStarted', onAIStarted);
11046
+ (0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener('aiStopped', onAIStopped);
11047
+ return ()=>{
11048
+ (0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener('aiStarted', onAIStarted);
11049
+ (0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener('aiStopped', onAIStopped);
11050
+ };
11051
+ }, []);
11052
+ const [aiMessage, setAiMessage] = (0, $3Sbms$useState)('');
11053
+ const onAITextMessage = (0, $3Sbms$useCallback)((event)=>{
11054
+ setAiMessage(event.detail.text);
11055
+ }, [
11056
+ setAiMessage
11057
+ ]);
11058
+ (0, $3Sbms$useEffect)(()=>{
11059
+ (0, $c9e496369b59be7a$export$2f377c2162fd02b2).addEventListener('aiTextMessage', onAITextMessage);
11060
+ return ()=>{
11061
+ (0, $c9e496369b59be7a$export$2f377c2162fd02b2).removeEventListener('aiTextMessage', onAITextMessage);
11062
+ };
11063
+ }, [
11064
+ onAITextMessage
11065
+ ]);
11066
+ return /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$Popover), {
11067
+ open: aiMessage !== '',
11068
+ onOpenChange: ()=>{
11069
+ console.log('onClick');
11070
+ (0, $c9e496369b59be7a$export$2f377c2162fd02b2).captureVideo().catch(console.error);
11071
+ (0, $c9e496369b59be7a$export$2f377c2162fd02b2).captureScreenShare().catch(console.error);
11072
+ },
11073
+ children: [
11074
+ /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$PopoverTrigger), {
11075
+ className: "relative w-10 h-10 p-2 rounded-full bg-black shadow-sm z-98",
11076
+ children: [
11077
+ talking && /*#__PURE__*/ (0, $3Sbms$jsx)("div", {
11078
+ className: "absolute top-0 right-0 p-[2px] rounded-full bg-blue-700",
11079
+ children: /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$DotsHorizontalIcon), {
11080
+ size: 12,
11081
+ className: "text-black"
11082
+ })
11083
+ }),
11084
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $c44648bb74fe2fd0$export$18ae0c9fd28c991e), {})
11085
+ ]
11086
+ }),
11087
+ /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $3Sbms$PopoverContent), {
11088
+ side: "bottom",
11089
+ sideOffset: 13,
11090
+ className: (0, $3Sbms$classnames)('flex flex-col border-0 rounded-2xl w-fit max-w-[540px] max-h-[75dvh] z-100', {
11091
+ 'max-w-[90vw]': !isDesktop
11092
+ }),
11093
+ onInteractOutside: (e)=>e.preventDefault(),
11094
+ onOpenAutoFocus: (e)=>e.preventDefault(),
11095
+ children: [
11096
+ /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$PopoverArrow), {
11097
+ className: "fill-white"
11098
+ }),
11099
+ /*#__PURE__*/ (0, $3Sbms$jsx)("div", {
11100
+ className: "text-black-1000",
11101
+ children: aiMessage
11102
+ })
11103
+ ]
11104
+ })
11105
+ ]
11106
+ });
11107
+ };
11108
+
11109
+
11110
+
9665
11111
  const $b4057e63640314b7$var$browser = (0, $3Sbms$bowser).parse(window.navigator.userAgent);
9666
11112
  const $b4057e63640314b7$export$aa00db7a33d4c484 = ()=>{
9667
11113
  const { t: t } = (0, $3Sbms$useTranslation)();
9668
11114
  const { isRecording: isRecording, openQRCodeModal: openQRCodeModal, flowStepsState: flowStepsState } = (0, $75812785bb101fee$export$2174f25d572f9f31)();
11115
+ const { streamInfo: streamInfo } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
9669
11116
  const settingsDialogState = (0, $3Sbms$useDialogState)();
9670
11117
  const isMedium = window.matchMedia('(min-width: 768px)').matches;
9671
11118
  const isDesktop = $b4057e63640314b7$var$browser.platform.type === 'desktop';
@@ -9693,7 +11140,8 @@ const $b4057e63640314b7$export$aa00db7a33d4c484 = ()=>{
9693
11140
  })
9694
11141
  }),
9695
11142
  /*#__PURE__*/ (0, $3Sbms$jsx)("div", {
9696
- className: "flex justify-center flex-1"
11143
+ className: "flex justify-center flex-1",
11144
+ children: streamInfo.flow.config?.real_time_assistant && /*#__PURE__*/ (0, $3Sbms$jsx)((0, $27cd2372f8d32f4c$export$e3cee2ebbbe23463), {})
9697
11145
  }),
9698
11146
  /*#__PURE__*/ (0, $3Sbms$jsxs)("div", {
9699
11147
  className: "flex justify-end gap-2 flex-1 z-30",
@@ -10266,6 +11714,8 @@ const $a5dd8f67439dd9eb$export$931d641a2a152cf = ()=>{
10266
11714
 
10267
11715
 
10268
11716
 
11717
+
11718
+ let $24e31aa1532c4049$var$recordInterval = undefined;
10269
11719
  const $24e31aa1532c4049$export$f9da3144ae2525a3 = ()=>{
10270
11720
  const { streamUIContainerRef: streamUIContainerRef } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
10271
11721
  const { t: t } = (0, $3Sbms$useTranslation)();
@@ -10291,6 +11741,8 @@ const $24e31aa1532c4049$export$f9da3144ae2525a3 = ()=>{
10291
11741
  flowStepsState.open();
10292
11742
  try {
10293
11743
  const image = await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).captureVideo(videoElementRef.current);
11744
+ await (0, $e5b92ac5fb47bd8c$export$2f8b47a141e57afc).instance.event('photoTaken');
11745
+ await (0, $94dc317d964bfa69$export$53479bc84d79bdc2).instance?.analyzeImageResult(image);
10294
11746
  const { url: url, filename: filename } = await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).saveCapture(image);
10295
11747
  addAsset({
10296
11748
  stepToken: currentStep.token,
@@ -10322,6 +11774,10 @@ const $24e31aa1532c4049$export$f9da3144ae2525a3 = ()=>{
10322
11774
  mode: mode,
10323
11775
  action: 'stop'
10324
11776
  });
11777
+ if (mode !== 'audio') {
11778
+ clearInterval($24e31aa1532c4049$var$recordInterval);
11779
+ (0, $94dc317d964bfa69$export$53479bc84d79bdc2).instance?.analyzeVideo();
11780
+ }
10325
11781
  try {
10326
11782
  await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).stopRecord();
10327
11783
  if (mode === 'screen') (0, $c9e496369b59be7a$export$2f377c2162fd02b2).disableScreenshare().catch((error)=>{
@@ -10360,6 +11816,7 @@ const $24e31aa1532c4049$export$f9da3144ae2525a3 = ()=>{
10360
11816
  const onCountdownFinish = async ()=>{
10361
11817
  try {
10362
11818
  isVideoBotEnabled;
11819
+ (0, $e5b92ac5fb47bd8c$export$2f8b47a141e57afc).instance.event('startRecord');
10363
11820
  await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).startRecord();
10364
11821
  (0, $c9e496369b59be7a$export$2f377c2162fd02b2).audioLevel?.startAverageAnalysis();
10365
11822
  setShowCountdown(false);
@@ -10374,6 +11831,16 @@ const $24e31aa1532c4049$export$f9da3144ae2525a3 = ()=>{
10374
11831
  } catch (err) {
10375
11832
  console.warn("Couldn't capture video for thumbnail", err);
10376
11833
  }
11834
+ if (mode !== 'audio') $24e31aa1532c4049$var$recordInterval = window.setInterval(()=>{
11835
+ const addImage = async ()=>{
11836
+ let image = undefined;
11837
+ console.log(mode);
11838
+ if (mode === 'screen') image = await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).captureScreenShare().catch(console.error);
11839
+ else image = await (0, $c9e496369b59be7a$export$2f377c2162fd02b2).captureVideo(undefined).catch(console.error);
11840
+ if (image) await (0, $94dc317d964bfa69$export$53479bc84d79bdc2).instance?.addVideoImage(image);
11841
+ };
11842
+ addImage();
11843
+ }, 2000);
10377
11844
  setIncomingAsset({
10378
11845
  mode: mode,
10379
11846
  thumbnailUrl: thumbnail || undefined,
@@ -11247,6 +12714,8 @@ const $c17ed5e6f3ec1094$export$60c4050edc47776a = ({ streamToken: streamToken, o
11247
12714
  };
11248
12715
 
11249
12716
 
12717
+
12718
+
11250
12719
  const $59f1fdae22c68b94$export$423b43901b3e0d2e = ({ currentStep: currentStep, onNextClick: onNextClick })=>{
11251
12720
  const { t: t } = (0, $3Sbms$useTranslation)();
11252
12721
  const { streamInfo: streamInfo, options: options } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
@@ -11345,6 +12814,10 @@ const $59f1fdae22c68b94$export$423b43901b3e0d2e = ({ currentStep: currentStep, o
11345
12814
  variant: "secondary",
11346
12815
  onClick: ()=>{
11347
12816
  flowStepsState.close();
12817
+ (0, $e5b92ac5fb47bd8c$export$2f8b47a141e57afc).instance?.event('startStep', {
12818
+ stepIndex: `${currentStepIndex + 1}`
12819
+ });
12820
+ (0, $94dc317d964bfa69$export$53479bc84d79bdc2).instance?.sendInitialMessage();
11348
12821
  (0, $2a1d7886742be527$export$18c6473b5b45bda1)?.track('Add new clip', {
11349
12822
  alreadySent: false
11350
12823
  }, {
@@ -11361,6 +12834,11 @@ const $59f1fdae22c68b94$export$423b43901b3e0d2e = ({ currentStep: currentStep, o
11361
12834
  }),
11362
12835
  /*#__PURE__*/ (0, $3Sbms$jsx)((0, $3Sbms$Button), {
11363
12836
  onClick: ()=>{
12837
+ const n = streamInfo.flow.steps.findIndex((step)=>step.token === currentStep.token);
12838
+ (0, $e5b92ac5fb47bd8c$export$2f8b47a141e57afc).instance?.event('startStep', {
12839
+ stepIndex: `${n + 1}`
12840
+ });
12841
+ (0, $94dc317d964bfa69$export$53479bc84d79bdc2).instance?.sendInitialMessage();
11364
12842
  if (currentStep.token === 'kyc') setShowKycSubStep(true);
11365
12843
  else onNextClick();
11366
12844
  },
@@ -11481,6 +12959,7 @@ const $e7cb1b9cf7f73f20$export$ce05094b93c0f011 = ()=>{
11481
12959
  return results;
11482
12960
  },
11483
12961
  onSuccess: ()=>{
12962
+ (0, $e5b92ac5fb47bd8c$export$2f8b47a141e57afc).instance?.event('sendAssetSuccess');
11484
12963
  (0, $c9e496369b59be7a$export$2f377c2162fd02b2).release();
11485
12964
  flowSourceAction.onRecorderEnd();
11486
12965
  },
@@ -11559,6 +13038,7 @@ const $e20a0174cf9bf8da$export$16028ed4f0100bfc = ({ asset: asset, url: url })=>
11559
13038
 
11560
13039
 
11561
13040
 
13041
+
11562
13042
  const $c4f41e7ef04fee7d$export$5433a7b0165240b6 = ()=>{
11563
13043
  const { streamInfo: streamInfo } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
11564
13044
  const { isRecording: isRecording, currentStep: currentStep, flowStepsState: flowStepsState, assets: assets, setCurrentStep: setCurrentStep, openedAsset: openedAsset } = (0, $75812785bb101fee$export$2174f25d572f9f31)();
@@ -11578,6 +13058,11 @@ const $c4f41e7ef04fee7d$export$5433a7b0165240b6 = ()=>{
11578
13058
  const currentStepAssets = assets.filter((asset)=>asset.stepToken === currentStep?.token);
11579
13059
  const nextStep = streamInfo.flow.steps[currentStepIndex + 1];
11580
13060
  const isMedium = window.matchMedia('(min-width: 768px)').matches;
13061
+ (0, $3Sbms$useEffect)(()=>{
13062
+ if (showSubmissionStep) (0, $e5b92ac5fb47bd8c$export$2f8b47a141e57afc).instance.event('submissionStep');
13063
+ }, [
13064
+ showSubmissionStep
13065
+ ]);
11581
13066
  return /*#__PURE__*/ (0, $3Sbms$jsx)((0, $79bae5c9904f9029$export$56d72fe406945300), {
11582
13067
  type: isMedium ? 'alert-dialog' : 'sheet',
11583
13068
  showClose: false,
@@ -11641,7 +13126,7 @@ const $c4f41e7ef04fee7d$export$5433a7b0165240b6 = ()=>{
11641
13126
 
11642
13127
  const $d6943d128e6c8399$var$browser = (0, $3Sbms$bowser).parse(window.navigator.userAgent);
11643
13128
  const $d6943d128e6c8399$export$336a011955157f9a = ()=>{
11644
- const { streamInfo: streamInfo } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
13129
+ const { streamInfo: streamInfo, language: language } = (0, $3Sbms$useContext)((0, $5f30d8bf4f04621e$export$2e2bcd8739ae039));
11645
13130
  const [currentStep, setCurrentStep] = (0, $3Sbms$useState)(streamInfo.flow?.steps[0] || null);
11646
13131
  const [mode, setMode] = (0, $3Sbms$useState)(currentStep?.default_type || 'video');
11647
13132
  const [assets, setAssets] = (0, $3Sbms$useState)([]);
@@ -11664,6 +13149,16 @@ const $d6943d128e6c8399$export$336a011955157f9a = ()=>{
11664
13149
  const switchToMobileModalState = (0, $3Sbms$useDialogState)({
11665
13150
  defaultOpen: showSwitchToMobileModal
11666
13151
  });
13152
+ (0, $3Sbms$useEffect)(()=>{
13153
+ if (streamInfo?.flow?.config?.real_time_assistant) (0, $c9e496369b59be7a$export$2f377c2162fd02b2).initLiveAIAgent({
13154
+ language: language,
13155
+ voice: 'alloy'
13156
+ });
13157
+ }, [
13158
+ showSwitchToMobileModal,
13159
+ language,
13160
+ streamInfo?.flow?.config?.real_time_assistant
13161
+ ]);
11667
13162
  const { t: t } = (0, $3Sbms$useTranslation)();
11668
13163
  const reportError = (0, $b57f32aadf2afba1$export$5a5695b638d078e7)();
11669
13164
  const devicesState = (0, $c9e496369b59be7a$export$2f377c2162fd02b2).getDevicesState();
@@ -11749,6 +13244,7 @@ const $d6943d128e6c8399$export$336a011955157f9a = ()=>{
11749
13244
  networkIssue: networkIssue,
11750
13245
  isUploaded: false
11751
13246
  });
13247
+ (0, $e5b92ac5fb47bd8c$export$2f8b47a141e57afc).instance.event('videoTaken');
11752
13248
  }
11753
13249
  setNetworkIssue(false);
11754
13250
  };
@@ -11791,6 +13287,17 @@ const $d6943d128e6c8399$export$336a011955157f9a = ()=>{
11791
13287
  reportError,
11792
13288
  t
11793
13289
  ]);
13290
+ (0, $3Sbms$useEffect)(()=>{
13291
+ if (currentStep) {
13292
+ const n = streamInfo.flow.steps.findIndex((step)=>step.token === currentStep.token);
13293
+ (0, $e5b92ac5fb47bd8c$export$2f8b47a141e57afc).instance?.event('setStep', {
13294
+ stepIndex: `${n + 1}`
13295
+ });
13296
+ }
13297
+ }, [
13298
+ currentStep,
13299
+ streamInfo.flow.steps
13300
+ ]);
11794
13301
  return /*#__PURE__*/ (0, $3Sbms$jsx)("div", {
11795
13302
  className: "flex flex-col justify-between w-full h-full gap-6 p-6 bg-gray-25 max-sm:gap-4 max-sm:p-4",
11796
13303
  children: /*#__PURE__*/ (0, $3Sbms$jsxs)((0, $75812785bb101fee$export$784df5c7a561530).Provider, {
@@ -11824,7 +13331,9 @@ const $d6943d128e6c8399$export$336a011955157f9a = ()=>{
11824
13331
  children: [
11825
13332
  /*#__PURE__*/ (0, $3Sbms$jsx)((0, $cdbb2eb5311c616f$export$f9d8408fefd786da), {
11826
13333
  state: switchToMobileModalState,
11827
- onClose: ()=>flowStepsState.open()
13334
+ onClose: ()=>{
13335
+ flowStepsState.open();
13336
+ }
11828
13337
  }),
11829
13338
  /*#__PURE__*/ (0, $3Sbms$jsx)((0, $c4f41e7ef04fee7d$export$5433a7b0165240b6), {}),
11830
13339
  /*#__PURE__*/ (0, $3Sbms$jsx)((0, $b4057e63640314b7$export$aa00db7a33d4c484), {}),
@@ -12808,7 +14317,7 @@ var $26ed036cbc17809a$export$2e2bcd8739ae039 = $26ed036cbc17809a$var$StreamUI;
12808
14317
 
12809
14318
 
12810
14319
  var $1e2747ca72d0ab49$exports = {};
12811
- $1e2747ca72d0ab49$exports = "/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */\n@layer properties {\n @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {\n *, :before, :after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-space-x-reverse: 0;\n --tw-divide-x-reverse: 0;\n --tw-border-style: solid;\n --tw-divide-y-reverse: 0;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-backdrop-blur: initial;\n --tw-backdrop-brightness: initial;\n --tw-backdrop-contrast: initial;\n --tw-backdrop-grayscale: initial;\n --tw-backdrop-hue-rotate: initial;\n --tw-backdrop-invert: initial;\n --tw-backdrop-opacity: initial;\n --tw-backdrop-saturate: initial;\n --tw-backdrop-sepia: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}\n\n@layer theme {\n :root, :host {\n --font-sans: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --spacing: .25rem;\n --container-xs: 20rem;\n --container-sm: 24rem;\n --container-md: 28rem;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --radius-sm: .25rem;\n --radius-md: .375rem;\n --radius-lg: .5rem;\n --radius-xl: .75rem;\n --radius-2xl: 1rem;\n --radius-3xl: 1.5rem;\n --ease-in-out: cubic-bezier(.4, 0, .2, 1);\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;\n --blur-xs: 4px;\n --blur-lg: 16px;\n --default-transition-duration: .15s;\n --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --text-xs: 12px;\n --text-xs--line-height: 16px;\n --text-xs--letter-spacing: -.02em;\n --text-sm: 14px;\n --text-sm--line-height: 20px;\n --text-sm--letter-spacing: -.02em;\n --text-md: 16px;\n --text-md--line-height: 20px;\n --text-md--letter-spacing: -.02em;\n --text-lg: 18px;\n --text-lg--line-height: 22px;\n --text-lg--letter-spacing: -.02em;\n --text-xl: 20px;\n --text-xl--line-height: 24px;\n --text-xl--letter-spacing: -.02em;\n --text-2xl: 24px;\n --text-2xl--line-height: 32px;\n --text-2xl--letter-spacing: -.02em;\n --text-3xl: 30px;\n --text-3xl--line-height: 38px;\n --text-3xl--letter-spacing: -.02em;\n --text-4xl: 36px;\n --text-4xl--line-height: 44px;\n --text-4xl--letter-spacing: -.02em;\n --text-5xl: 48px;\n --text-5xl--line-height: 60px;\n --text-5xl--letter-spacing: -.02em;\n --text-6xl: 60px;\n --text-6xl--line-height: 72px;\n --text-6xl--letter-spacing: -.02em;\n --text-7xl: 72px;\n --text-7xl--line-height: 90px;\n --text-7xl--letter-spacing: -.02em;\n --animate-accordion-down: accordion-down .2s ease-out;\n --animate-accordion-up: accordion-up .2s ease-out;\n --color-black: var(--color-black);\n --color-white: var(--color-white);\n --color-gray-25: var(--color-gray-25);\n --color-gray-50: var(--color-gray-50);\n --color-gray-100: var(--color-gray-100);\n --color-gray-200: var(--color-gray-200);\n --color-gray-300: var(--color-gray-300);\n --color-gray-400: var(--color-gray-400);\n --color-gray-500: var(--color-gray-500);\n --color-gray-600: var(--color-gray-600);\n --color-gray-700: var(--color-gray-700);\n --color-gray-800: var(--color-gray-800);\n --color-gray-900: var(--color-gray-900);\n --color-gray-1000: var(--color-gray-1000);\n --color-blue-25: var(--color-blue-25);\n --color-blue-50: var(--color-blue-50);\n --color-blue-100: var(--color-blue-100);\n --color-blue-200: var(--color-blue-200);\n --color-blue-300: var(--color-blue-300);\n --color-blue-400: var(--color-blue-400);\n --color-blue-500: var(--color-blue-500);\n --color-blue-600: var(--color-blue-600);\n --color-blue-700: var(--color-blue-700);\n --color-blue-800: var(--color-blue-800);\n --color-blue-900: var(--color-blue-900);\n --color-blue-1000: var(--color-blue-1000);\n --color-red-25: var(--color-red-25);\n --color-red-50: var(--color-red-50);\n --color-red-100: var(--color-red-100);\n --color-red-200: var(--color-red-200);\n --color-red-300: var(--color-red-300);\n --color-red-400: var(--color-red-400);\n --color-red-500: var(--color-red-500);\n --color-red-600: var(--color-red-600);\n --color-red-700: var(--color-red-700);\n --color-red-800: var(--color-red-800);\n --color-red-900: var(--color-red-900);\n --color-red-1000: var(--color-red-1000);\n --color-amber-25: var(--color-amber-25);\n --color-amber-50: var(--color-amber-50);\n --color-amber-100: var(--color-amber-100);\n --color-amber-200: var(--color-amber-200);\n --color-amber-300: var(--color-amber-300);\n --color-amber-400: var(--color-amber-400);\n --color-amber-500: var(--color-amber-500);\n --color-amber-600: var(--color-amber-600);\n --color-amber-700: var(--color-amber-700);\n --color-amber-800: var(--color-amber-800);\n --color-amber-900: var(--color-amber-900);\n --color-amber-1000: var(--color-amber-1000);\n --color-green-25: var(--color-green-25);\n --color-green-50: var(--color-green-50);\n --color-green-100: var(--color-green-100);\n --color-green-200: var(--color-green-200);\n --color-green-300: var(--color-green-300);\n --color-green-400: var(--color-green-400);\n --color-green-500: var(--color-green-500);\n --color-green-600: var(--color-green-600);\n --color-green-700: var(--color-green-700);\n --color-green-800: var(--color-green-800);\n --color-green-900: var(--color-green-900);\n --color-green-1000: var(--color-green-1000);\n --color-tomato-25: var(--color-tomato-25);\n --color-tomato-50: var(--color-tomato-50);\n --color-tomato-100: var(--color-tomato-100);\n --color-tomato-200: var(--color-tomato-200);\n --color-tomato-300: var(--color-tomato-300);\n --color-tomato-400: var(--color-tomato-400);\n --color-tomato-500: var(--color-tomato-500);\n --color-tomato-600: var(--color-tomato-600);\n --color-tomato-700: var(--color-tomato-700);\n --color-tomato-800: var(--color-tomato-800);\n --color-tomato-900: var(--color-tomato-900);\n --color-tomato-1000: var(--color-tomato-1000);\n --color-crimson-25: var(--color-crimson-25);\n --color-crimson-50: var(--color-crimson-50);\n --color-crimson-100: var(--color-crimson-100);\n --color-crimson-200: var(--color-crimson-200);\n --color-crimson-300: var(--color-crimson-300);\n --color-crimson-400: var(--color-crimson-400);\n --color-crimson-500: var(--color-crimson-500);\n --color-crimson-600: var(--color-crimson-600);\n --color-crimson-700: var(--color-crimson-700);\n --color-crimson-800: var(--color-crimson-800);\n --color-crimson-900: var(--color-crimson-900);\n --color-crimson-1000: var(--color-crimson-1000);\n --color-pink-25: var(--color-pink-25);\n --color-pink-50: var(--color-pink-50);\n --color-pink-100: var(--color-pink-100);\n --color-pink-200: var(--color-pink-200);\n --color-pink-300: var(--color-pink-300);\n --color-pink-400: var(--color-pink-400);\n --color-pink-500: var(--color-pink-500);\n --color-pink-600: var(--color-pink-600);\n --color-pink-700: var(--color-pink-700);\n --color-pink-800: var(--color-pink-800);\n --color-pink-900: var(--color-pink-900);\n --color-pink-1000: var(--color-pink-1000);\n --color-plum-25: var(--color-plum-25);\n --color-plum-50: var(--color-plum-50);\n --color-plum-100: var(--color-plum-100);\n --color-plum-200: var(--color-plum-200);\n --color-plum-300: var(--color-plum-300);\n --color-plum-400: var(--color-plum-400);\n --color-plum-500: var(--color-plum-500);\n --color-plum-600: var(--color-plum-600);\n --color-plum-700: var(--color-plum-700);\n --color-plum-800: var(--color-plum-800);\n --color-plum-900: var(--color-plum-900);\n --color-plum-1000: var(--color-plum-1000);\n --color-purple-25: var(--color-purple-25);\n --color-purple-50: var(--color-purple-50);\n --color-purple-100: var(--color-purple-100);\n --color-purple-200: var(--color-purple-200);\n --color-purple-300: var(--color-purple-300);\n --color-purple-400: var(--color-purple-400);\n --color-purple-500: var(--color-purple-500);\n --color-purple-600: var(--color-purple-600);\n --color-purple-700: var(--color-purple-700);\n --color-purple-800: var(--color-purple-800);\n --color-purple-900: var(--color-purple-900);\n --color-purple-1000: var(--color-purple-1000);\n --color-violet-25: var(--color-violet-25);\n --color-violet-50: var(--color-violet-50);\n --color-violet-100: var(--color-violet-100);\n --color-violet-200: var(--color-violet-200);\n --color-violet-300: var(--color-violet-300);\n --color-violet-400: var(--color-violet-400);\n --color-violet-500: var(--color-violet-500);\n --color-violet-600: var(--color-violet-600);\n --color-violet-700: var(--color-violet-700);\n --color-violet-800: var(--color-violet-800);\n --color-violet-900: var(--color-violet-900);\n --color-violet-1000: var(--color-violet-1000);\n --color-indigo-25: var(--color-indigo-25);\n --color-indigo-50: var(--color-indigo-50);\n --color-indigo-100: var(--color-indigo-100);\n --color-indigo-200: var(--color-indigo-200);\n --color-indigo-300: var(--color-indigo-300);\n --color-indigo-400: var(--color-indigo-400);\n --color-indigo-500: var(--color-indigo-500);\n --color-indigo-600: var(--color-indigo-600);\n --color-indigo-700: var(--color-indigo-700);\n --color-indigo-800: var(--color-indigo-800);\n --color-indigo-900: var(--color-indigo-900);\n --color-indigo-1000: var(--color-indigo-1000);\n --color-cyan-25: var(--color-cyan-25);\n --color-cyan-50: var(--color-cyan-50);\n --color-cyan-100: var(--color-cyan-100);\n --color-cyan-200: var(--color-cyan-200);\n --color-cyan-300: var(--color-cyan-300);\n --color-cyan-400: var(--color-cyan-400);\n --color-cyan-500: var(--color-cyan-500);\n --color-cyan-600: var(--color-cyan-600);\n --color-cyan-700: var(--color-cyan-700);\n --color-cyan-800: var(--color-cyan-800);\n --color-cyan-900: var(--color-cyan-900);\n --color-cyan-1000: var(--color-cyan-1000);\n --color-teal-25: var(--color-teal-25);\n --color-teal-50: var(--color-teal-50);\n --color-teal-100: var(--color-teal-100);\n --color-teal-200: var(--color-teal-200);\n --color-teal-300: var(--color-teal-300);\n --color-teal-400: var(--color-teal-400);\n --color-teal-500: var(--color-teal-500);\n --color-teal-600: var(--color-teal-600);\n --color-teal-700: var(--color-teal-700);\n --color-teal-800: var(--color-teal-800);\n --color-teal-900: var(--color-teal-900);\n --color-teal-1000: var(--color-teal-1000);\n --color-grass-25: var(--color-grass-25);\n --color-grass-50: var(--color-grass-50);\n --color-grass-100: var(--color-grass-100);\n --color-grass-200: var(--color-grass-200);\n --color-grass-300: var(--color-grass-300);\n --color-grass-400: var(--color-grass-400);\n --color-grass-500: var(--color-grass-500);\n --color-grass-600: var(--color-grass-600);\n --color-grass-700: var(--color-grass-700);\n --color-grass-800: var(--color-grass-800);\n --color-grass-900: var(--color-grass-900);\n --color-grass-1000: var(--color-grass-1000);\n --color-brown-25: var(--color-brown-25);\n --color-brown-50: var(--color-brown-50);\n --color-brown-100: var(--color-brown-100);\n --color-brown-200: var(--color-brown-200);\n --color-brown-300: var(--color-brown-300);\n --color-brown-400: var(--color-brown-400);\n --color-brown-500: var(--color-brown-500);\n --color-brown-600: var(--color-brown-600);\n --color-brown-700: var(--color-brown-700);\n --color-brown-800: var(--color-brown-800);\n --color-brown-900: var(--color-brown-900);\n --color-brown-1000: var(--color-brown-1000);\n --color-orange-25: var(--color-orange-25);\n --color-orange-50: var(--color-orange-50);\n --color-orange-100: var(--color-orange-100);\n --color-orange-200: var(--color-orange-200);\n --color-orange-300: var(--color-orange-300);\n --color-orange-400: var(--color-orange-400);\n --color-orange-500: var(--color-orange-500);\n --color-orange-600: var(--color-orange-600);\n --color-orange-700: var(--color-orange-700);\n --color-orange-800: var(--color-orange-800);\n --color-orange-900: var(--color-orange-900);\n --color-orange-1000: var(--color-orange-1000);\n --color-sky-25: var(--color-sky-25);\n --color-sky-50: var(--color-sky-50);\n --color-sky-100: var(--color-sky-100);\n --color-sky-200: var(--color-sky-200);\n --color-sky-300: var(--color-sky-300);\n --color-sky-400: var(--color-sky-400);\n --color-sky-500: var(--color-sky-500);\n --color-sky-600: var(--color-sky-600);\n --color-sky-700: var(--color-sky-700);\n --color-sky-800: var(--color-sky-800);\n --color-sky-900: var(--color-sky-900);\n --color-sky-1000: var(--color-sky-1000);\n --color-mint-25: var(--color-mint-25);\n --color-mint-50: var(--color-mint-50);\n --color-mint-100: var(--color-mint-100);\n --color-mint-200: var(--color-mint-200);\n --color-mint-300: var(--color-mint-300);\n --color-mint-400: var(--color-mint-400);\n --color-mint-500: var(--color-mint-500);\n --color-mint-600: var(--color-mint-600);\n --color-mint-700: var(--color-mint-700);\n --color-mint-800: var(--color-mint-800);\n --color-mint-900: var(--color-mint-900);\n --color-mint-1000: var(--color-mint-1000);\n --color-lime-25: var(--color-lime-25);\n --color-lime-50: var(--color-lime-50);\n --color-lime-100: var(--color-lime-100);\n --color-lime-200: var(--color-lime-200);\n --color-lime-300: var(--color-lime-300);\n --color-lime-400: var(--color-lime-400);\n --color-lime-500: var(--color-lime-500);\n --color-lime-600: var(--color-lime-600);\n --color-lime-700: var(--color-lime-700);\n --color-lime-800: var(--color-lime-800);\n --color-lime-900: var(--color-lime-900);\n --color-lime-1000: var(--color-lime-1000);\n --color-yellow-25: var(--color-yellow-25);\n --color-yellow-50: var(--color-yellow-50);\n --color-yellow-100: var(--color-yellow-100);\n --color-yellow-200: var(--color-yellow-200);\n --color-yellow-300: var(--color-yellow-300);\n --color-yellow-400: var(--color-yellow-400);\n --color-yellow-500: var(--color-yellow-500);\n --color-yellow-600: var(--color-yellow-600);\n --color-yellow-700: var(--color-yellow-700);\n --color-yellow-800: var(--color-yellow-800);\n --color-yellow-900: var(--color-yellow-900);\n --color-yellow-1000: var(--color-yellow-1000);\n --color-gold-25: var(--color-gold-25);\n --color-gold-50: var(--color-gold-50);\n --color-gold-100: var(--color-gold-100);\n --color-gold-200: var(--color-gold-200);\n --color-gold-300: var(--color-gold-300);\n --color-gold-400: var(--color-gold-400);\n --color-gold-500: var(--color-gold-500);\n --color-gold-600: var(--color-gold-600);\n --color-gold-700: var(--color-gold-700);\n --color-gold-800: var(--color-gold-800);\n --color-gold-900: var(--color-gold-900);\n --color-gold-1000: var(--color-gold-1000);\n --color-bronze-25: var(--color-bronze-25);\n --color-bronze-50: var(--color-bronze-50);\n --color-bronze-100: var(--color-bronze-100);\n --color-bronze-200: var(--color-bronze-200);\n --color-bronze-300: var(--color-bronze-300);\n --color-bronze-400: var(--color-bronze-400);\n --color-bronze-500: var(--color-bronze-500);\n --color-bronze-600: var(--color-bronze-600);\n --color-bronze-700: var(--color-bronze-700);\n --color-bronze-800: var(--color-bronze-800);\n --color-bronze-900: var(--color-bronze-900);\n --color-bronze-1000: var(--color-bronze-1000);\n --animate-flash: flash .8s forwards;\n --background-image-pattern: linear-gradient(180deg, transparent 0%, #fff 100%), linear-gradient(0deg, transparent 0%, #ffffffbf 100%), url(\"data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M40 40V41H41V40H40ZM39 0V40H41V0H39ZM40 39H0V41H40V39Z' fill='%23E8E8E8' mask='url(%23path-1-inside-1_124_242)'/%3E%3C/svg%3E\");\n }\n}\n\n@layer base {\n *, :after, :before, ::backdrop {\n box-sizing: border-box;\n border: 0 solid;\n margin: 0;\n padding: 0;\n }\n\n ::file-selector-button {\n box-sizing: border-box;\n border: 0 solid;\n margin: 0;\n padding: 0;\n }\n\n html, :host {\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n line-height: 1.5;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n\n abbr:where([title]) {\n text-decoration: underline dotted;\n }\n\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n -webkit-text-decoration: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n\n b, strong {\n font-weight: bolder;\n }\n\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n\n small {\n font-size: 80%;\n }\n\n sub, sup {\n vertical-align: baseline;\n font-size: 75%;\n line-height: 0;\n position: relative;\n }\n\n sub {\n bottom: -.25em;\n }\n\n sup {\n top: -.5em;\n }\n\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n\n :-moz-focusring {\n outline: auto;\n }\n\n progress {\n vertical-align: baseline;\n }\n\n summary {\n display: list-item;\n }\n\n ol, ul, menu {\n list-style: none;\n }\n\n img, svg, video, canvas, audio, iframe, embed, object {\n vertical-align: middle;\n display: block;\n }\n\n img, video {\n max-width: 100%;\n height: auto;\n }\n\n button, input, select, optgroup, textarea {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n opacity: 1;\n background-color: #0000;\n border-radius: 0;\n }\n\n ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n opacity: 1;\n background-color: #0000;\n border-radius: 0;\n }\n\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n\n ::placeholder {\n opacity: 1;\n }\n\n @supports (not ((-webkit-appearance: -apple-pay-button))) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentColor;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n ::placeholder {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n\n textarea {\n resize: vertical;\n }\n\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n\n ::-webkit-datetime-edit {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-year-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-month-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-day-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-hour-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-minute-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-second-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-millisecond-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n\n :-moz-ui-invalid {\n box-shadow: none;\n }\n\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]) {\n appearance: button;\n }\n\n ::file-selector-button {\n appearance: button;\n }\n\n ::-webkit-inner-spin-button {\n height: auto;\n }\n\n ::-webkit-outer-spin-button {\n height: auto;\n }\n\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n\n button:not(:disabled), [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n}\n\n@layer components;\n\n@layer utilities {\n .pointer-events-auto {\n pointer-events: auto;\n }\n\n .pointer-events-none {\n pointer-events: none;\n }\n\n .invisible {\n visibility: hidden;\n }\n\n .visible {\n visibility: visible;\n }\n\n .sr-only {\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n position: absolute;\n overflow: hidden;\n }\n\n .absolute {\n position: absolute;\n }\n\n .fixed {\n position: fixed;\n }\n\n .relative {\n position: relative;\n }\n\n .static {\n position: static;\n }\n\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n\n .inset-x-0 {\n inset-inline: calc(var(--spacing) * 0);\n }\n\n .inset-y-0 {\n inset-block: calc(var(--spacing) * 0);\n }\n\n .-top-12 {\n top: calc(var(--spacing) * -12);\n }\n\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n\n .top-1\\/2 {\n top: 50%;\n }\n\n .top-2 {\n top: calc(var(--spacing) * 2);\n }\n\n .top-6 {\n top: calc(var(--spacing) * 6);\n }\n\n .top-8 {\n top: calc(var(--spacing) * 8);\n }\n\n .top-\\[50\\%\\] {\n top: 50%;\n }\n\n .top-auto {\n top: auto;\n }\n\n .-right-12 {\n right: calc(var(--spacing) * -12);\n }\n\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n\n .right-1 {\n right: calc(var(--spacing) * 1);\n }\n\n .right-6 {\n right: calc(var(--spacing) * 6);\n }\n\n .-bottom-12 {\n bottom: calc(var(--spacing) * -12);\n }\n\n .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n }\n\n .bottom-\\[-15px\\] {\n bottom: -15px;\n }\n\n .bottom-\\[1px\\] {\n bottom: 1px;\n }\n\n .-left-12 {\n left: calc(var(--spacing) * -12);\n }\n\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n\n .left-1 {\n left: calc(var(--spacing) * 1);\n }\n\n .left-1\\/2, .left-\\[50\\%\\] {\n left: 50%;\n }\n\n .z-10 {\n z-index: 10;\n }\n\n .z-16 {\n z-index: 16;\n }\n\n .z-20 {\n z-index: 20;\n }\n\n .z-30 {\n z-index: 30;\n }\n\n .z-50 {\n z-index: 50;\n }\n\n .z-100 {\n z-index: 100;\n }\n\n .z-150 {\n z-index: 150;\n }\n\n .z-\\[15\\] {\n z-index: 15;\n }\n\n .z-\\[21\\] {\n z-index: 21;\n }\n\n .container {\n width: 100%;\n }\n\n @media (width >= 40rem) {\n .container {\n max-width: 40rem;\n }\n }\n\n @media (width >= 48rem) {\n .container {\n max-width: 48rem;\n }\n }\n\n @media (width >= 64rem) {\n .container {\n max-width: 64rem;\n }\n }\n\n @media (width >= 80rem) {\n .container {\n max-width: 80rem;\n }\n }\n\n @media (width >= 96rem) {\n .container {\n max-width: 96rem;\n }\n }\n\n .m-auto {\n margin: auto;\n }\n\n .-mx-1 {\n margin-inline: calc(var(--spacing) * -1);\n }\n\n .mx-1 {\n margin-inline: calc(var(--spacing) * 1);\n }\n\n .mx-auto {\n margin-inline: auto;\n }\n\n .my-1 {\n margin-block: calc(var(--spacing) * 1);\n }\n\n .-mt-4 {\n margin-top: calc(var(--spacing) * -4);\n }\n\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n\n .mt-\\[14px\\] {\n margin-top: 14px;\n }\n\n .mt-auto {\n margin-top: auto;\n }\n\n .-mr-2 {\n margin-right: calc(var(--spacing) * -2);\n }\n\n .mr-2\\.5 {\n margin-right: calc(var(--spacing) * 2.5);\n }\n\n .mr-7 {\n margin-right: calc(var(--spacing) * 7);\n }\n\n .mr-9 {\n margin-right: calc(var(--spacing) * 9);\n }\n\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n\n .-ml-4 {\n margin-left: calc(var(--spacing) * -4);\n }\n\n .ml-1 {\n margin-left: calc(var(--spacing) * 1);\n }\n\n .box-border {\n box-sizing: border-box;\n }\n\n .block {\n display: block;\n }\n\n .contents {\n display: contents;\n }\n\n .flex {\n display: flex;\n }\n\n .grid {\n display: grid;\n }\n\n .hidden {\n display: none;\n }\n\n .inline-block {\n display: inline-block;\n }\n\n .inline-flex {\n display: inline-flex;\n }\n\n .table {\n display: table;\n }\n\n .aspect-square {\n aspect-ratio: 1;\n }\n\n .h-1\\.5 {\n height: calc(var(--spacing) * 1.5);\n }\n\n .h-1\\/2 {\n height: 50%;\n }\n\n .h-1\\/3 {\n height: 33.3333%;\n }\n\n .h-2 {\n height: calc(var(--spacing) * 2);\n }\n\n .h-3 {\n height: calc(var(--spacing) * 3);\n }\n\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n\n .h-9 {\n height: calc(var(--spacing) * 9);\n }\n\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n\n .h-12 {\n height: calc(var(--spacing) * 12);\n }\n\n .h-14 {\n height: calc(var(--spacing) * 14);\n }\n\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n\n .h-\\[1px\\] {\n height: 1px;\n }\n\n .h-\\[8px\\] {\n height: 8px;\n }\n\n .h-\\[16px\\] {\n height: 16px;\n }\n\n .h-\\[24px\\] {\n height: 24px;\n }\n\n .h-\\[36px\\] {\n height: 36px;\n }\n\n .h-\\[45px\\] {\n height: 45px;\n }\n\n .h-\\[52px\\] {\n height: 52px;\n }\n\n .h-\\[54px\\] {\n height: 54px;\n }\n\n .h-\\[56px\\] {\n height: 56px;\n }\n\n .h-\\[70px\\] {\n height: 70px;\n }\n\n .h-\\[72px\\] {\n height: 72px;\n }\n\n .h-\\[163px\\] {\n height: 163px;\n }\n\n .h-\\[184px\\] {\n height: 184px;\n }\n\n .h-\\[200px\\] {\n height: 200px;\n }\n\n .h-\\[250px\\] {\n height: 250px;\n }\n\n .h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n }\n\n .h-auto {\n height: auto;\n }\n\n .h-auto\\! {\n height: auto !important;\n }\n\n .h-dvh {\n height: 100dvh;\n }\n\n .h-full {\n height: 100%;\n }\n\n .h-px {\n height: 1px;\n }\n\n .max-h-\\[70px\\] {\n max-height: 70px;\n }\n\n .max-h-\\[90dvh\\] {\n max-height: 90dvh;\n }\n\n .max-h-\\[90vh\\] {\n max-height: 90vh;\n }\n\n .max-h-\\[180px\\] {\n max-height: 180px;\n }\n\n .max-h-\\[300px\\] {\n max-height: 300px;\n }\n\n .max-h-full {\n max-height: 100%;\n }\n\n .max-h-screen {\n max-height: 100vh;\n }\n\n .min-h-0 {\n min-height: calc(var(--spacing) * 0);\n }\n\n .min-h-9 {\n min-height: calc(var(--spacing) * 9);\n }\n\n .min-h-\\[80px\\] {\n min-height: 80px;\n }\n\n .w-1\\/3 {\n width: 33.3333%;\n }\n\n .w-1\\/4 {\n width: 25%;\n }\n\n .w-2 {\n width: calc(var(--spacing) * 2);\n }\n\n .w-3 {\n width: calc(var(--spacing) * 3);\n }\n\n .w-3\\/4 {\n width: 75%;\n }\n\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n\n .w-4\\/5 {\n width: 80%;\n }\n\n .w-8 {\n width: calc(var(--spacing) * 8);\n }\n\n .w-10 {\n width: calc(var(--spacing) * 10);\n }\n\n .w-12 {\n width: calc(var(--spacing) * 12);\n }\n\n .w-14 {\n width: calc(var(--spacing) * 14);\n }\n\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n\n .w-72 {\n width: calc(var(--spacing) * 72);\n }\n\n .w-\\[1px\\] {\n width: 1px;\n }\n\n .w-\\[8px\\] {\n width: 8px;\n }\n\n .w-\\[16px\\] {\n width: 16px;\n }\n\n .w-\\[24px\\] {\n width: 24px;\n }\n\n .w-\\[36px\\] {\n width: 36px;\n }\n\n .w-\\[42px\\] {\n width: 42px;\n }\n\n .w-\\[45px\\] {\n width: 45px;\n }\n\n .w-\\[54px\\] {\n width: 54px;\n }\n\n .w-\\[56px\\] {\n width: 56px;\n }\n\n .w-\\[70px\\] {\n width: 70px;\n }\n\n .w-\\[72px\\] {\n width: 72px;\n }\n\n .w-\\[232px\\] {\n width: 232px;\n }\n\n .w-\\[240px\\] {\n width: 240px;\n }\n\n .w-\\[250px\\] {\n width: 250px;\n }\n\n .w-auto {\n width: auto;\n }\n\n .w-dvh {\n width: 100dvh;\n }\n\n .w-fit {\n width: fit-content;\n }\n\n .w-full {\n width: 100%;\n }\n\n .w-max {\n width: max-content;\n }\n\n .max-w-\\[70px\\] {\n max-width: 70px;\n }\n\n .max-w-\\[90vw\\] {\n max-width: 90vw;\n }\n\n .max-w-\\[400px\\] {\n max-width: 400px;\n }\n\n .max-w-\\[416px\\] {\n max-width: 416px;\n }\n\n .max-w-\\[500px\\] {\n max-width: 500px;\n }\n\n .max-w-full {\n max-width: 100%;\n }\n\n .min-w-0 {\n min-width: calc(var(--spacing) * 0);\n }\n\n .min-w-\\[144px\\] {\n min-width: 144px;\n }\n\n .min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n }\n\n .flex-1 {\n flex: 1;\n }\n\n .shrink-0 {\n flex-shrink: 0;\n }\n\n .grow {\n flex-grow: 1;\n }\n\n .grow-0 {\n flex-grow: 0;\n }\n\n .basis-full {\n flex-basis: 100%;\n }\n\n .caption-bottom {\n caption-side: bottom;\n }\n\n .border-collapse {\n border-collapse: collapse;\n }\n\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .translate-x-0\\.5 {\n --tw-translate-x: calc(var(--spacing) * .5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .translate-x-\\[-50\\%\\] {\n --tw-translate-x: -50%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .translate-y-0 {\n --tw-translate-y: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .translate-y-\\[-50\\%\\] {\n --tw-translate-y: -50%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .scale-x-\\[-1\\] {\n --tw-scale-x: -1;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n\n .transform {\n transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, );\n }\n\n .animate-\\[flash_0\\.8s_forwards\\] {\n animation: .8s forwards flash;\n }\n\n .animate-flash {\n animation: var(--animate-flash);\n }\n\n .animate-pulse {\n animation: var(--animate-pulse);\n }\n\n .animate-spin {\n animation: var(--animate-spin);\n }\n\n .cursor-default {\n cursor: default;\n }\n\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n\n .cursor-pointer {\n cursor: pointer;\n }\n\n .list-outside {\n list-style-position: outside;\n }\n\n .list-disc {\n list-style-type: disc;\n }\n\n .appearance-none {\n appearance: none;\n }\n\n .flex-col {\n flex-direction: column;\n }\n\n .flex-col-reverse {\n flex-direction: column-reverse;\n }\n\n .flex-row {\n flex-direction: row;\n }\n\n .flex-row-reverse {\n flex-direction: row-reverse;\n }\n\n .flex-wrap {\n flex-wrap: wrap;\n }\n\n .content-center {\n align-content: center;\n }\n\n .items-center {\n align-items: center;\n }\n\n .items-start {\n align-items: flex-start;\n }\n\n .justify-between {\n justify-content: space-between;\n }\n\n .justify-center {\n justify-content: center;\n }\n\n .justify-end {\n justify-content: flex-end;\n }\n\n .justify-start {\n justify-content: flex-start;\n }\n\n .gap-0\\.5 {\n gap: calc(var(--spacing) * .5);\n }\n\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n\n .gap-2\\.5 {\n gap: calc(var(--spacing) * 2.5);\n }\n\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n\n .gap-6 {\n gap: calc(var(--spacing) * 6);\n }\n\n .gap-8 {\n gap: calc(var(--spacing) * 8);\n }\n\n .gap-12 {\n gap: calc(var(--spacing) * 12);\n }\n\n .gap-\\[15px\\] {\n gap: 15px;\n }\n\n .gap-\\[inherit\\] {\n gap: inherit;\n }\n\n :where(.space-y-1 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n :where(.space-y-1\\.5 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n :where(.space-y-4 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n :where(.space-y-5 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n :where(.space-y-6 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n :where(.space-x-1 > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 1) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-x-reverse)));\n }\n\n :where(.divide-x > :not(:last-child)) {\n --tw-divide-x-reverse: 0;\n border-inline-style: var(--tw-border-style);\n border-inline-start-width: calc(1px * var(--tw-divide-x-reverse));\n border-inline-end-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));\n }\n\n :where(.divide-y > :not(:last-child)) {\n --tw-divide-y-reverse: 0;\n border-bottom-style: var(--tw-border-style);\n border-top-style: var(--tw-border-style);\n border-top-width: calc(1px * var(--tw-divide-y-reverse));\n border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n }\n\n :where(.divide-gray-200 > :not(:last-child)) {\n border-color: var(--color-gray-200);\n }\n\n .self-center {\n align-self: center;\n }\n\n .self-end {\n align-self: flex-end;\n }\n\n .self-start {\n align-self: flex-start;\n }\n\n .justify-self-center {\n justify-self: center;\n }\n\n .truncate {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n }\n\n .overflow-auto {\n overflow: auto;\n }\n\n .overflow-hidden {\n overflow: hidden;\n }\n\n .overflow-scroll {\n overflow: scroll;\n }\n\n .overflow-visible {\n overflow: visible;\n }\n\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n\n .overflow-y-auto {\n overflow-y: auto;\n }\n\n .overflow-y-scroll {\n overflow-y: scroll;\n }\n\n .overscroll-y-none {\n overscroll-behavior-y: none;\n }\n\n .rounded-2xl {\n border-radius: var(--radius-2xl);\n }\n\n .rounded-3xl {\n border-radius: var(--radius-3xl);\n }\n\n .rounded-\\[3px\\] {\n border-radius: 3px;\n }\n\n .rounded-\\[4px\\] {\n border-radius: 4px;\n }\n\n .rounded-\\[6px\\] {\n border-radius: 6px;\n }\n\n .rounded-\\[8px\\] {\n border-radius: 8px;\n }\n\n .rounded-\\[10px\\] {\n border-radius: 10px;\n }\n\n .rounded-\\[14px\\] {\n border-radius: 14px;\n }\n\n .rounded-\\[inherit\\] {\n border-radius: inherit;\n }\n\n .rounded-full {\n border-radius: 3.40282e38px;\n }\n\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n\n .rounded-md {\n border-radius: var(--radius-md);\n }\n\n .rounded-none {\n border-radius: 0;\n }\n\n .rounded-sm {\n border-radius: var(--radius-sm);\n }\n\n .rounded-xl {\n border-radius: var(--radius-xl);\n }\n\n .rounded-t-3xl {\n border-top-left-radius: var(--radius-3xl);\n border-top-right-radius: var(--radius-3xl);\n }\n\n .rounded-b-3xl {\n border-bottom-right-radius: var(--radius-3xl);\n border-bottom-left-radius: var(--radius-3xl);\n }\n\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n\n .border-none {\n --tw-border-style: none;\n border-style: none;\n }\n\n .border-amber-700 {\n border-color: var(--color-amber-700);\n }\n\n .border-black\\/10 {\n border-color: var(--color-black);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .border-black\\/10 {\n border-color: color-mix(in oklab, var(--color-black) 10%, transparent);\n }\n }\n\n .border-blue-700 {\n border-color: var(--color-blue-700);\n }\n\n .border-gray-100 {\n border-color: var(--color-gray-100);\n }\n\n .border-gray-200 {\n border-color: var(--color-gray-200);\n }\n\n .border-gray-300 {\n border-color: var(--color-gray-300);\n }\n\n .border-gray-400 {\n border-color: var(--color-gray-400);\n }\n\n .border-gray-600 {\n border-color: var(--color-gray-600);\n }\n\n .border-red-700 {\n border-color: var(--color-red-700);\n }\n\n .border-transparent {\n border-color: #0000;\n }\n\n .border-white\\/10 {\n border-color: var(--color-white);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .border-white\\/10 {\n border-color: color-mix(in oklab, var(--color-white) 10%, transparent);\n }\n }\n\n .bg-amber-100 {\n background-color: var(--color-amber-100);\n }\n\n .bg-amber-200 {\n background-color: var(--color-amber-200);\n }\n\n .bg-amber-700 {\n background-color: var(--color-amber-700);\n }\n\n .bg-black, .bg-black\\/25 {\n background-color: var(--color-black);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-black\\/25 {\n background-color: color-mix(in oklab, var(--color-black) 25%, transparent);\n }\n }\n\n .bg-black\\/50 {\n background-color: var(--color-black);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-black\\/50 {\n background-color: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n }\n\n .bg-black\\/80 {\n background-color: var(--color-black);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-black\\/80 {\n background-color: color-mix(in oklab, var(--color-black) 80%, transparent);\n }\n }\n\n .bg-blue-100 {\n background-color: var(--color-blue-100);\n }\n\n .bg-blue-300 {\n background-color: var(--color-blue-300);\n }\n\n .bg-blue-700 {\n background-color: var(--color-blue-700);\n }\n\n .bg-bronze-300 {\n background-color: var(--color-bronze-300);\n }\n\n .bg-brown-100 {\n background-color: var(--color-brown-100);\n }\n\n .bg-brown-300 {\n background-color: var(--color-brown-300);\n }\n\n .bg-brown-700 {\n background-color: var(--color-brown-700);\n }\n\n .bg-crimson-100 {\n background-color: var(--color-crimson-100);\n }\n\n .bg-crimson-300 {\n background-color: var(--color-crimson-300);\n }\n\n .bg-crimson-700 {\n background-color: var(--color-crimson-700);\n }\n\n .bg-cyan-100 {\n background-color: var(--color-cyan-100);\n }\n\n .bg-cyan-300 {\n background-color: var(--color-cyan-300);\n }\n\n .bg-cyan-700 {\n background-color: var(--color-cyan-700);\n }\n\n .bg-gold-300 {\n background-color: var(--color-gold-300);\n }\n\n .bg-grass-300 {\n background-color: var(--color-grass-300);\n }\n\n .bg-gray-25, .bg-gray-25\\/50 {\n background-color: var(--color-gray-25);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-gray-25\\/50 {\n background-color: color-mix(in oklab, var(--color-gray-25) 50%, transparent);\n }\n }\n\n .bg-gray-50 {\n background-color: var(--color-gray-50);\n }\n\n .bg-gray-100, .bg-gray-100\\/50 {\n background-color: var(--color-gray-100);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-gray-100\\/50 {\n background-color: color-mix(in oklab, var(--color-gray-100) 50%, transparent);\n }\n }\n\n .bg-gray-200 {\n background-color: var(--color-gray-200);\n }\n\n .bg-gray-300 {\n background-color: var(--color-gray-300);\n }\n\n .bg-gray-600 {\n background-color: var(--color-gray-600);\n }\n\n .bg-gray-800\\/60 {\n background-color: var(--color-gray-800);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-gray-800\\/60 {\n background-color: color-mix(in oklab, var(--color-gray-800) 60%, transparent);\n }\n }\n\n .bg-gray-900 {\n background-color: var(--color-gray-900);\n }\n\n .bg-green-100 {\n background-color: var(--color-green-100);\n }\n\n .bg-green-300 {\n background-color: var(--color-green-300);\n }\n\n .bg-green-700 {\n background-color: var(--color-green-700);\n }\n\n .bg-indigo-300 {\n background-color: var(--color-indigo-300);\n }\n\n .bg-inherit {\n background-color: inherit;\n }\n\n .bg-lime-300 {\n background-color: var(--color-lime-300);\n }\n\n .bg-orange-100 {\n background-color: var(--color-orange-100);\n }\n\n .bg-orange-700 {\n background-color: var(--color-orange-700);\n }\n\n .bg-plum-300 {\n background-color: var(--color-plum-300);\n }\n\n .bg-purple-300 {\n background-color: var(--color-purple-300);\n }\n\n .bg-red-100 {\n background-color: var(--color-red-100);\n }\n\n .bg-red-300 {\n background-color: var(--color-red-300);\n }\n\n .bg-red-700, .bg-red-700\\/60 {\n background-color: var(--color-red-700);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-red-700\\/60 {\n background-color: color-mix(in oklab, var(--color-red-700) 60%, transparent);\n }\n }\n\n .bg-teal-100 {\n background-color: var(--color-teal-100);\n }\n\n .bg-teal-300 {\n background-color: var(--color-teal-300);\n }\n\n .bg-teal-700 {\n background-color: var(--color-teal-700);\n }\n\n .bg-transparent {\n background-color: #0000;\n }\n\n .bg-violet-100 {\n background-color: var(--color-violet-100);\n }\n\n .bg-violet-300 {\n background-color: var(--color-violet-300);\n }\n\n .bg-violet-700 {\n background-color: var(--color-violet-700);\n }\n\n .bg-white, .bg-white\\/60 {\n background-color: var(--color-white);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-white\\/60 {\n background-color: color-mix(in oklab, var(--color-white) 60%, transparent);\n }\n }\n\n .bg-yellow-300 {\n background-color: var(--color-yellow-300);\n }\n\n .bg-cover {\n background-size: cover;\n }\n\n .bg-no-repeat {\n background-repeat: no-repeat;\n }\n\n .fill-\\[inherit\\] {\n fill: inherit;\n }\n\n .fill-gray-400 {\n fill: var(--color-gray-400);\n }\n\n .fill-white {\n fill: var(--color-white);\n }\n\n .object-contain {\n object-fit: contain;\n }\n\n .object-cover {\n object-fit: cover;\n }\n\n .p-0 {\n padding: calc(var(--spacing) * 0);\n }\n\n .p-1 {\n padding: calc(var(--spacing) * 1);\n }\n\n .p-1\\.5 {\n padding: calc(var(--spacing) * 1.5);\n }\n\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n\n .p-2\\.5 {\n padding: calc(var(--spacing) * 2.5);\n }\n\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n\n .p-5 {\n padding: calc(var(--spacing) * 5);\n }\n\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n\n .p-8 {\n padding: calc(var(--spacing) * 8);\n }\n\n .p-\\[11px\\] {\n padding: 11px;\n }\n\n .px-1 {\n padding-inline: calc(var(--spacing) * 1);\n }\n\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n\n .px-2\\.5 {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n\n .px-3\\.5 {\n padding-inline: calc(var(--spacing) * 3.5);\n }\n\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n\n .py-0\\.5 {\n padding-block: calc(var(--spacing) * .5);\n }\n\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n\n .py-2\\.5 {\n padding-block: calc(var(--spacing) * 2.5);\n }\n\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n\n .py-12 {\n padding-block: calc(var(--spacing) * 12);\n }\n\n .pt-1 {\n padding-top: calc(var(--spacing) * 1);\n }\n\n .pt-2 {\n padding-top: calc(var(--spacing) * 2);\n }\n\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n\n .pr-1 {\n padding-right: calc(var(--spacing) * 1);\n }\n\n .pr-2 {\n padding-right: calc(var(--spacing) * 2);\n }\n\n .pr-2\\.5 {\n padding-right: calc(var(--spacing) * 2.5);\n }\n\n .pr-3\\.5 {\n padding-right: calc(var(--spacing) * 3.5);\n }\n\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n\n .pb-2\\.5 {\n padding-bottom: calc(var(--spacing) * 2.5);\n }\n\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n\n .pl-3 {\n padding-left: calc(var(--spacing) * 3);\n }\n\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n\n .pl-6 {\n padding-left: calc(var(--spacing) * 6);\n }\n\n .text-center {\n text-align: center;\n }\n\n .text-left {\n text-align: left;\n }\n\n .align-middle {\n vertical-align: middle;\n }\n\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n letter-spacing: var(--tw-tracking, var(--text-2xl--letter-spacing));\n }\n\n .text-4xl {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n letter-spacing: var(--tw-tracking, var(--text-4xl--letter-spacing));\n }\n\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n letter-spacing: var(--tw-tracking, var(--text-lg--letter-spacing));\n }\n\n .text-md {\n font-size: var(--text-md);\n line-height: var(--tw-leading, var(--text-md--line-height));\n letter-spacing: var(--tw-tracking, var(--text-md--letter-spacing));\n }\n\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n letter-spacing: var(--tw-tracking, var(--text-sm--letter-spacing));\n }\n\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n letter-spacing: var(--tw-tracking, var(--text-xl--letter-spacing));\n }\n\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n letter-spacing: var(--tw-tracking, var(--text-xs--letter-spacing));\n }\n\n .text-\\[10px\\] {\n font-size: 10px;\n }\n\n .text-\\[30px\\] {\n font-size: 30px;\n }\n\n .text-\\[96px\\] {\n font-size: 96px;\n }\n\n .leading-4 {\n --tw-leading: calc(var(--spacing) * 4);\n line-height: calc(var(--spacing) * 4);\n }\n\n .leading-\\[15px\\] {\n --tw-leading: 15px;\n line-height: 15px;\n }\n\n .leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n\n .font-light {\n --tw-font-weight: var(--font-weight-light);\n font-weight: var(--font-weight-light);\n }\n\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n\n .font-normal {\n --tw-font-weight: var(--font-weight-normal);\n font-weight: var(--font-weight-normal);\n }\n\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n\n .break-words {\n overflow-wrap: break-word;\n }\n\n .wrap-anywhere {\n overflow-wrap: anywhere;\n }\n\n .whitespace-normal {\n white-space: normal;\n }\n\n .whitespace-nowrap {\n white-space: nowrap;\n }\n\n .whitespace-pre-line {\n white-space: pre-line;\n }\n\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n\n .text-\\[inherit\\] {\n color: inherit;\n }\n\n .text-amber-700 {\n color: var(--color-amber-700);\n }\n\n .text-black, .text-black\\/50 {\n color: var(--color-black);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .text-black\\/50 {\n color: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n }\n\n .text-blue-700 {\n color: var(--color-blue-700);\n }\n\n .text-bronze-700 {\n color: var(--color-bronze-700);\n }\n\n .text-brown-700 {\n color: var(--color-brown-700);\n }\n\n .text-crimson-700 {\n color: var(--color-crimson-700);\n }\n\n .text-current {\n color: currentColor;\n }\n\n .text-cyan-700 {\n color: var(--color-cyan-700);\n }\n\n .text-gold-700 {\n color: var(--color-gold-700);\n }\n\n .text-grass-700 {\n color: var(--color-grass-700);\n }\n\n .text-gray-200 {\n color: var(--color-gray-200);\n }\n\n .text-gray-400 {\n color: var(--color-gray-400);\n }\n\n .text-gray-700 {\n color: var(--color-gray-700);\n }\n\n .text-gray-900 {\n color: var(--color-gray-900);\n }\n\n .text-gray-1000 {\n color: var(--color-gray-1000);\n }\n\n .text-green-700 {\n color: var(--color-green-700);\n }\n\n .text-indigo-700 {\n color: var(--color-indigo-700);\n }\n\n .text-inherit {\n color: inherit;\n }\n\n .text-lime-700 {\n color: var(--color-lime-700);\n }\n\n .text-orange-700 {\n color: var(--color-orange-700);\n }\n\n .text-plum-700 {\n color: var(--color-plum-700);\n }\n\n .text-purple-700 {\n color: var(--color-purple-700);\n }\n\n .text-red-600 {\n color: var(--color-red-600);\n }\n\n .text-red-700 {\n color: var(--color-red-700);\n }\n\n .text-teal-700 {\n color: var(--color-teal-700);\n }\n\n .text-violet-700 {\n color: var(--color-violet-700);\n }\n\n .text-white {\n color: var(--color-white);\n }\n\n .text-yellow-700 {\n color: var(--color-yellow-700);\n }\n\n .underline {\n text-decoration-line: underline;\n }\n\n .antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n\n .opacity-40 {\n opacity: .4;\n }\n\n .opacity-50 {\n opacity: .5;\n }\n\n .opacity-60 {\n opacity: .6;\n }\n\n .shadow-dropdown-sm {\n --tw-shadow: 0px 1px 2px 0px var(--tw-shadow-color, #1018280f), 0px 1px 3px 0px var(--tw-shadow-color, #1018281a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-md {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, #0000001a), 0 2px 4px -2px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-xs {\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, #0000000d);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .ring-1 {\n --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .ring-2 {\n --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .ring-\\[3px\\] {\n --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .ring-amber-300 {\n --tw-ring-color: var(--color-amber-300);\n }\n\n .ring-amber-700 {\n --tw-ring-color: var(--color-amber-700);\n }\n\n .ring-black {\n --tw-ring-color: var(--color-black);\n }\n\n .ring-blue-300 {\n --tw-ring-color: var(--color-blue-300);\n }\n\n .ring-blue-700 {\n --tw-ring-color: var(--color-blue-700);\n }\n\n .ring-brown-300 {\n --tw-ring-color: var(--color-brown-300);\n }\n\n .ring-crimson-300 {\n --tw-ring-color: var(--color-crimson-300);\n }\n\n .ring-cyan-300 {\n --tw-ring-color: var(--color-cyan-300);\n }\n\n .ring-gray-100 {\n --tw-ring-color: var(--color-gray-100);\n }\n\n .ring-gray-200 {\n --tw-ring-color: var(--color-gray-200);\n }\n\n .ring-gray-400 {\n --tw-ring-color: var(--color-gray-400);\n }\n\n .ring-green-300 {\n --tw-ring-color: var(--color-green-300);\n }\n\n .ring-green-700 {\n --tw-ring-color: var(--color-green-700);\n }\n\n .ring-orange-300 {\n --tw-ring-color: var(--color-orange-300);\n }\n\n .ring-red-300 {\n --tw-ring-color: var(--color-red-300);\n }\n\n .ring-red-700 {\n --tw-ring-color: var(--color-red-700);\n }\n\n .ring-teal-300 {\n --tw-ring-color: var(--color-teal-300);\n }\n\n .ring-violet-300 {\n --tw-ring-color: var(--color-violet-300);\n }\n\n .ring-offset-0 {\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-shadow: var(--tw-ring-inset, ) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n\n .ring-offset-white {\n --tw-ring-offset-color: var(--color-white);\n }\n\n .outline-hidden {\n --tw-outline-style: none;\n outline-style: none;\n }\n\n @media (forced-colors: active) {\n .outline-hidden {\n outline-offset: 2px;\n outline: 2px solid #0000;\n }\n }\n\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n\n .blur {\n --tw-blur: blur(8px);\n 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, );\n }\n\n .filter {\n 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, );\n }\n\n .backdrop-blur-\\[20px\\] {\n --tw-backdrop-blur: blur(20px);\n 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, );\n }\n\n .backdrop-blur-\\[180px\\] {\n --tw-backdrop-blur: blur(180px);\n 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, );\n }\n\n .backdrop-blur-lg {\n --tw-backdrop-blur: blur(var(--blur-lg));\n 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, );\n }\n\n .backdrop-blur-xs {\n --tw-backdrop-blur: blur(var(--blur-xs));\n 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, );\n }\n\n .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .duration-200 {\n --tw-duration: .2s;\n transition-duration: .2s;\n }\n\n .duration-300 {\n --tw-duration: .3s;\n transition-duration: .3s;\n }\n\n .duration-500 {\n --tw-duration: .5s;\n transition-duration: .5s;\n }\n\n .duration-700 {\n --tw-duration: .7s;\n transition-duration: .7s;\n }\n\n .ease-\\[cubic-bezier\\(0\\.075\\,0\\.82\\,0\\.165\\,1\\)\\] {\n --tw-ease: cubic-bezier(.075, .82, .165, 1);\n transition-timing-function: cubic-bezier(.075, .82, .165, 1);\n }\n\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n\n .ease-linear {\n --tw-ease: linear;\n transition-timing-function: linear;\n }\n\n .will-change-transform {\n will-change: transform;\n }\n\n .animate-in {\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n animation-name: enter;\n animation-duration: .15s;\n }\n\n .select-none {\n user-select: none;\n }\n\n .duration-200 {\n animation-duration: .2s;\n }\n\n .duration-300 {\n animation-duration: .3s;\n }\n\n .duration-500 {\n animation-duration: .5s;\n }\n\n .duration-700 {\n animation-duration: .7s;\n }\n\n .ease-\\[cubic-bezier\\(0\\.075\\,0\\.82\\,0\\.165\\,1\\)\\] {\n animation-timing-function: cubic-bezier(.075, .82, .165, 1);\n }\n\n .ease-in-out {\n animation-timing-function: cubic-bezier(.4, 0, .2, 1);\n }\n\n .ease-linear {\n animation-timing-function: linear;\n }\n\n .fade-in-0 {\n --tw-enter-opacity: 0;\n }\n\n .paused {\n animation-play-state: paused;\n }\n\n .ring-inset {\n --tw-ring-inset: inset;\n }\n\n .running {\n animation-play-state: running;\n }\n\n .zoom-in-95 {\n --tw-enter-scale: .95;\n }\n\n :is(.\\*\\:h-full > *) {\n height: 100%;\n }\n\n :is(.\\*\\:w-full > *) {\n width: 100%;\n }\n\n :is(.\\*\\:rounded-\\[14px\\] > *) {\n border-radius: 14px;\n }\n\n :is(.\\*\\:bg-blue-700 > *) {\n background-color: var(--color-blue-700);\n }\n\n :is(.\\*\\:fill-black > *) {\n fill: var(--color-black);\n }\n\n :is(.\\*\\:text-gray-700 > *) {\n color: var(--color-gray-700);\n }\n\n :is(.\\*\\:text-white > *) {\n color: var(--color-white);\n }\n\n :is(.\\*\\:opacity-100 > *) {\n opacity: 1;\n }\n\n :is(.\\*\\*\\:items-center *) {\n align-items: center;\n }\n\n :is(.\\*\\*\\:rounded-lg *) {\n border-radius: var(--radius-lg);\n }\n\n .group-focus-within\\:bg-gray-100:is(:where(.group):focus-within *) {\n background-color: var(--color-gray-100);\n }\n\n .group-focus-within\\/mediacard\\:visible:is(:where(.group\\/mediacard):focus-within *) {\n visibility: visible;\n }\n\n @media (hover: hover) {\n .group-hover\\:visible:is(:where(.group):hover *) {\n visibility: visible;\n }\n\n .group-hover\\:flex:is(:where(.group):hover *) {\n display: flex;\n }\n\n .group-hover\\:bg-gray-50:is(:where(.group):hover *) {\n background-color: var(--color-gray-50);\n }\n\n .group-hover\\/mediacard\\:visible:is(:where(.group\\/mediacard):hover *) {\n visibility: visible;\n }\n }\n\n .group-active\\:bg-gray-100:is(:where(.group):active *) {\n background-color: var(--color-gray-100);\n }\n\n .group-data-disabled\\:cursor-not-allowed:is(:where(.group)[data-disabled] *) {\n cursor: not-allowed;\n }\n\n .group-data-disabled\\:opacity-50:is(:where(.group)[data-disabled] *) {\n opacity: .5;\n }\n\n .group-data-\\[state\\=checked\\]\\:bg-gray-50:is(:where(.group)[data-state=\"checked\"] *) {\n background-color: var(--color-gray-50);\n }\n\n .group-data-\\[state\\=off\\]\\:bg-transparent:is(:where(.group)[data-state=\"off\"] *) {\n background-color: #0000;\n }\n\n .group-data-\\[state\\=off\\]\\:text-transparent:is(:where(.group)[data-state=\"off\"] *) {\n color: #0000;\n }\n\n .group-data-\\[state\\=on\\]\\:border-blue-700:is(:where(.group)[data-state=\"on\"] *) {\n border-color: var(--color-blue-700);\n }\n\n .group-data-\\[state\\=open\\]\\:rotate-180:is(:where(.group)[data-state=\"open\"] *) {\n rotate: 180deg;\n }\n\n @media (hover: hover) {\n .peer-hover\\:fill-amber-700:is(:where(.peer):hover ~ *) {\n fill: var(--color-amber-700);\n }\n\n .peer-hover\\:text-amber-700:is(:where(.peer):hover ~ *) {\n color: var(--color-amber-700);\n }\n }\n\n .peer-disabled\\:cursor-not-allowed:is(:where(.peer):disabled ~ *) {\n cursor: not-allowed;\n }\n\n .peer-disabled\\:opacity-70:is(:where(.peer):disabled ~ *) {\n opacity: .7;\n }\n\n .placeholder\\:text-gray-700::placeholder {\n color: var(--color-gray-700);\n }\n\n .placeholder\\:text-gray-900::placeholder {\n color: var(--color-gray-900);\n }\n\n .last\\:pb-0:last-child {\n padding-bottom: calc(var(--spacing) * 0);\n }\n\n .focus-within\\:relative:focus-within {\n position: relative;\n }\n\n .focus-within\\:z-20:focus-within {\n z-index: 20;\n }\n\n .focus-within\\:border-gray-200:focus-within {\n border-color: var(--color-gray-200);\n }\n\n .focus-within\\:bg-gray-100:focus-within {\n background-color: var(--color-gray-100);\n }\n\n .focus-within\\:outline:focus-within {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n\n .focus-within\\:outline-\\[2px\\]:focus-within {\n outline-style: var(--tw-outline-style);\n outline-width: 2px;\n }\n\n .focus-within\\:outline-offset-\\[2px\\]:focus-within {\n outline-offset: 2px;\n }\n\n .focus-within\\:outline-blue-300:focus-within {\n outline-color: var(--color-blue-300);\n }\n\n .focus-within\\:outline-red-700:focus-within {\n outline-color: var(--color-red-700);\n }\n\n @media (hover: hover) {\n .hover\\:border-blue-900:hover {\n border-color: var(--color-blue-900);\n }\n\n .hover\\:border-gray-600:hover {\n border-color: var(--color-gray-600);\n }\n\n .hover\\:border-red-900:hover {\n border-color: var(--color-red-900);\n }\n\n .hover\\:bg-black\\/5:hover {\n background-color: var(--color-black);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .hover\\:bg-black\\/5:hover {\n background-color: color-mix(in oklab, var(--color-black) 5%, transparent);\n }\n }\n\n .hover\\:bg-blue-50:hover {\n background-color: var(--color-blue-50);\n }\n\n .hover\\:bg-blue-100:hover {\n background-color: var(--color-blue-100);\n }\n\n .hover\\:bg-blue-800:hover {\n background-color: var(--color-blue-800);\n }\n\n .hover\\:bg-gray-25:hover {\n background-color: var(--color-gray-25);\n }\n\n .hover\\:bg-gray-50:hover {\n background-color: var(--color-gray-50);\n }\n\n .hover\\:bg-gray-100:hover, .hover\\:bg-gray-100\\/75:hover {\n background-color: var(--color-gray-100);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .hover\\:bg-gray-100\\/75:hover {\n background-color: color-mix(in oklab, var(--color-gray-100) 75%, transparent);\n }\n }\n\n .hover\\:bg-gray-200:hover {\n background-color: var(--color-gray-200);\n }\n\n .hover\\:bg-red-100:hover {\n background-color: var(--color-red-100);\n }\n\n .hover\\:bg-red-800:hover {\n background-color: var(--color-red-800);\n }\n\n .hover\\:fill-amber-700:hover {\n fill: var(--color-amber-700);\n }\n\n .hover\\:text-amber-700:hover {\n color: var(--color-amber-700);\n }\n\n .hover\\:text-black:hover {\n color: var(--color-black);\n }\n\n .hover\\:underline:hover {\n text-decoration-line: underline;\n }\n\n .hover\\:opacity-100:hover {\n opacity: 1;\n }\n\n :is(.hover\\:\\*\\:bg-blue-700:hover > *) {\n background-color: var(--color-blue-700);\n }\n\n :is(.hover\\:\\*\\:text-white:hover > *) {\n color: var(--color-white);\n }\n }\n\n .focus\\:bg-gray-100:focus {\n background-color: var(--color-gray-100);\n }\n\n .focus\\:ring-1:focus {\n --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .focus\\:ring-2:focus {\n --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .focus\\:ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset, ) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n\n .focus\\:outline-hidden:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n\n @media (forced-colors: active) {\n .focus\\:outline-hidden:focus {\n outline-offset: 2px;\n outline: 2px solid #0000;\n }\n }\n\n :is(.focus\\:\\*\\:bg-blue-700:focus > *) {\n background-color: var(--color-blue-700);\n }\n\n :is(.focus\\:\\*\\:text-white:focus > *) {\n color: var(--color-white);\n }\n\n .focus-visible\\:ring-2:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .focus-visible\\:ring-black:focus-visible {\n --tw-ring-color: var(--color-black);\n }\n\n .focus-visible\\:ring-blue-300:focus-visible {\n --tw-ring-color: var(--color-blue-300);\n }\n\n .focus-visible\\:ring-blue-700:focus-visible {\n --tw-ring-color: var(--color-blue-700);\n }\n\n .focus-visible\\:ring-blue-1000:focus-visible {\n --tw-ring-color: var(--color-blue-1000);\n }\n\n .focus-visible\\:ring-red-700:focus-visible {\n --tw-ring-color: var(--color-red-700);\n }\n\n .focus-visible\\:ring-red-1000:focus-visible {\n --tw-ring-color: var(--color-red-1000);\n }\n\n .focus-visible\\:ring-offset-2:focus-visible {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset, ) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n\n .focus-visible\\:outline-hidden:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n\n @media (forced-colors: active) {\n .focus-visible\\:outline-hidden:focus-visible {\n outline-offset: 2px;\n outline: 2px solid #0000;\n }\n }\n\n .active\\:bg-blue-200:active {\n background-color: var(--color-blue-200);\n }\n\n .active\\:bg-blue-900:active {\n background-color: var(--color-blue-900);\n }\n\n .active\\:bg-gray-50:active {\n background-color: var(--color-gray-50);\n }\n\n .active\\:bg-gray-100:active {\n background-color: var(--color-gray-100);\n }\n\n .active\\:bg-gray-200:active {\n background-color: var(--color-gray-200);\n }\n\n .active\\:bg-gray-300:active {\n background-color: var(--color-gray-300);\n }\n\n .active\\:bg-gray-500:active {\n background-color: var(--color-gray-500);\n }\n\n .active\\:bg-red-200:active {\n background-color: var(--color-red-200);\n }\n\n .active\\:bg-red-800:active {\n background-color: var(--color-red-800);\n }\n\n .active\\:bg-red-900:active {\n background-color: var(--color-red-900);\n }\n\n .active\\:text-blue-900:active {\n color: var(--color-blue-900);\n }\n\n .disabled\\:pointer-events-none:disabled {\n pointer-events: none;\n }\n\n .disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n }\n\n .disabled\\:opacity-40:disabled {\n opacity: .4;\n }\n\n .disabled\\:opacity-50:disabled {\n opacity: .5;\n }\n\n .disabled\\:select-none:disabled {\n user-select: none;\n }\n\n :where(.dark-theme) .in-\\[\\.dark-theme\\]\\:bg-gray-50 {\n background-color: var(--color-gray-50);\n }\n\n .aria-selected\\:rounded-md[aria-selected=\"true\"] {\n border-radius: var(--radius-md);\n }\n\n .aria-selected\\:bg-blue-100[aria-selected=\"true\"], :is(.aria-selected\\:\\*\\:bg-blue-100[aria-selected=\"true\"] > *) {\n background-color: var(--color-blue-100);\n }\n\n :is(.aria-selected\\:\\*\\:text-blue-700[aria-selected=\"true\"] > *) {\n color: var(--color-blue-700);\n }\n\n .first\\:aria-selected\\:rounded-l-md:first-child[aria-selected=\"true\"] {\n border-top-left-radius: var(--radius-md);\n border-bottom-left-radius: var(--radius-md);\n }\n\n .last\\:aria-selected\\:rounded-r-md:last-child[aria-selected=\"true\"] {\n border-top-right-radius: var(--radius-md);\n border-bottom-right-radius: var(--radius-md);\n }\n\n .data-disabled\\:pointer-events-none[data-disabled] {\n pointer-events: none;\n }\n\n .data-disabled\\:cursor-not-allowed[data-disabled] {\n cursor: not-allowed;\n }\n\n .data-disabled\\:opacity-40[data-disabled] {\n opacity: .4;\n }\n\n .data-disabled\\:opacity-50[data-disabled] {\n opacity: .5;\n }\n\n .data-\\[disabled\\=true\\]\\:cursor-not-allowed[data-disabled=\"true\"] {\n cursor: not-allowed;\n }\n\n .data-\\[disabled\\=true\\]\\:opacity-50[data-disabled=\"true\"] {\n opacity: .5;\n }\n\n .data-\\[selected\\=true\\]\\:bg-gray-50[data-selected=\"true\"] {\n background-color: var(--color-gray-50);\n }\n\n .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=\"bottom\"] {\n --tw-translate-y: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=\"bottom\"] {\n --tw-enter-translate-y: -.5rem;\n }\n\n .data-\\[side\\=left\\]\\:-translate-x-1[data-side=\"left\"] {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=\"left\"] {\n --tw-enter-translate-x: .5rem;\n }\n\n .data-\\[side\\=right\\]\\:translate-x-1[data-side=\"right\"] {\n --tw-translate-x: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=\"right\"] {\n --tw-enter-translate-x: -.5rem;\n }\n\n .data-\\[side\\=top\\]\\:-translate-y-1[data-side=\"top\"] {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=\"top\"] {\n --tw-enter-translate-y: .5rem;\n }\n\n .data-\\[size\\=xxs\\]\\:bg-amber-700[data-size=\"xxs\"] {\n background-color: var(--color-amber-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-blue-700[data-size=\"xxs\"] {\n background-color: var(--color-blue-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-bronze-700[data-size=\"xxs\"] {\n background-color: var(--color-bronze-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-brown-700[data-size=\"xxs\"] {\n background-color: var(--color-brown-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-crimson-700[data-size=\"xxs\"] {\n background-color: var(--color-crimson-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-cyan-700[data-size=\"xxs\"] {\n background-color: var(--color-cyan-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-gold-700[data-size=\"xxs\"] {\n background-color: var(--color-gold-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-grass-700[data-size=\"xxs\"] {\n background-color: var(--color-grass-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-gray-700[data-size=\"xxs\"] {\n background-color: var(--color-gray-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-green-700[data-size=\"xxs\"] {\n background-color: var(--color-green-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-indigo-700[data-size=\"xxs\"] {\n background-color: var(--color-indigo-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-lime-700[data-size=\"xxs\"] {\n background-color: var(--color-lime-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-plum-700[data-size=\"xxs\"] {\n background-color: var(--color-plum-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-purple-700[data-size=\"xxs\"] {\n background-color: var(--color-purple-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-red-700[data-size=\"xxs\"] {\n background-color: var(--color-red-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-teal-700[data-size=\"xxs\"] {\n background-color: var(--color-teal-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-violet-700[data-size=\"xxs\"] {\n background-color: var(--color-violet-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-yellow-700[data-size=\"xxs\"] {\n background-color: var(--color-yellow-700);\n }\n\n .data-\\[state\\=active\\]\\:bg-black[data-state=\"active\"] {\n background-color: var(--color-black);\n }\n\n .data-\\[state\\=active\\]\\:bg-white[data-state=\"active\"] {\n background-color: var(--color-white);\n }\n\n .data-\\[state\\=active\\]\\:text-blue-700[data-state=\"active\"] {\n color: var(--color-blue-700);\n }\n\n .data-\\[state\\=active\\]\\:shadow-xs[data-state=\"active\"] {\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, #0000000d);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .data-\\[state\\=checked\\]\\:translate-x-5[data-state=\"checked\"] {\n --tw-translate-x: calc(var(--spacing) * 5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .data-\\[state\\=checked\\]\\:border-blue-700[data-state=\"checked\"] {\n border-color: var(--color-blue-700);\n }\n\n .data-\\[state\\=checked\\]\\:bg-blue-700[data-state=\"checked\"] {\n background-color: var(--color-blue-700);\n }\n\n .data-\\[state\\=checked\\]\\:bg-gray-50[data-state=\"checked\"] {\n background-color: var(--color-gray-50);\n }\n\n .data-\\[state\\=checked\\]\\:bg-white[data-state=\"checked\"] {\n background-color: var(--color-white);\n }\n\n .data-\\[state\\=closed\\]\\:animate-accordion-up[data-state=\"closed\"] {\n animation: var(--animate-accordion-up);\n }\n\n .data-\\[state\\=closed\\]\\:duration-300[data-state=\"closed\"] {\n --tw-duration: .3s;\n transition-duration: .3s;\n }\n\n .data-\\[state\\=closed\\]\\:animate-out[data-state=\"closed\"] {\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n animation-name: exit;\n animation-duration: .15s;\n }\n\n .data-\\[state\\=closed\\]\\:duration-300[data-state=\"closed\"] {\n animation-duration: .3s;\n }\n\n .data-\\[state\\=closed\\]\\:fade-out[data-state=\"closed\"], .data-\\[state\\=closed\\]\\:fade-out-0[data-state=\"closed\"] {\n --tw-exit-opacity: 0;\n }\n\n .data-\\[state\\=closed\\]\\:fade-out-80[data-state=\"closed\"] {\n --tw-exit-opacity: .8;\n }\n\n .data-\\[state\\=closed\\]\\:slide-out-to-bottom[data-state=\"closed\"], .data-\\[state\\=closed\\]\\:slide-out-to-bottom-\\[100\\%\\][data-state=\"closed\"] {\n --tw-exit-translate-y: 100%;\n }\n\n .data-\\[state\\=closed\\]\\:slide-out-to-left[data-state=\"closed\"] {\n --tw-exit-translate-x: -100%;\n }\n\n .data-\\[state\\=closed\\]\\:slide-out-to-right[data-state=\"closed\"] {\n --tw-exit-translate-x: 100%;\n }\n\n .data-\\[state\\=closed\\]\\:slide-out-to-top[data-state=\"closed\"] {\n --tw-exit-translate-y: -100%;\n }\n\n .data-\\[state\\=closed\\]\\:zoom-out-95[data-state=\"closed\"] {\n --tw-exit-scale: .95;\n }\n\n .data-\\[state\\=on\\]\\:border-blue-700[data-state=\"on\"] {\n border-color: var(--color-blue-700);\n }\n\n .data-\\[state\\=open\\]\\:animate-accordion-down[data-state=\"open\"] {\n animation: var(--animate-accordion-down);\n }\n\n .data-\\[state\\=open\\]\\:duration-500[data-state=\"open\"] {\n --tw-duration: .5s;\n transition-duration: .5s;\n }\n\n .data-\\[state\\=open\\]\\:animate-in[data-state=\"open\"] {\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n animation-name: enter;\n animation-duration: .15s;\n }\n\n .data-\\[state\\=open\\]\\:duration-500[data-state=\"open\"] {\n animation-duration: .5s;\n }\n\n .data-\\[state\\=open\\]\\:fade-in-0[data-state=\"open\"] {\n --tw-enter-opacity: 0;\n }\n\n .data-\\[state\\=open\\]\\:slide-in-from-bottom[data-state=\"open\"], .data-\\[state\\=open\\]\\:slide-in-from-bottom-\\[100\\%\\][data-state=\"open\"] {\n --tw-enter-translate-y: 100%;\n }\n\n .data-\\[state\\=open\\]\\:slide-in-from-left[data-state=\"open\"] {\n --tw-enter-translate-x: -100%;\n }\n\n .data-\\[state\\=open\\]\\:slide-in-from-right[data-state=\"open\"] {\n --tw-enter-translate-x: 100%;\n }\n\n .data-\\[state\\=open\\]\\:slide-in-from-top[data-state=\"open\"], .data-\\[state\\=open\\]\\:slide-in-from-top-full[data-state=\"open\"] {\n --tw-enter-translate-y: -100%;\n }\n\n .data-\\[state\\=open\\]\\:zoom-in-95[data-state=\"open\"] {\n --tw-enter-scale: .95;\n }\n\n .data-\\[state\\=selected\\]\\:bg-gray-50[data-state=\"selected\"] {\n background-color: var(--color-gray-50);\n }\n\n .data-disabled\\:data-\\[state\\=unchecked\\]\\:bg-gray-300[data-disabled][data-state=\"unchecked\"] {\n background-color: var(--color-gray-300);\n }\n\n .data-\\[swipe\\=cancel\\]\\:translate-x-0[data-swipe=\"cancel\"] {\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .data-\\[swipe\\=end\\]\\:translate-x-\\[var\\(--radix-toast-swipe-end-x\\)\\][data-swipe=\"end\"] {\n --tw-translate-x: var(--radix-toast-swipe-end-x);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .data-\\[swipe\\=end\\]\\:animate-out[data-swipe=\"end\"] {\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n animation-name: exit;\n animation-duration: .15s;\n }\n\n .data-\\[swipe\\=move\\]\\:translate-x-\\[var\\(--radix-toast-swipe-move-x\\)\\][data-swipe=\"move\"] {\n --tw-translate-x: var(--radix-toast-swipe-move-x);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .data-\\[swipe\\=move\\]\\:transition-none[data-swipe=\"move\"] {\n transition-property: none;\n }\n\n @media not all and (width >= 64rem) {\n .max-lg\\:hidden {\n display: none;\n }\n }\n\n @media not all and (width >= 40rem) {\n .max-sm\\:gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n\n .max-sm\\:p-4 {\n padding: calc(var(--spacing) * 4);\n }\n }\n\n @media (width >= 40rem) {\n .sm\\:mt-0 {\n margin-top: calc(var(--spacing) * 0);\n }\n\n .sm\\:max-w-md {\n max-width: var(--container-md);\n }\n\n .sm\\:max-w-sm {\n max-width: var(--container-sm);\n }\n\n .sm\\:flex-col {\n flex-direction: column;\n }\n\n .sm\\:flex-row {\n flex-direction: row;\n }\n\n .sm\\:justify-end {\n justify-content: flex-end;\n }\n\n :where(.sm\\:space-x-2 > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)));\n }\n\n .sm\\:data-\\[state\\=open\\]\\:slide-in-from-bottom-full[data-state=\"open\"] {\n --tw-enter-translate-y: 100%;\n }\n }\n\n @media (width >= 48rem) {\n .md\\:block {\n display: block;\n }\n\n .md\\:h-\\[550px\\] {\n height: 550px;\n }\n\n .md\\:w-\\[300px\\] {\n width: 300px;\n }\n\n .md\\:w-\\[326px\\] {\n width: 326px;\n }\n\n .md\\:w-\\[1000px\\] {\n width: 1000px;\n }\n\n .md\\:w-auto {\n width: auto;\n }\n\n .md\\:w-fit {\n width: fit-content;\n }\n\n .md\\:w-full {\n width: 100%;\n }\n\n .md\\:max-w-\\[90vw\\] {\n max-width: 90vw;\n }\n\n .md\\:max-w-\\[420px\\] {\n max-width: 420px;\n }\n\n .md\\:min-w-\\[500px\\] {\n min-width: 500px;\n }\n\n .md\\:flex-row {\n flex-direction: row;\n }\n\n .md\\:items-center {\n align-items: center;\n }\n\n .md\\:justify-start {\n justify-content: flex-start;\n }\n\n .md\\:gap-0 {\n gap: calc(var(--spacing) * 0);\n }\n\n .md\\:gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n\n .md\\:gap-6 {\n gap: calc(var(--spacing) * 6);\n }\n\n .md\\:gap-8 {\n gap: calc(var(--spacing) * 8);\n }\n\n :where(.md\\:divide-y > :not(:last-child)) {\n --tw-divide-y-reverse: 0;\n border-bottom-style: var(--tw-border-style);\n border-top-style: var(--tw-border-style);\n border-top-width: calc(1px * var(--tw-divide-y-reverse));\n border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n }\n\n .md\\:border-0 {\n border-style: var(--tw-border-style);\n border-width: 0;\n }\n\n .md\\:bg-gray-50 {\n background-color: var(--color-gray-50);\n }\n\n .md\\:bg-transparent {\n background-color: #0000;\n }\n\n .md\\:p-0 {\n padding: calc(var(--spacing) * 0);\n }\n\n .md\\:p-4 {\n padding: calc(var(--spacing) * 4);\n }\n\n .md\\:p-6 {\n padding: calc(var(--spacing) * 6);\n }\n\n .md\\:p-8 {\n padding: calc(var(--spacing) * 8);\n }\n }\n\n @media (width >= 64rem) {\n .lg\\:h-14 {\n height: calc(var(--spacing) * 14);\n }\n\n .lg\\:w-14 {\n width: calc(var(--spacing) * 14);\n }\n\n .lg\\:flex-row {\n flex-direction: row;\n }\n\n .lg\\:gap-8 {\n gap: calc(var(--spacing) * 8);\n }\n\n .lg\\:gap-16 {\n gap: calc(var(--spacing) * 16);\n }\n\n .lg\\:bg-pattern {\n background-image: var(--background-image-pattern);\n }\n\n .lg\\:p-20 {\n padding: calc(var(--spacing) * 20);\n }\n\n .lg\\:text-4xl {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n letter-spacing: var(--tw-tracking, var(--text-4xl--letter-spacing));\n }\n\n .lg\\:text-md {\n font-size: var(--text-md);\n line-height: var(--tw-leading, var(--text-md--line-height));\n letter-spacing: var(--tw-tracking, var(--text-md--letter-spacing));\n }\n }\n\n @media (width >= 80rem) {\n .xl\\:rounded-none {\n border-radius: 0;\n }\n }\n\n .dark\\:bg-white\\/50:where(.dark-theme, .dark-theme *) {\n background-color: var(--color-white);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .dark\\:bg-white\\/50:where(.dark-theme, .dark-theme *) {\n background-color: color-mix(in oklab, var(--color-white) 50%, transparent);\n }\n }\n\n .dark\\:fill-black:where(.dark-theme, .dark-theme *) {\n fill: var(--color-black);\n }\n\n .dark\\:text-black:where(.dark-theme, .dark-theme *), :is(.dark\\:\\*\\:text-black:where(.dark-theme, .dark-theme *) > *) {\n color: var(--color-black);\n }\n\n @media (hover: hover) {\n :is(.dark\\:hover\\:\\*\\:text-black:where(.dark-theme, .dark-theme *):hover > *) {\n color: var(--color-black);\n }\n }\n\n :is(.dark\\:focus\\:\\*\\:text-black:where(.dark-theme, .dark-theme *):focus > *), .dark\\:data-\\[state\\=active\\]\\:text-black:where(.dark-theme, .dark-theme *)[data-state=\"active\"] {\n color: var(--color-black);\n }\n\n .dark\\:data-\\[state\\=active\\]\\:text-white:where(.dark-theme, .dark-theme *)[data-state=\"active\"] {\n color: var(--color-white);\n }\n\n .dark\\:data-\\[state\\=checked\\]\\:bg-black:where(.dark-theme, .dark-theme *)[data-state=\"checked\"] {\n background-color: var(--color-black);\n }\n\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:px-2 [cmdk-group-heading] {\n padding-inline: calc(var(--spacing) * 2);\n }\n\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:py-1\\.5 [cmdk-group-heading] {\n padding-block: calc(var(--spacing) * 1.5);\n }\n\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-sm [cmdk-group-heading] {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n letter-spacing: var(--tw-tracking, var(--text-sm--letter-spacing));\n }\n\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:font-medium [cmdk-group-heading] {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-black [cmdk-group-heading] {\n color: var(--color-black);\n }\n\n .\\[\\&_tr\\]\\:border-b tr {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n\n .\\[\\&_tr\\:active\\]\\:bg-gray-50 tr:active {\n background-color: var(--color-gray-50);\n }\n\n .\\[\\&_tr\\:hover\\]\\:bg-gray-25 tr:hover {\n background-color: var(--color-gray-25);\n }\n\n .\\[\\&_tr\\:hover\\:active\\]\\:bg-gray-50 tr:hover:active {\n background-color: var(--color-gray-50);\n }\n\n .\\[\\&_tr\\:last-child\\]\\:border-0 tr:last-child {\n border-style: var(--tw-border-style);\n border-width: 0;\n }\n\n .aria-selected\\:\\[\\&\\.day-outside\\]\\:bg-blue-100\\/50[aria-selected=\"true\"].day-outside {\n background-color: var(--color-blue-100);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .aria-selected\\:\\[\\&\\.day-outside\\]\\:bg-blue-100\\/50[aria-selected=\"true\"].day-outside {\n background-color: color-mix(in oklab, var(--color-blue-100) 50%, transparent);\n }\n }\n\n .\\[\\&\\.day-range-end\\]\\:rounded-r-md.day-range-end, .aria-selected\\:\\[\\&\\.day-range-end\\]\\:rounded-r-md[aria-selected=\"true\"].day-range-end {\n border-top-right-radius: var(--radius-md);\n border-bottom-right-radius: var(--radius-md);\n }\n\n .\\[\\&\\.day-range-start\\]\\:rounded-l-md.day-range-start {\n border-top-left-radius: var(--radius-md);\n border-bottom-left-radius: var(--radius-md);\n }\n\n .\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:pr-0:has([role=\"checkbox\"]) {\n padding-right: calc(var(--spacing) * 0);\n }\n\n .\\[\\&\\>\\[role\\=checkbox\\]\\]\\:translate-y-\\[2px\\] > [role=\"checkbox\"] {\n --tw-translate-y: 2px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .\\[\\&\\>button\\]\\:w-full > button {\n width: 100%;\n }\n\n .\\[\\&\\>div\\]\\:h-\\[72px\\] > div {\n height: 72px;\n }\n\n .\\[\\&\\>div\\]\\:w-full > div {\n width: 100%;\n }\n\n .\\[\\&\\>svg\\]\\:h-4 > svg {\n height: calc(var(--spacing) * 4);\n }\n\n .\\[\\&\\>svg\\]\\:w-auto > svg {\n width: auto;\n }\n\n .\\[\\&\\>svg\\]\\:text-black > svg {\n color: var(--color-black);\n }\n\n .\\[\\&\\>svg\\]\\:text-blue-700 > svg {\n color: var(--color-blue-700);\n }\n\n .\\[\\&\\>svg\\]\\:text-current > svg {\n color: currentColor;\n }\n\n .\\[\\&\\>svg\\]\\:text-gray-700 > svg {\n color: var(--color-gray-700);\n }\n\n .\\[\\&\\>svg\\]\\:text-red-700 > svg {\n color: var(--color-red-700);\n }\n\n .\\[\\&\\>svg\\]\\:text-white > svg {\n color: var(--color-white);\n }\n\n @media (hover: hover) {\n .hover\\:\\[\\&\\>svg\\]\\:text-black:hover > svg {\n color: var(--color-black);\n }\n }\n\n .dark\\:\\[\\&\\>svg\\]\\:text-black:where(.dark-theme, .dark-theme *) > svg {\n color: var(--color-black);\n }\n}\n\n* {\n box-sizing: border-box;\n -webkit-font-smoothing: antialiased;\n}\n\n:root, .light-theme {\n --color-white: #fff;\n --color-black: #121212;\n --color-gray-25: #fcfcfc;\n --color-gray-50: #f7f7f7;\n --color-gray-100: #f2f2f2;\n --color-gray-200: #ededed;\n --color-gray-300: #e8e8e8;\n --color-gray-400: #e3e3e3;\n --color-gray-500: #dbdbdb;\n --color-gray-600: #c7c7c7;\n --color-gray-700: #8f8f8f;\n --color-gray-800: #858585;\n --color-gray-900: #707070;\n --color-gray-1000: #171717;\n --color-blue-25: #fafcff;\n --color-blue-50: #f5f9ff;\n --color-blue-100: #f0f6ff;\n --color-blue-200: #d7e7fe;\n --color-blue-300: #c7deff;\n --color-blue-400: #b8d5ff;\n --color-blue-500: #85b8ff;\n --color-blue-600: #579dff;\n --color-blue-700: #006aff;\n --color-blue-800: #005bdb;\n --color-blue-900: #004db8;\n --color-blue-1000: #002252;\n --color-red-25: snow;\n --color-red-50: snow;\n --color-red-100: #fff0f0;\n --color-red-200: #ffe5e5;\n --color-red-300: #fdd8d8;\n --color-red-400: #f9c8c8;\n --color-red-500: #f3afb0;\n --color-red-600: #ea8f90;\n --color-red-700: #e5484d;\n --color-red-800: #db3d42;\n --color-red-900: #ce2c31;\n --color-red-1000: #391417;\n --color-amber-25: #fffcf6;\n --color-amber-50: #fffaf2;\n --color-amber-100: #fff9ed;\n --color-amber-200: #fff3de;\n --color-amber-300: #ffefd1;\n --color-amber-400: #ffe8bd;\n --color-amber-500: #ffdd9f;\n --color-amber-600: #ffcf77;\n --color-amber-700: #ffb224;\n --color-amber-800: #f9a710;\n --color-amber-900: #e4980c;\n --color-amber-1000: #4e2009;\n --color-green-25: #fbfefc;\n --color-green-50: #f3fcf5;\n --color-green-100: #ebfaf0;\n --color-green-200: #ddf3e4;\n --color-green-300: #ccebd7;\n --color-green-400: #b4dfc4;\n --color-green-500: #92ceac;\n --color-green-600: #5bb98b;\n --color-green-700: #30a66d;\n --color-green-800: #2a9865;\n --color-green-900: #18774c;\n --color-green-1000: #153226;\n --color-tomato-25: snow;\n --color-tomato-50: #fff6f5;\n --color-tomato-100: #fff1f0;\n --color-tomato-200: #ffe4e0;\n --color-tomato-300: #fdd8d3;\n --color-tomato-400: #fac6bd;\n --color-tomato-500: #f3aea0;\n --color-tomato-600: #ea9280;\n --color-tomato-700: #e54d2e;\n --color-tomato-800: #db4224;\n --color-tomato-900: #cc3314;\n --color-tomato-1000: #361811;\n --color-crimson-25: #fffafc;\n --color-crimson-50: #fff5fa;\n --color-crimson-100: #fef1f7;\n --color-crimson-200: #fce4ef;\n --color-crimson-300: #f9d7e6;\n --color-crimson-400: #f4c7dc;\n --color-crimson-500: #edabc7;\n --color-crimson-600: #e58fb2;\n --color-crimson-700: #ea3e83;\n --color-crimson-800: #e13378;\n --color-crimson-900: #d21e66;\n --color-crimson-1000: #3f0d1e;\n --color-pink-25: #fffafd;\n --color-pink-50: #fff5fb;\n --color-pink-100: #feecf7;\n --color-pink-200: #fce4f3;\n --color-pink-300: #f9d7eb;\n --color-pink-400: #f3c4e1;\n --color-pink-500: #ecacd3;\n --color-pink-600: #e28dc2;\n --color-pink-700: #d742a0;\n --color-pink-800: #d23297;\n --color-pink-900: #cd1d8d;\n --color-pink-1000: #3d0a2b;\n --color-plum-25: #fdfaff;\n --color-plum-50: #fffaff;\n --color-plum-100: #fceefc;\n --color-plum-200: #f9e6f9;\n --color-plum-300: #f3d7f4;\n --color-plum-400: #ecc9ee;\n --color-plum-500: #dfb0e3;\n --color-plum-600: #cf92d9;\n --color-plum-700: #ab4aba;\n --color-plum-800: #a43cb4;\n --color-plum-900: #9a2bab;\n --color-plum-1000: #340c3b;\n --color-purple-25: #fefbfe;\n --color-purple-50: #fdfaff;\n --color-purple-100: #f9f1fe;\n --color-purple-200: #f4e8fc;\n --color-purple-300: #eddcf9;\n --color-purple-400: #e4cdf4;\n --color-purple-500: #d4b5ed;\n --color-purple-600: #bf95e4;\n --color-purple-700: #8e4ec6;\n --color-purple-800: #8344bb;\n --color-purple-900: #793bb0;\n --color-purple-1000: #2b0e44;\n --color-violet-25: #fcfbfe;\n --color-violet-50: #fbfaff;\n --color-violet-100: #f3f0ff;\n --color-violet-200: #ebe7fe;\n --color-violet-300: #e4defc;\n --color-violet-400: #d5cdf9;\n --color-violet-500: #c5b9f3;\n --color-violet-600: #a898ec;\n --color-violet-700: #6d54cf;\n --color-violet-800: #634ec1;\n --color-violet-900: #5746af;\n --color-violet-1000: #1f1249;\n --color-indigo-25: #fcfcfd;\n --color-indigo-50: #fafbff;\n --color-indigo-100: #f0f4ff;\n --color-indigo-200: #e7edfe;\n --color-indigo-300: #d9e2fc;\n --color-indigo-400: #c8d5f9;\n --color-indigo-500: #adbff5;\n --color-indigo-600: #8fa6ef;\n --color-indigo-700: #3c61dd;\n --color-indigo-800: #385bcc;\n --color-indigo-900: #3451b2;\n --color-indigo-1000: #101d47;\n --color-cyan-25: #fbfdfe;\n --color-cyan-50: #f2fcfd;\n --color-cyan-100: #e9f9fb;\n --color-cyan-200: #daf4f7;\n --color-cyan-300: #c3e9ef;\n --color-cyan-400: #a8dee6;\n --color-cyan-500: #85cedb;\n --color-cyan-600: #3fb9cf;\n --color-cyan-700: #05a2c2;\n --color-cyan-800: #0895b4;\n --color-cyan-900: #0c7792;\n --color-cyan-1000: #04323e;\n --color-teal-25: #fbfefd;\n --color-teal-50: #f2fcfa;\n --color-teal-100: #e7f9f5;\n --color-teal-200: #d8f3ed;\n --color-teal-300: #c7ebe5;\n --color-teal-400: #afdfd7;\n --color-teal-500: #8dcec3;\n --color-teal-600: #55b9ac;\n --color-teal-700: #12a594;\n --color-teal-800: #0e9a8a;\n --color-teal-900: #067a6e;\n --color-teal-1000: #11322d;\n --color-grass-25: #fbfefb;\n --color-grass-50: #f3fcf3;\n --color-grass-100: #ebf9eb;\n --color-grass-200: #def2de;\n --color-grass-300: #cceacd;\n --color-grass-400: #b9dfbc;\n --color-grass-500: #96cf9b;\n --color-grass-600: #64b974;\n --color-grass-700: #45a557;\n --color-grass-800: #3d994f;\n --color-grass-900: #297a3a;\n --color-grass-1000: #1b311e;\n --color-brown-25: #fefcfb;\n --color-brown-50: #fcfaf7;\n --color-brown-100: #f9f2ec;\n --color-brown-200: #f4e8dc;\n --color-brown-300: #efddcd;\n --color-brown-400: #e8cdb5;\n --color-brown-500: #ddb997;\n --color-brown-600: #d09e71;\n --color-brown-700: #ad7f58;\n --color-brown-800: #a27653;\n --color-brown-900: #886349;\n --color-brown-1000: #3f2c22;\n --color-orange-25: #fefcfb;\n --color-orange-50: #fef9f6;\n --color-orange-100: #fff0e5;\n --color-orange-200: #ffe8d6;\n --color-orange-300: #ffdbc2;\n --color-orange-400: #ffcca8;\n --color-orange-500: #ffb280;\n --color-orange-600: #fa924c;\n --color-orange-700: #f76808;\n --color-orange-800: #eb5e00;\n --color-orange-900: #bd4b00;\n --color-orange-1000: #451e11;\n --color-sky-25: #fafeff;\n --color-sky-50: #f0fcff;\n --color-sky-100: #e5f9ff;\n --color-sky-200: #d3f3fd;\n --color-sky-300: #c3ecf9;\n --color-sky-400: #a2def1;\n --color-sky-500: #7bd0ea;\n --color-sky-600: #2ebee5;\n --color-sky-700: #68ddfd;\n --color-sky-800: #5dd3f4;\n --color-sky-900: #007aa3;\n --color-sky-1000: #003242;\n --color-mint-25: #fbfefe;\n --color-mint-50: #f1fefa;\n --color-mint-100: #e0fbf3;\n --color-mint-200: #d4f7ee;\n --color-mint-300: #c2efe4;\n --color-mint-400: #a5e4d4;\n --color-mint-500: #7dd4bf;\n --color-mint-600: #40c4aa;\n --color-mint-700: #70e1c8;\n --color-mint-800: #68d9c1;\n --color-mint-900: #147b6d;\n --color-mint-1000: #09342e;\n --color-lime-25: #fdfefb;\n --color-lime-50: #f6fcee;\n --color-lime-100: #eefadb;\n --color-lime-200: #e3f7c5;\n --color-lime-300: #d7f2b0;\n --color-lime-400: #cae996;\n --color-lime-500: #b1d16b;\n --color-lime-600: #94ba2c;\n --color-lime-700: #99d52a;\n --color-lime-800: #93c926;\n --color-lime-900: #5d770d;\n --color-lime-1000: #273409;\n --color-yellow-25: #fcfcf7;\n --color-yellow-50: #fffce5;\n --color-yellow-100: #fffbd1;\n --color-yellow-200: #fff8bd;\n --color-yellow-300: #fef2a4;\n --color-yellow-400: #f9e78b;\n --color-yellow-500: #efd26c;\n --color-yellow-600: #f5d90a;\n --color-yellow-700: #ebbc00;\n --color-yellow-800: #f5cc00;\n --color-yellow-900: #946800;\n --color-yellow-1000: #34280f;\n --color-gold-25: #fdfdfc;\n --color-gold-50: #fbfaf3;\n --color-gold-100: #f6f3ea;\n --color-gold-200: #eeeadd;\n --color-gold-300: #e6e0d1;\n --color-gold-400: #dad1be;\n --color-gold-500: #cbbda4;\n --color-gold-600: #b8a384;\n --color-gold-700: #968264;\n --color-gold-800: #8d7a5e;\n --color-gold-900: #776750;\n --color-gold-1000: #3b352b;\n --color-bronze-25: #fdfcfc;\n --color-bronze-50: #fdf8f7;\n --color-bronze-100: #f8f0ed;\n --color-bronze-200: #f2e8e3;\n --color-bronze-300: #eaddd7;\n --color-bronze-400: #e0cec7;\n --color-bronze-500: #d0b8af;\n --color-bronze-600: #be9f93;\n --color-bronze-700: #a18072;\n --color-bronze-800: #967669;\n --color-bronze-900: #846358;\n --color-bronze-1000: #44312c;\n}\n\n.dark-theme {\n --color-white: #121212;\n --color-black: #fff;\n --color-gray-25: #171717;\n --color-gray-50: #1c1c1c;\n --color-gray-100: #242424;\n --color-gray-200: #292929;\n --color-gray-300: #2e2e2e;\n --color-gray-400: #333;\n --color-gray-500: #3d3d3d;\n --color-gray-600: #4f4f4f;\n --color-gray-700: #707070;\n --color-gray-800: #7d7d7d;\n --color-gray-900: #a1a1a1;\n --color-gray-1000: #ededed;\n --color-blue-25: #0f161f;\n --color-blue-50: #0f1c2e;\n --color-blue-100: #10233d;\n --color-blue-200: #102a4c;\n --color-blue-300: #0f2f57;\n --color-blue-400: #0d3868;\n --color-blue-500: #0a4380;\n --color-blue-600: #0954a5;\n --color-blue-700: #0091ff;\n --color-blue-800: #389fff;\n --color-blue-900: #52a8ff;\n --color-blue-1000: #ebf6ff;\n --color-red-25: #201315;\n --color-red-50: #291415;\n --color-red-100: #3a1719;\n --color-red-200: #471a1d;\n --color-red-300: #551b1f;\n --color-red-400: #671e21;\n --color-red-500: #832126;\n --color-red-600: #a82428;\n --color-red-700: #e5484d;\n --color-red-800: #f2545a;\n --color-red-900: #ff6166;\n --color-red-1000: #feecee;\n --color-amber-25: #1f1300;\n --color-amber-50: #291800;\n --color-amber-100: #331b00;\n --color-amber-200: #3d2100;\n --color-amber-300: #4d2a00;\n --color-amber-400: #573300;\n --color-amber-500: #6b4105;\n --color-amber-600: #804d00;\n --color-amber-700: #ffb224;\n --color-amber-800: #ffbb3d;\n --color-amber-900: #ffc457;\n --color-amber-1000: #fef3dc;\n --color-green-25: #0c1811;\n --color-green-50: #0b1d16;\n --color-green-100: #0f291e;\n --color-green-200: #113123;\n --color-green-300: #133929;\n --color-green-400: #164531;\n --color-green-500: #1b553b;\n --color-green-600: #226d49;\n --color-green-700: #30a66d;\n --color-green-800: #3caf77;\n --color-green-900: #4bc389;\n --color-green-1000: #e5fbea;\n --color-tomato-25: #1c1412;\n --color-tomato-50: #29130f;\n --color-tomato-100: #3a1713;\n --color-tomato-200: #481a14;\n --color-tomato-300: #561d15;\n --color-tomato-400: #642016;\n --color-tomato-500: #7f2315;\n --color-tomato-600: #a52b12;\n --color-tomato-700: #e54d2e;\n --color-tomato-800: #ec5d41;\n --color-tomato-900: #f16b50;\n --color-tomato-1000: #feefec;\n --color-crimson-25: #1e1519;\n --color-crimson-50: #28151d;\n --color-crimson-100: #3a1726;\n --color-crimson-200: #471a2d;\n --color-crimson-300: #551b33;\n --color-crimson-400: #631d3a;\n --color-crimson-500: #811d45;\n --color-crimson-600: #ae1955;\n --color-crimson-700: #ea3e83;\n --color-crimson-800: #f05189;\n --color-crimson-900: #f75f8f;\n --color-crimson-1000: #feecf4;\n --color-pink-25: #20131c;\n --color-pink-50: #281522;\n --color-pink-100: #3a182f;\n --color-pink-200: #461b38;\n --color-pink-300: #501b3f;\n --color-pink-400: #621d4a;\n --color-pink-500: #7c1d5b;\n --color-pink-600: #a51871;\n --color-pink-700: #d742a0;\n --color-pink-800: #e34aa8;\n --color-pink-900: #f65ab5;\n --color-pink-1000: #feecf7;\n --color-plum-25: #1c121c;\n --color-plum-50: #241424;\n --color-plum-100: #331a33;\n --color-plum-200: #3e1c3f;\n --color-plum-300: #48214a;\n --color-plum-400: #552659;\n --color-plum-500: #6b2e70;\n --color-plum-600: #883894;\n --color-plum-700: #ab4aba;\n --color-plum-800: #bc53c6;\n --color-plum-900: #d864d8;\n --color-plum-1000: #fbedfc;\n --color-purple-25: #1c151e;\n --color-purple-50: #231528;\n --color-purple-100: #2e1938;\n --color-purple-200: #3a1e48;\n --color-purple-300: #422154;\n --color-purple-400: #4f2768;\n --color-purple-500: #5f2e85;\n --color-purple-600: #7938b2;\n --color-purple-700: #8e4ec6;\n --color-purple-800: #9c5bd2;\n --color-purple-900: #bf7af0;\n --color-purple-1000: #f8edfc;\n --color-violet-25: #17151e;\n --color-violet-50: #1c172b;\n --color-violet-100: #241d3e;\n --color-violet-200: #2b224f;\n --color-violet-300: #32265e;\n --color-violet-400: #392c72;\n --color-violet-500: #443592;\n --color-violet-600: #5741c3;\n --color-violet-700: #6d54cf;\n --color-violet-800: #7b65dc;\n --color-violet-900: #9f8dfc;\n --color-violet-1000: #efecfe;\n --color-indigo-25: #131620;\n --color-indigo-50: #15192d;\n --color-indigo-100: #18203e;\n --color-indigo-200: #1c274f;\n --color-indigo-300: #1f2c5c;\n --color-indigo-400: #22336d;\n --color-indigo-500: #273f8b;\n --color-indigo-600: #2f4db1;\n --color-indigo-700: #3c61dd;\n --color-indigo-800: #5474e8;\n --color-indigo-900: #859dff;\n --color-indigo-1000: #edf0fd;\n --color-cyan-25: #07191d;\n --color-cyan-50: #061d23;\n --color-cyan-100: #072931;\n --color-cyan-200: #07303b;\n --color-cyan-300: #073945;\n --color-cyan-400: #064251;\n --color-cyan-500: #044f62;\n --color-cyan-600: #006680;\n --color-cyan-700: #05a2c2;\n --color-cyan-800: #00b1cc;\n --color-cyan-900: #00c1d6;\n --color-cyan-1000: #e0f8fa;\n --color-teal-25: #091a16;\n --color-teal-50: #04201b;\n --color-teal-100: #062822;\n --color-teal-200: #07312b;\n --color-teal-300: #083a33;\n --color-teal-400: #09443c;\n --color-teal-500: #0b564c;\n --color-teal-600: #0c6e63;\n --color-teal-700: #12a594;\n --color-teal-800: #10b2a2;\n --color-teal-900: #0ac7b4;\n --color-teal-1000: #e0faf4;\n --color-grass-25: #0c1811;\n --color-grass-50: #0f1f13;\n --color-grass-100: #142a1a;\n --color-grass-200: #16311e;\n --color-grass-300: #193921;\n --color-grass-400: #1d4427;\n --color-grass-500: #255631;\n --color-grass-600: #2f6f3b;\n --color-grass-700: #45a557;\n --color-grass-800: #55b466;\n --color-grass-900: #62c073;\n --color-grass-1000: #e5fbea;\n --color-brown-25: #1a1614;\n --color-brown-50: #211712;\n --color-brown-100: #2e201a;\n --color-brown-200: #35251d;\n --color-brown-300: #3f2c22;\n --color-brown-400: #483528;\n --color-brown-500: #5d4332;\n --color-brown-600: #775940;\n --color-brown-700: #ad7f58;\n --color-brown-800: #bd8c61;\n --color-brown-900: #dba270;\n --color-brown-1000: #faf0e5;\n --color-orange-25: #1e1106;\n --color-orange-50: #291300;\n --color-orange-100: #3a1b03;\n --color-orange-200: #431e04;\n --color-orange-300: #4d2205;\n --color-orange-400: #602a06;\n --color-orange-500: #763205;\n --color-orange-600: #943e00;\n --color-orange-700: #f76808;\n --color-orange-800: #ff7e29;\n --color-orange-900: #ff8b3d;\n --color-orange-1000: #feeadc;\n --color-sky-25: #0d1921;\n --color-sky-50: #071e2c;\n --color-sky-100: #082535;\n --color-sky-200: #082c40;\n --color-sky-300: #08344a;\n --color-sky-400: #083e59;\n --color-sky-500: #064a6a;\n --color-sky-600: #005d85;\n --color-sky-700: #68ddfd;\n --color-sky-800: #8ae8ff;\n --color-sky-900: #2fc8ee;\n --color-sky-1000: #ebf8ff;\n --color-mint-25: #071715;\n --color-mint-50: #051f1d;\n --color-mint-100: #052926;\n --color-mint-200: #042f2a;\n --color-mint-300: #033a34;\n --color-mint-400: #01463e;\n --color-mint-500: #00574b;\n --color-mint-600: #006b59;\n --color-mint-700: #70e1c8;\n --color-mint-800: #95f3d9;\n --color-mint-900: #25d0ab;\n --color-mint-1000: #e8fcf8;\n --color-lime-25: #141807;\n --color-lime-50: #171c08;\n --color-lime-100: #1e260d;\n --color-lime-200: #252e0f;\n --color-lime-300: #2b3711;\n --color-lime-400: #354314;\n --color-lime-500: #405115;\n --color-lime-600: #546916;\n --color-lime-700: #99d52a;\n --color-lime-800: #c4f042;\n --color-lime-900: #88bf22;\n --color-lime-1000: #f0fbdf;\n --color-yellow-25: #1a1300;\n --color-yellow-50: #241b00;\n --color-yellow-100: #2e2200;\n --color-yellow-200: #332600;\n --color-yellow-300: #3d2f00;\n --color-yellow-400: #473a00;\n --color-yellow-500: #574805;\n --color-yellow-600: #705e00;\n --color-yellow-700: #f5d90a;\n --color-yellow-800: #ffef5c;\n --color-yellow-900: #f0c000;\n --color-yellow-1000: #fffad1;\n --color-gold-25: #161512;\n --color-gold-50: #1d1b16;\n --color-gold-100: #26231c;\n --color-gold-200: #2c2920;\n --color-gold-300: #353027;\n --color-gold-400: #3f392c;\n --color-gold-500: #4f4636;\n --color-gold-600: #6b5d47;\n --color-gold-700: #968264;\n --color-gold-800: #a59173;\n --color-gold-900: #bfa888;\n --color-gold-1000: #f7f5e8;\n --color-bronze-25: #191514;\n --color-bronze-50: #201a18;\n --color-bronze-100: #29201e;\n --color-bronze-200: #332824;\n --color-bronze-300: #3c2f2a;\n --color-bronze-400: #453530;\n --color-bronze-500: #57443d;\n --color-bronze-600: #74594e;\n --color-bronze-700: #a18072;\n --color-bronze-800: #b08c7d;\n --color-bronze-900: #cca494;\n --color-bronze-1000: #f9ede7;\n}\n\n.inter {\n font-family: Inter, sans-serif;\n}\n\n@supports (font-variation-settings: normal) {\n .inter {\n font-family: Inter var, sans-serif;\n }\n}\n\n.pulse-red-700 {\n animation: 2s infinite pulse-red-700;\n transform: scale(1);\n box-shadow: 0 0 #e5484d;\n}\n\n@keyframes pulse-red-700 {\n 0% {\n transform: scale(.95);\n box-shadow: 0 0 #e5484db3;\n }\n\n 70% {\n transform: scale(1);\n box-shadow: 0 0 0 6px #e5484d00;\n }\n\n to {\n transform: scale(.95);\n box-shadow: 0 0 #e5484d00;\n }\n}\n\n::-webkit-scrollbar {\n width: 0;\n height: 0;\n display: none;\n}\n\n@keyframes enter {\n 0% {\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n\n@keyframes exit {\n to {\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-space-x-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-divide-x-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n\n@property --tw-divide-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-leading {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n\n@property --tw-blur {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-brightness {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-contrast {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-grayscale {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-hue-rotate {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-invert {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-opacity {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-saturate {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-sepia {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-drop-shadow {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-drop-shadow-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-drop-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n\n@property --tw-drop-shadow-size {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-backdrop-blur {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-backdrop-brightness {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-backdrop-contrast {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-backdrop-grayscale {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-backdrop-hue-rotate {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-backdrop-invert {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-backdrop-opacity {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-backdrop-saturate {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-backdrop-sepia {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-duration {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-ease {\n syntax: \"*\";\n inherits: false\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes pulse {\n 50% {\n opacity: .5;\n }\n}\n\n@keyframes accordion-down {\n 0% {\n height: 0;\n }\n\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n\n@keyframes accordion-up {\n 0% {\n height: var(--radix-accordion-content-height);\n }\n\n to {\n height: 0;\n }\n}\n\n@keyframes flash {\n 0% {\n opacity: .9;\n }\n\n to {\n opacity: 0;\n }\n}\n";
14320
+ $1e2747ca72d0ab49$exports = "/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */\n@layer properties {\n @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {\n *, :before, :after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-space-y-reverse: 0;\n --tw-space-x-reverse: 0;\n --tw-divide-x-reverse: 0;\n --tw-border-style: solid;\n --tw-divide-y-reverse: 0;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-backdrop-blur: initial;\n --tw-backdrop-brightness: initial;\n --tw-backdrop-contrast: initial;\n --tw-backdrop-grayscale: initial;\n --tw-backdrop-hue-rotate: initial;\n --tw-backdrop-invert: initial;\n --tw-backdrop-opacity: initial;\n --tw-backdrop-saturate: initial;\n --tw-backdrop-sepia: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}\n\n@layer theme {\n :root, :host {\n --font-sans: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --spacing: .25rem;\n --container-xs: 20rem;\n --container-sm: 24rem;\n --container-md: 28rem;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --radius-sm: .25rem;\n --radius-md: .375rem;\n --radius-lg: .5rem;\n --radius-xl: .75rem;\n --radius-2xl: 1rem;\n --radius-3xl: 1.5rem;\n --ease-in-out: cubic-bezier(.4, 0, .2, 1);\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;\n --blur-xs: 4px;\n --blur-lg: 16px;\n --default-transition-duration: .15s;\n --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --text-xs: 12px;\n --text-xs--line-height: 16px;\n --text-xs--letter-spacing: -.02em;\n --text-sm: 14px;\n --text-sm--line-height: 20px;\n --text-sm--letter-spacing: -.02em;\n --text-md: 16px;\n --text-md--line-height: 20px;\n --text-md--letter-spacing: -.02em;\n --text-lg: 18px;\n --text-lg--line-height: 22px;\n --text-lg--letter-spacing: -.02em;\n --text-xl: 20px;\n --text-xl--line-height: 24px;\n --text-xl--letter-spacing: -.02em;\n --text-2xl: 24px;\n --text-2xl--line-height: 32px;\n --text-2xl--letter-spacing: -.02em;\n --text-3xl: 30px;\n --text-3xl--line-height: 38px;\n --text-3xl--letter-spacing: -.02em;\n --text-4xl: 36px;\n --text-4xl--line-height: 44px;\n --text-4xl--letter-spacing: -.02em;\n --text-5xl: 48px;\n --text-5xl--line-height: 60px;\n --text-5xl--letter-spacing: -.02em;\n --text-6xl: 60px;\n --text-6xl--line-height: 72px;\n --text-6xl--letter-spacing: -.02em;\n --text-7xl: 72px;\n --text-7xl--line-height: 90px;\n --text-7xl--letter-spacing: -.02em;\n --animate-accordion-down: accordion-down .2s ease-out;\n --animate-accordion-up: accordion-up .2s ease-out;\n --color-black: var(--color-black);\n --color-white: var(--color-white);\n --color-gray-25: var(--color-gray-25);\n --color-gray-50: var(--color-gray-50);\n --color-gray-100: var(--color-gray-100);\n --color-gray-200: var(--color-gray-200);\n --color-gray-300: var(--color-gray-300);\n --color-gray-400: var(--color-gray-400);\n --color-gray-500: var(--color-gray-500);\n --color-gray-600: var(--color-gray-600);\n --color-gray-700: var(--color-gray-700);\n --color-gray-800: var(--color-gray-800);\n --color-gray-900: var(--color-gray-900);\n --color-gray-1000: var(--color-gray-1000);\n --color-blue-25: var(--color-blue-25);\n --color-blue-50: var(--color-blue-50);\n --color-blue-100: var(--color-blue-100);\n --color-blue-200: var(--color-blue-200);\n --color-blue-300: var(--color-blue-300);\n --color-blue-400: var(--color-blue-400);\n --color-blue-500: var(--color-blue-500);\n --color-blue-600: var(--color-blue-600);\n --color-blue-700: var(--color-blue-700);\n --color-blue-800: var(--color-blue-800);\n --color-blue-900: var(--color-blue-900);\n --color-blue-1000: var(--color-blue-1000);\n --color-red-25: var(--color-red-25);\n --color-red-50: var(--color-red-50);\n --color-red-100: var(--color-red-100);\n --color-red-200: var(--color-red-200);\n --color-red-300: var(--color-red-300);\n --color-red-400: var(--color-red-400);\n --color-red-500: var(--color-red-500);\n --color-red-600: var(--color-red-600);\n --color-red-700: var(--color-red-700);\n --color-red-800: var(--color-red-800);\n --color-red-900: var(--color-red-900);\n --color-red-1000: var(--color-red-1000);\n --color-amber-25: var(--color-amber-25);\n --color-amber-50: var(--color-amber-50);\n --color-amber-100: var(--color-amber-100);\n --color-amber-200: var(--color-amber-200);\n --color-amber-300: var(--color-amber-300);\n --color-amber-400: var(--color-amber-400);\n --color-amber-500: var(--color-amber-500);\n --color-amber-600: var(--color-amber-600);\n --color-amber-700: var(--color-amber-700);\n --color-amber-800: var(--color-amber-800);\n --color-amber-900: var(--color-amber-900);\n --color-amber-1000: var(--color-amber-1000);\n --color-green-25: var(--color-green-25);\n --color-green-50: var(--color-green-50);\n --color-green-100: var(--color-green-100);\n --color-green-200: var(--color-green-200);\n --color-green-300: var(--color-green-300);\n --color-green-400: var(--color-green-400);\n --color-green-500: var(--color-green-500);\n --color-green-600: var(--color-green-600);\n --color-green-700: var(--color-green-700);\n --color-green-800: var(--color-green-800);\n --color-green-900: var(--color-green-900);\n --color-green-1000: var(--color-green-1000);\n --color-tomato-25: var(--color-tomato-25);\n --color-tomato-50: var(--color-tomato-50);\n --color-tomato-100: var(--color-tomato-100);\n --color-tomato-200: var(--color-tomato-200);\n --color-tomato-300: var(--color-tomato-300);\n --color-tomato-400: var(--color-tomato-400);\n --color-tomato-500: var(--color-tomato-500);\n --color-tomato-600: var(--color-tomato-600);\n --color-tomato-700: var(--color-tomato-700);\n --color-tomato-800: var(--color-tomato-800);\n --color-tomato-900: var(--color-tomato-900);\n --color-tomato-1000: var(--color-tomato-1000);\n --color-crimson-25: var(--color-crimson-25);\n --color-crimson-50: var(--color-crimson-50);\n --color-crimson-100: var(--color-crimson-100);\n --color-crimson-200: var(--color-crimson-200);\n --color-crimson-300: var(--color-crimson-300);\n --color-crimson-400: var(--color-crimson-400);\n --color-crimson-500: var(--color-crimson-500);\n --color-crimson-600: var(--color-crimson-600);\n --color-crimson-700: var(--color-crimson-700);\n --color-crimson-800: var(--color-crimson-800);\n --color-crimson-900: var(--color-crimson-900);\n --color-crimson-1000: var(--color-crimson-1000);\n --color-pink-25: var(--color-pink-25);\n --color-pink-50: var(--color-pink-50);\n --color-pink-100: var(--color-pink-100);\n --color-pink-200: var(--color-pink-200);\n --color-pink-300: var(--color-pink-300);\n --color-pink-400: var(--color-pink-400);\n --color-pink-500: var(--color-pink-500);\n --color-pink-600: var(--color-pink-600);\n --color-pink-700: var(--color-pink-700);\n --color-pink-800: var(--color-pink-800);\n --color-pink-900: var(--color-pink-900);\n --color-pink-1000: var(--color-pink-1000);\n --color-plum-25: var(--color-plum-25);\n --color-plum-50: var(--color-plum-50);\n --color-plum-100: var(--color-plum-100);\n --color-plum-200: var(--color-plum-200);\n --color-plum-300: var(--color-plum-300);\n --color-plum-400: var(--color-plum-400);\n --color-plum-500: var(--color-plum-500);\n --color-plum-600: var(--color-plum-600);\n --color-plum-700: var(--color-plum-700);\n --color-plum-800: var(--color-plum-800);\n --color-plum-900: var(--color-plum-900);\n --color-plum-1000: var(--color-plum-1000);\n --color-purple-25: var(--color-purple-25);\n --color-purple-50: var(--color-purple-50);\n --color-purple-100: var(--color-purple-100);\n --color-purple-200: var(--color-purple-200);\n --color-purple-300: var(--color-purple-300);\n --color-purple-400: var(--color-purple-400);\n --color-purple-500: var(--color-purple-500);\n --color-purple-600: var(--color-purple-600);\n --color-purple-700: var(--color-purple-700);\n --color-purple-800: var(--color-purple-800);\n --color-purple-900: var(--color-purple-900);\n --color-purple-1000: var(--color-purple-1000);\n --color-violet-25: var(--color-violet-25);\n --color-violet-50: var(--color-violet-50);\n --color-violet-100: var(--color-violet-100);\n --color-violet-200: var(--color-violet-200);\n --color-violet-300: var(--color-violet-300);\n --color-violet-400: var(--color-violet-400);\n --color-violet-500: var(--color-violet-500);\n --color-violet-600: var(--color-violet-600);\n --color-violet-700: var(--color-violet-700);\n --color-violet-800: var(--color-violet-800);\n --color-violet-900: var(--color-violet-900);\n --color-violet-1000: var(--color-violet-1000);\n --color-indigo-25: var(--color-indigo-25);\n --color-indigo-50: var(--color-indigo-50);\n --color-indigo-100: var(--color-indigo-100);\n --color-indigo-200: var(--color-indigo-200);\n --color-indigo-300: var(--color-indigo-300);\n --color-indigo-400: var(--color-indigo-400);\n --color-indigo-500: var(--color-indigo-500);\n --color-indigo-600: var(--color-indigo-600);\n --color-indigo-700: var(--color-indigo-700);\n --color-indigo-800: var(--color-indigo-800);\n --color-indigo-900: var(--color-indigo-900);\n --color-indigo-1000: var(--color-indigo-1000);\n --color-cyan-25: var(--color-cyan-25);\n --color-cyan-50: var(--color-cyan-50);\n --color-cyan-100: var(--color-cyan-100);\n --color-cyan-200: var(--color-cyan-200);\n --color-cyan-300: var(--color-cyan-300);\n --color-cyan-400: var(--color-cyan-400);\n --color-cyan-500: var(--color-cyan-500);\n --color-cyan-600: var(--color-cyan-600);\n --color-cyan-700: var(--color-cyan-700);\n --color-cyan-800: var(--color-cyan-800);\n --color-cyan-900: var(--color-cyan-900);\n --color-cyan-1000: var(--color-cyan-1000);\n --color-teal-25: var(--color-teal-25);\n --color-teal-50: var(--color-teal-50);\n --color-teal-100: var(--color-teal-100);\n --color-teal-200: var(--color-teal-200);\n --color-teal-300: var(--color-teal-300);\n --color-teal-400: var(--color-teal-400);\n --color-teal-500: var(--color-teal-500);\n --color-teal-600: var(--color-teal-600);\n --color-teal-700: var(--color-teal-700);\n --color-teal-800: var(--color-teal-800);\n --color-teal-900: var(--color-teal-900);\n --color-teal-1000: var(--color-teal-1000);\n --color-grass-25: var(--color-grass-25);\n --color-grass-50: var(--color-grass-50);\n --color-grass-100: var(--color-grass-100);\n --color-grass-200: var(--color-grass-200);\n --color-grass-300: var(--color-grass-300);\n --color-grass-400: var(--color-grass-400);\n --color-grass-500: var(--color-grass-500);\n --color-grass-600: var(--color-grass-600);\n --color-grass-700: var(--color-grass-700);\n --color-grass-800: var(--color-grass-800);\n --color-grass-900: var(--color-grass-900);\n --color-grass-1000: var(--color-grass-1000);\n --color-brown-25: var(--color-brown-25);\n --color-brown-50: var(--color-brown-50);\n --color-brown-100: var(--color-brown-100);\n --color-brown-200: var(--color-brown-200);\n --color-brown-300: var(--color-brown-300);\n --color-brown-400: var(--color-brown-400);\n --color-brown-500: var(--color-brown-500);\n --color-brown-600: var(--color-brown-600);\n --color-brown-700: var(--color-brown-700);\n --color-brown-800: var(--color-brown-800);\n --color-brown-900: var(--color-brown-900);\n --color-brown-1000: var(--color-brown-1000);\n --color-orange-25: var(--color-orange-25);\n --color-orange-50: var(--color-orange-50);\n --color-orange-100: var(--color-orange-100);\n --color-orange-200: var(--color-orange-200);\n --color-orange-300: var(--color-orange-300);\n --color-orange-400: var(--color-orange-400);\n --color-orange-500: var(--color-orange-500);\n --color-orange-600: var(--color-orange-600);\n --color-orange-700: var(--color-orange-700);\n --color-orange-800: var(--color-orange-800);\n --color-orange-900: var(--color-orange-900);\n --color-orange-1000: var(--color-orange-1000);\n --color-sky-25: var(--color-sky-25);\n --color-sky-50: var(--color-sky-50);\n --color-sky-100: var(--color-sky-100);\n --color-sky-200: var(--color-sky-200);\n --color-sky-300: var(--color-sky-300);\n --color-sky-400: var(--color-sky-400);\n --color-sky-500: var(--color-sky-500);\n --color-sky-600: var(--color-sky-600);\n --color-sky-700: var(--color-sky-700);\n --color-sky-800: var(--color-sky-800);\n --color-sky-900: var(--color-sky-900);\n --color-sky-1000: var(--color-sky-1000);\n --color-mint-25: var(--color-mint-25);\n --color-mint-50: var(--color-mint-50);\n --color-mint-100: var(--color-mint-100);\n --color-mint-200: var(--color-mint-200);\n --color-mint-300: var(--color-mint-300);\n --color-mint-400: var(--color-mint-400);\n --color-mint-500: var(--color-mint-500);\n --color-mint-600: var(--color-mint-600);\n --color-mint-700: var(--color-mint-700);\n --color-mint-800: var(--color-mint-800);\n --color-mint-900: var(--color-mint-900);\n --color-mint-1000: var(--color-mint-1000);\n --color-lime-25: var(--color-lime-25);\n --color-lime-50: var(--color-lime-50);\n --color-lime-100: var(--color-lime-100);\n --color-lime-200: var(--color-lime-200);\n --color-lime-300: var(--color-lime-300);\n --color-lime-400: var(--color-lime-400);\n --color-lime-500: var(--color-lime-500);\n --color-lime-600: var(--color-lime-600);\n --color-lime-700: var(--color-lime-700);\n --color-lime-800: var(--color-lime-800);\n --color-lime-900: var(--color-lime-900);\n --color-lime-1000: var(--color-lime-1000);\n --color-yellow-25: var(--color-yellow-25);\n --color-yellow-50: var(--color-yellow-50);\n --color-yellow-100: var(--color-yellow-100);\n --color-yellow-200: var(--color-yellow-200);\n --color-yellow-300: var(--color-yellow-300);\n --color-yellow-400: var(--color-yellow-400);\n --color-yellow-500: var(--color-yellow-500);\n --color-yellow-600: var(--color-yellow-600);\n --color-yellow-700: var(--color-yellow-700);\n --color-yellow-800: var(--color-yellow-800);\n --color-yellow-900: var(--color-yellow-900);\n --color-yellow-1000: var(--color-yellow-1000);\n --color-gold-25: var(--color-gold-25);\n --color-gold-50: var(--color-gold-50);\n --color-gold-100: var(--color-gold-100);\n --color-gold-200: var(--color-gold-200);\n --color-gold-300: var(--color-gold-300);\n --color-gold-400: var(--color-gold-400);\n --color-gold-500: var(--color-gold-500);\n --color-gold-600: var(--color-gold-600);\n --color-gold-700: var(--color-gold-700);\n --color-gold-800: var(--color-gold-800);\n --color-gold-900: var(--color-gold-900);\n --color-gold-1000: var(--color-gold-1000);\n --color-bronze-25: var(--color-bronze-25);\n --color-bronze-50: var(--color-bronze-50);\n --color-bronze-100: var(--color-bronze-100);\n --color-bronze-200: var(--color-bronze-200);\n --color-bronze-300: var(--color-bronze-300);\n --color-bronze-400: var(--color-bronze-400);\n --color-bronze-500: var(--color-bronze-500);\n --color-bronze-600: var(--color-bronze-600);\n --color-bronze-700: var(--color-bronze-700);\n --color-bronze-800: var(--color-bronze-800);\n --color-bronze-900: var(--color-bronze-900);\n --color-bronze-1000: var(--color-bronze-1000);\n --animate-flash: flash .8s forwards;\n --background-image-pattern: linear-gradient(180deg, transparent 0%, #fff 100%), linear-gradient(0deg, transparent 0%, #ffffffbf 100%), url(\"data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M40 40V41H41V40H40ZM39 0V40H41V0H39ZM40 39H0V41H40V39Z' fill='%23E8E8E8' mask='url(%23path-1-inside-1_124_242)'/%3E%3C/svg%3E\");\n }\n}\n\n@layer base {\n *, :after, :before, ::backdrop {\n box-sizing: border-box;\n border: 0 solid;\n margin: 0;\n padding: 0;\n }\n\n ::file-selector-button {\n box-sizing: border-box;\n border: 0 solid;\n margin: 0;\n padding: 0;\n }\n\n html, :host {\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n line-height: 1.5;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n\n abbr:where([title]) {\n text-decoration: underline dotted;\n }\n\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n -webkit-text-decoration: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n\n b, strong {\n font-weight: bolder;\n }\n\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n\n small {\n font-size: 80%;\n }\n\n sub, sup {\n vertical-align: baseline;\n font-size: 75%;\n line-height: 0;\n position: relative;\n }\n\n sub {\n bottom: -.25em;\n }\n\n sup {\n top: -.5em;\n }\n\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n\n :-moz-focusring {\n outline: auto;\n }\n\n progress {\n vertical-align: baseline;\n }\n\n summary {\n display: list-item;\n }\n\n ol, ul, menu {\n list-style: none;\n }\n\n img, svg, video, canvas, audio, iframe, embed, object {\n vertical-align: middle;\n display: block;\n }\n\n img, video {\n max-width: 100%;\n height: auto;\n }\n\n button, input, select, optgroup, textarea {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n opacity: 1;\n background-color: #0000;\n border-radius: 0;\n }\n\n ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n opacity: 1;\n background-color: #0000;\n border-radius: 0;\n }\n\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n\n ::placeholder {\n opacity: 1;\n }\n\n @supports (not ((-webkit-appearance: -apple-pay-button))) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentColor;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n ::placeholder {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n\n textarea {\n resize: vertical;\n }\n\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n\n ::-webkit-datetime-edit {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-year-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-month-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-day-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-hour-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-minute-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-second-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-millisecond-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n\n :-moz-ui-invalid {\n box-shadow: none;\n }\n\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]) {\n appearance: button;\n }\n\n ::file-selector-button {\n appearance: button;\n }\n\n ::-webkit-inner-spin-button {\n height: auto;\n }\n\n ::-webkit-outer-spin-button {\n height: auto;\n }\n\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n\n button:not(:disabled), [role=\"button\"]:not(:disabled) {\n cursor: pointer;\n }\n}\n\n@layer components;\n\n@layer utilities {\n .pointer-events-auto {\n pointer-events: auto;\n }\n\n .pointer-events-none {\n pointer-events: none;\n }\n\n .invisible {\n visibility: hidden;\n }\n\n .visible {\n visibility: visible;\n }\n\n .sr-only {\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n position: absolute;\n overflow: hidden;\n }\n\n .absolute {\n position: absolute;\n }\n\n .fixed {\n position: fixed;\n }\n\n .relative {\n position: relative;\n }\n\n .static {\n position: static;\n }\n\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n\n .inset-x-0 {\n inset-inline: calc(var(--spacing) * 0);\n }\n\n .inset-y-0 {\n inset-block: calc(var(--spacing) * 0);\n }\n\n .-top-12 {\n top: calc(var(--spacing) * -12);\n }\n\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n\n .top-1\\/2 {\n top: 50%;\n }\n\n .top-2 {\n top: calc(var(--spacing) * 2);\n }\n\n .top-6 {\n top: calc(var(--spacing) * 6);\n }\n\n .top-8 {\n top: calc(var(--spacing) * 8);\n }\n\n .top-\\[50\\%\\] {\n top: 50%;\n }\n\n .top-auto {\n top: auto;\n }\n\n .-right-12 {\n right: calc(var(--spacing) * -12);\n }\n\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n\n .right-1 {\n right: calc(var(--spacing) * 1);\n }\n\n .right-6 {\n right: calc(var(--spacing) * 6);\n }\n\n .-bottom-12 {\n bottom: calc(var(--spacing) * -12);\n }\n\n .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n }\n\n .bottom-\\[-15px\\] {\n bottom: -15px;\n }\n\n .bottom-\\[1px\\] {\n bottom: 1px;\n }\n\n .-left-12 {\n left: calc(var(--spacing) * -12);\n }\n\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n\n .left-1 {\n left: calc(var(--spacing) * 1);\n }\n\n .left-1\\/2, .left-\\[50\\%\\] {\n left: 50%;\n }\n\n .z-10 {\n z-index: 10;\n }\n\n .z-16 {\n z-index: 16;\n }\n\n .z-20 {\n z-index: 20;\n }\n\n .z-30 {\n z-index: 30;\n }\n\n .z-50 {\n z-index: 50;\n }\n\n .z-98 {\n z-index: 98;\n }\n\n .z-100 {\n z-index: 100;\n }\n\n .z-150 {\n z-index: 150;\n }\n\n .z-\\[15\\] {\n z-index: 15;\n }\n\n .z-\\[21\\] {\n z-index: 21;\n }\n\n .container {\n width: 100%;\n }\n\n @media (width >= 40rem) {\n .container {\n max-width: 40rem;\n }\n }\n\n @media (width >= 48rem) {\n .container {\n max-width: 48rem;\n }\n }\n\n @media (width >= 64rem) {\n .container {\n max-width: 64rem;\n }\n }\n\n @media (width >= 80rem) {\n .container {\n max-width: 80rem;\n }\n }\n\n @media (width >= 96rem) {\n .container {\n max-width: 96rem;\n }\n }\n\n .m-auto {\n margin: auto;\n }\n\n .-mx-1 {\n margin-inline: calc(var(--spacing) * -1);\n }\n\n .mx-1 {\n margin-inline: calc(var(--spacing) * 1);\n }\n\n .mx-auto {\n margin-inline: auto;\n }\n\n .my-1 {\n margin-block: calc(var(--spacing) * 1);\n }\n\n .-mt-4 {\n margin-top: calc(var(--spacing) * -4);\n }\n\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n\n .mt-\\[14px\\] {\n margin-top: 14px;\n }\n\n .mt-auto {\n margin-top: auto;\n }\n\n .-mr-2 {\n margin-right: calc(var(--spacing) * -2);\n }\n\n .mr-2\\.5 {\n margin-right: calc(var(--spacing) * 2.5);\n }\n\n .mr-7 {\n margin-right: calc(var(--spacing) * 7);\n }\n\n .mr-9 {\n margin-right: calc(var(--spacing) * 9);\n }\n\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n\n .-ml-4 {\n margin-left: calc(var(--spacing) * -4);\n }\n\n .ml-1 {\n margin-left: calc(var(--spacing) * 1);\n }\n\n .box-border {\n box-sizing: border-box;\n }\n\n .block {\n display: block;\n }\n\n .contents {\n display: contents;\n }\n\n .flex {\n display: flex;\n }\n\n .grid {\n display: grid;\n }\n\n .hidden {\n display: none;\n }\n\n .inline-block {\n display: inline-block;\n }\n\n .inline-flex {\n display: inline-flex;\n }\n\n .table {\n display: table;\n }\n\n .aspect-square {\n aspect-ratio: 1;\n }\n\n .h-1\\.5 {\n height: calc(var(--spacing) * 1.5);\n }\n\n .h-1\\/2 {\n height: 50%;\n }\n\n .h-1\\/3 {\n height: 33.3333%;\n }\n\n .h-2 {\n height: calc(var(--spacing) * 2);\n }\n\n .h-3 {\n height: calc(var(--spacing) * 3);\n }\n\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n\n .h-9 {\n height: calc(var(--spacing) * 9);\n }\n\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n\n .h-12 {\n height: calc(var(--spacing) * 12);\n }\n\n .h-14 {\n height: calc(var(--spacing) * 14);\n }\n\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n\n .h-\\[1px\\] {\n height: 1px;\n }\n\n .h-\\[8px\\] {\n height: 8px;\n }\n\n .h-\\[16px\\] {\n height: 16px;\n }\n\n .h-\\[24px\\] {\n height: 24px;\n }\n\n .h-\\[36px\\] {\n height: 36px;\n }\n\n .h-\\[45px\\] {\n height: 45px;\n }\n\n .h-\\[52px\\] {\n height: 52px;\n }\n\n .h-\\[54px\\] {\n height: 54px;\n }\n\n .h-\\[56px\\] {\n height: 56px;\n }\n\n .h-\\[70px\\] {\n height: 70px;\n }\n\n .h-\\[72px\\] {\n height: 72px;\n }\n\n .h-\\[163px\\] {\n height: 163px;\n }\n\n .h-\\[184px\\] {\n height: 184px;\n }\n\n .h-\\[200px\\] {\n height: 200px;\n }\n\n .h-\\[250px\\] {\n height: 250px;\n }\n\n .h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n }\n\n .h-auto {\n height: auto;\n }\n\n .h-auto\\! {\n height: auto !important;\n }\n\n .h-dvh {\n height: 100dvh;\n }\n\n .h-full {\n height: 100%;\n }\n\n .h-px {\n height: 1px;\n }\n\n .max-h-\\[70px\\] {\n max-height: 70px;\n }\n\n .max-h-\\[75dvh\\] {\n max-height: 75dvh;\n }\n\n .max-h-\\[90dvh\\] {\n max-height: 90dvh;\n }\n\n .max-h-\\[90vh\\] {\n max-height: 90vh;\n }\n\n .max-h-\\[180px\\] {\n max-height: 180px;\n }\n\n .max-h-\\[300px\\] {\n max-height: 300px;\n }\n\n .max-h-full {\n max-height: 100%;\n }\n\n .max-h-screen {\n max-height: 100vh;\n }\n\n .min-h-0 {\n min-height: calc(var(--spacing) * 0);\n }\n\n .min-h-9 {\n min-height: calc(var(--spacing) * 9);\n }\n\n .min-h-\\[80px\\] {\n min-height: 80px;\n }\n\n .w-1\\/3 {\n width: 33.3333%;\n }\n\n .w-1\\/4 {\n width: 25%;\n }\n\n .w-2 {\n width: calc(var(--spacing) * 2);\n }\n\n .w-3 {\n width: calc(var(--spacing) * 3);\n }\n\n .w-3\\/4 {\n width: 75%;\n }\n\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n\n .w-4\\/5 {\n width: 80%;\n }\n\n .w-8 {\n width: calc(var(--spacing) * 8);\n }\n\n .w-10 {\n width: calc(var(--spacing) * 10);\n }\n\n .w-12 {\n width: calc(var(--spacing) * 12);\n }\n\n .w-14 {\n width: calc(var(--spacing) * 14);\n }\n\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n\n .w-72 {\n width: calc(var(--spacing) * 72);\n }\n\n .w-\\[1px\\] {\n width: 1px;\n }\n\n .w-\\[8px\\] {\n width: 8px;\n }\n\n .w-\\[16px\\] {\n width: 16px;\n }\n\n .w-\\[24px\\] {\n width: 24px;\n }\n\n .w-\\[36px\\] {\n width: 36px;\n }\n\n .w-\\[42px\\] {\n width: 42px;\n }\n\n .w-\\[45px\\] {\n width: 45px;\n }\n\n .w-\\[54px\\] {\n width: 54px;\n }\n\n .w-\\[56px\\] {\n width: 56px;\n }\n\n .w-\\[70px\\] {\n width: 70px;\n }\n\n .w-\\[72px\\] {\n width: 72px;\n }\n\n .w-\\[232px\\] {\n width: 232px;\n }\n\n .w-\\[240px\\] {\n width: 240px;\n }\n\n .w-\\[250px\\] {\n width: 250px;\n }\n\n .w-auto {\n width: auto;\n }\n\n .w-dvh {\n width: 100dvh;\n }\n\n .w-fit {\n width: fit-content;\n }\n\n .w-full {\n width: 100%;\n }\n\n .w-max {\n width: max-content;\n }\n\n .max-w-\\[70px\\] {\n max-width: 70px;\n }\n\n .max-w-\\[90vw\\] {\n max-width: 90vw;\n }\n\n .max-w-\\[400px\\] {\n max-width: 400px;\n }\n\n .max-w-\\[416px\\] {\n max-width: 416px;\n }\n\n .max-w-\\[500px\\] {\n max-width: 500px;\n }\n\n .max-w-\\[540px\\] {\n max-width: 540px;\n }\n\n .max-w-full {\n max-width: 100%;\n }\n\n .min-w-0 {\n min-width: calc(var(--spacing) * 0);\n }\n\n .min-w-\\[144px\\] {\n min-width: 144px;\n }\n\n .min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n }\n\n .flex-1 {\n flex: 1;\n }\n\n .shrink-0 {\n flex-shrink: 0;\n }\n\n .grow {\n flex-grow: 1;\n }\n\n .grow-0 {\n flex-grow: 0;\n }\n\n .basis-full {\n flex-basis: 100%;\n }\n\n .caption-bottom {\n caption-side: bottom;\n }\n\n .border-collapse {\n border-collapse: collapse;\n }\n\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .translate-x-0\\.5 {\n --tw-translate-x: calc(var(--spacing) * .5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .translate-x-\\[-50\\%\\] {\n --tw-translate-x: -50%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .translate-y-0 {\n --tw-translate-y: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .translate-y-\\[-50\\%\\] {\n --tw-translate-y: -50%;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .scale-x-\\[-1\\] {\n --tw-scale-x: -1;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n\n .transform {\n transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, );\n }\n\n .animate-\\[flash_0\\.8s_forwards\\] {\n animation: .8s forwards flash;\n }\n\n .animate-flash {\n animation: var(--animate-flash);\n }\n\n .animate-pulse {\n animation: var(--animate-pulse);\n }\n\n .animate-spin {\n animation: var(--animate-spin);\n }\n\n .cursor-default {\n cursor: default;\n }\n\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n\n .cursor-pointer {\n cursor: pointer;\n }\n\n .list-outside {\n list-style-position: outside;\n }\n\n .list-disc {\n list-style-type: disc;\n }\n\n .appearance-none {\n appearance: none;\n }\n\n .flex-col {\n flex-direction: column;\n }\n\n .flex-col-reverse {\n flex-direction: column-reverse;\n }\n\n .flex-row {\n flex-direction: row;\n }\n\n .flex-row-reverse {\n flex-direction: row-reverse;\n }\n\n .flex-wrap {\n flex-wrap: wrap;\n }\n\n .content-center {\n align-content: center;\n }\n\n .items-center {\n align-items: center;\n }\n\n .items-start {\n align-items: flex-start;\n }\n\n .justify-between {\n justify-content: space-between;\n }\n\n .justify-center {\n justify-content: center;\n }\n\n .justify-end {\n justify-content: flex-end;\n }\n\n .justify-start {\n justify-content: flex-start;\n }\n\n .gap-0\\.5 {\n gap: calc(var(--spacing) * .5);\n }\n\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n\n .gap-2\\.5 {\n gap: calc(var(--spacing) * 2.5);\n }\n\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n\n .gap-6 {\n gap: calc(var(--spacing) * 6);\n }\n\n .gap-8 {\n gap: calc(var(--spacing) * 8);\n }\n\n .gap-12 {\n gap: calc(var(--spacing) * 12);\n }\n\n .gap-\\[15px\\] {\n gap: 15px;\n }\n\n .gap-\\[inherit\\] {\n gap: inherit;\n }\n\n :where(.space-y-1 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n :where(.space-y-1\\.5 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n :where(.space-y-4 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n :where(.space-y-5 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n :where(.space-y-6 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n :where(.space-x-1 > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 1) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-x-reverse)));\n }\n\n :where(.divide-x > :not(:last-child)) {\n --tw-divide-x-reverse: 0;\n border-inline-style: var(--tw-border-style);\n border-inline-start-width: calc(1px * var(--tw-divide-x-reverse));\n border-inline-end-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));\n }\n\n :where(.divide-y > :not(:last-child)) {\n --tw-divide-y-reverse: 0;\n border-bottom-style: var(--tw-border-style);\n border-top-style: var(--tw-border-style);\n border-top-width: calc(1px * var(--tw-divide-y-reverse));\n border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n }\n\n :where(.divide-gray-200 > :not(:last-child)) {\n border-color: var(--color-gray-200);\n }\n\n .self-center {\n align-self: center;\n }\n\n .self-end {\n align-self: flex-end;\n }\n\n .self-start {\n align-self: flex-start;\n }\n\n .justify-self-center {\n justify-self: center;\n }\n\n .truncate {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n }\n\n .overflow-auto {\n overflow: auto;\n }\n\n .overflow-hidden {\n overflow: hidden;\n }\n\n .overflow-scroll {\n overflow: scroll;\n }\n\n .overflow-visible {\n overflow: visible;\n }\n\n .overflow-x-hidden {\n overflow-x: hidden;\n }\n\n .overflow-y-auto {\n overflow-y: auto;\n }\n\n .overflow-y-scroll {\n overflow-y: scroll;\n }\n\n .overscroll-y-none {\n overscroll-behavior-y: none;\n }\n\n .rounded-2xl {\n border-radius: var(--radius-2xl);\n }\n\n .rounded-3xl {\n border-radius: var(--radius-3xl);\n }\n\n .rounded-\\[3px\\] {\n border-radius: 3px;\n }\n\n .rounded-\\[4px\\] {\n border-radius: 4px;\n }\n\n .rounded-\\[6px\\] {\n border-radius: 6px;\n }\n\n .rounded-\\[8px\\] {\n border-radius: 8px;\n }\n\n .rounded-\\[10px\\] {\n border-radius: 10px;\n }\n\n .rounded-\\[14px\\] {\n border-radius: 14px;\n }\n\n .rounded-\\[inherit\\] {\n border-radius: inherit;\n }\n\n .rounded-full {\n border-radius: 3.40282e38px;\n }\n\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n\n .rounded-md {\n border-radius: var(--radius-md);\n }\n\n .rounded-none {\n border-radius: 0;\n }\n\n .rounded-sm {\n border-radius: var(--radius-sm);\n }\n\n .rounded-xl {\n border-radius: var(--radius-xl);\n }\n\n .rounded-t-3xl {\n border-top-left-radius: var(--radius-3xl);\n border-top-right-radius: var(--radius-3xl);\n }\n\n .rounded-b-3xl {\n border-bottom-right-radius: var(--radius-3xl);\n border-bottom-left-radius: var(--radius-3xl);\n }\n\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n\n .border-0 {\n border-style: var(--tw-border-style);\n border-width: 0;\n }\n\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n\n .border-l {\n border-left-style: var(--tw-border-style);\n border-left-width: 1px;\n }\n\n .border-none {\n --tw-border-style: none;\n border-style: none;\n }\n\n .border-amber-700 {\n border-color: var(--color-amber-700);\n }\n\n .border-black\\/10 {\n border-color: var(--color-black);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .border-black\\/10 {\n border-color: color-mix(in oklab, var(--color-black) 10%, transparent);\n }\n }\n\n .border-blue-700 {\n border-color: var(--color-blue-700);\n }\n\n .border-gray-100 {\n border-color: var(--color-gray-100);\n }\n\n .border-gray-200 {\n border-color: var(--color-gray-200);\n }\n\n .border-gray-300 {\n border-color: var(--color-gray-300);\n }\n\n .border-gray-400 {\n border-color: var(--color-gray-400);\n }\n\n .border-gray-600 {\n border-color: var(--color-gray-600);\n }\n\n .border-red-700 {\n border-color: var(--color-red-700);\n }\n\n .border-transparent {\n border-color: #0000;\n }\n\n .border-white\\/10 {\n border-color: var(--color-white);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .border-white\\/10 {\n border-color: color-mix(in oklab, var(--color-white) 10%, transparent);\n }\n }\n\n .bg-amber-100 {\n background-color: var(--color-amber-100);\n }\n\n .bg-amber-200 {\n background-color: var(--color-amber-200);\n }\n\n .bg-amber-700 {\n background-color: var(--color-amber-700);\n }\n\n .bg-black, .bg-black\\/25 {\n background-color: var(--color-black);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-black\\/25 {\n background-color: color-mix(in oklab, var(--color-black) 25%, transparent);\n }\n }\n\n .bg-black\\/50 {\n background-color: var(--color-black);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-black\\/50 {\n background-color: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n }\n\n .bg-black\\/80 {\n background-color: var(--color-black);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-black\\/80 {\n background-color: color-mix(in oklab, var(--color-black) 80%, transparent);\n }\n }\n\n .bg-blue-100 {\n background-color: var(--color-blue-100);\n }\n\n .bg-blue-300 {\n background-color: var(--color-blue-300);\n }\n\n .bg-blue-700 {\n background-color: var(--color-blue-700);\n }\n\n .bg-bronze-300 {\n background-color: var(--color-bronze-300);\n }\n\n .bg-brown-100 {\n background-color: var(--color-brown-100);\n }\n\n .bg-brown-300 {\n background-color: var(--color-brown-300);\n }\n\n .bg-brown-700 {\n background-color: var(--color-brown-700);\n }\n\n .bg-crimson-100 {\n background-color: var(--color-crimson-100);\n }\n\n .bg-crimson-300 {\n background-color: var(--color-crimson-300);\n }\n\n .bg-crimson-700 {\n background-color: var(--color-crimson-700);\n }\n\n .bg-cyan-100 {\n background-color: var(--color-cyan-100);\n }\n\n .bg-cyan-300 {\n background-color: var(--color-cyan-300);\n }\n\n .bg-cyan-700 {\n background-color: var(--color-cyan-700);\n }\n\n .bg-gold-300 {\n background-color: var(--color-gold-300);\n }\n\n .bg-grass-300 {\n background-color: var(--color-grass-300);\n }\n\n .bg-gray-25, .bg-gray-25\\/50 {\n background-color: var(--color-gray-25);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-gray-25\\/50 {\n background-color: color-mix(in oklab, var(--color-gray-25) 50%, transparent);\n }\n }\n\n .bg-gray-50 {\n background-color: var(--color-gray-50);\n }\n\n .bg-gray-100, .bg-gray-100\\/50 {\n background-color: var(--color-gray-100);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-gray-100\\/50 {\n background-color: color-mix(in oklab, var(--color-gray-100) 50%, transparent);\n }\n }\n\n .bg-gray-200 {\n background-color: var(--color-gray-200);\n }\n\n .bg-gray-300 {\n background-color: var(--color-gray-300);\n }\n\n .bg-gray-600 {\n background-color: var(--color-gray-600);\n }\n\n .bg-gray-800\\/60 {\n background-color: var(--color-gray-800);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-gray-800\\/60 {\n background-color: color-mix(in oklab, var(--color-gray-800) 60%, transparent);\n }\n }\n\n .bg-gray-900 {\n background-color: var(--color-gray-900);\n }\n\n .bg-green-100 {\n background-color: var(--color-green-100);\n }\n\n .bg-green-300 {\n background-color: var(--color-green-300);\n }\n\n .bg-green-700 {\n background-color: var(--color-green-700);\n }\n\n .bg-indigo-300 {\n background-color: var(--color-indigo-300);\n }\n\n .bg-inherit {\n background-color: inherit;\n }\n\n .bg-lime-300 {\n background-color: var(--color-lime-300);\n }\n\n .bg-orange-100 {\n background-color: var(--color-orange-100);\n }\n\n .bg-orange-700 {\n background-color: var(--color-orange-700);\n }\n\n .bg-plum-300 {\n background-color: var(--color-plum-300);\n }\n\n .bg-purple-300 {\n background-color: var(--color-purple-300);\n }\n\n .bg-red-100 {\n background-color: var(--color-red-100);\n }\n\n .bg-red-300 {\n background-color: var(--color-red-300);\n }\n\n .bg-red-700, .bg-red-700\\/60 {\n background-color: var(--color-red-700);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-red-700\\/60 {\n background-color: color-mix(in oklab, var(--color-red-700) 60%, transparent);\n }\n }\n\n .bg-teal-100 {\n background-color: var(--color-teal-100);\n }\n\n .bg-teal-300 {\n background-color: var(--color-teal-300);\n }\n\n .bg-teal-700 {\n background-color: var(--color-teal-700);\n }\n\n .bg-transparent {\n background-color: #0000;\n }\n\n .bg-violet-100 {\n background-color: var(--color-violet-100);\n }\n\n .bg-violet-300 {\n background-color: var(--color-violet-300);\n }\n\n .bg-violet-700 {\n background-color: var(--color-violet-700);\n }\n\n .bg-white, .bg-white\\/60 {\n background-color: var(--color-white);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .bg-white\\/60 {\n background-color: color-mix(in oklab, var(--color-white) 60%, transparent);\n }\n }\n\n .bg-yellow-300 {\n background-color: var(--color-yellow-300);\n }\n\n .bg-cover {\n background-size: cover;\n }\n\n .bg-no-repeat {\n background-repeat: no-repeat;\n }\n\n .fill-\\[inherit\\] {\n fill: inherit;\n }\n\n .fill-gray-400 {\n fill: var(--color-gray-400);\n }\n\n .fill-white {\n fill: var(--color-white);\n }\n\n .object-contain {\n object-fit: contain;\n }\n\n .object-cover {\n object-fit: cover;\n }\n\n .p-0 {\n padding: calc(var(--spacing) * 0);\n }\n\n .p-1 {\n padding: calc(var(--spacing) * 1);\n }\n\n .p-1\\.5 {\n padding: calc(var(--spacing) * 1.5);\n }\n\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n\n .p-2\\.5 {\n padding: calc(var(--spacing) * 2.5);\n }\n\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n\n .p-5 {\n padding: calc(var(--spacing) * 5);\n }\n\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n\n .p-8 {\n padding: calc(var(--spacing) * 8);\n }\n\n .p-\\[2px\\] {\n padding: 2px;\n }\n\n .p-\\[11px\\] {\n padding: 11px;\n }\n\n .px-1 {\n padding-inline: calc(var(--spacing) * 1);\n }\n\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n\n .px-2\\.5 {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n\n .px-3\\.5 {\n padding-inline: calc(var(--spacing) * 3.5);\n }\n\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n\n .py-0\\.5 {\n padding-block: calc(var(--spacing) * .5);\n }\n\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n\n .py-2\\.5 {\n padding-block: calc(var(--spacing) * 2.5);\n }\n\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n\n .py-12 {\n padding-block: calc(var(--spacing) * 12);\n }\n\n .pt-1 {\n padding-top: calc(var(--spacing) * 1);\n }\n\n .pt-2 {\n padding-top: calc(var(--spacing) * 2);\n }\n\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n\n .pr-1 {\n padding-right: calc(var(--spacing) * 1);\n }\n\n .pr-2 {\n padding-right: calc(var(--spacing) * 2);\n }\n\n .pr-2\\.5 {\n padding-right: calc(var(--spacing) * 2.5);\n }\n\n .pr-3\\.5 {\n padding-right: calc(var(--spacing) * 3.5);\n }\n\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n\n .pb-2\\.5 {\n padding-bottom: calc(var(--spacing) * 2.5);\n }\n\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n\n .pl-3 {\n padding-left: calc(var(--spacing) * 3);\n }\n\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n\n .pl-6 {\n padding-left: calc(var(--spacing) * 6);\n }\n\n .text-center {\n text-align: center;\n }\n\n .text-left {\n text-align: left;\n }\n\n .align-middle {\n vertical-align: middle;\n }\n\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n letter-spacing: var(--tw-tracking, var(--text-2xl--letter-spacing));\n }\n\n .text-4xl {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n letter-spacing: var(--tw-tracking, var(--text-4xl--letter-spacing));\n }\n\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n letter-spacing: var(--tw-tracking, var(--text-lg--letter-spacing));\n }\n\n .text-md {\n font-size: var(--text-md);\n line-height: var(--tw-leading, var(--text-md--line-height));\n letter-spacing: var(--tw-tracking, var(--text-md--letter-spacing));\n }\n\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n letter-spacing: var(--tw-tracking, var(--text-sm--letter-spacing));\n }\n\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n letter-spacing: var(--tw-tracking, var(--text-xl--letter-spacing));\n }\n\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n letter-spacing: var(--tw-tracking, var(--text-xs--letter-spacing));\n }\n\n .text-\\[10px\\] {\n font-size: 10px;\n }\n\n .text-\\[30px\\] {\n font-size: 30px;\n }\n\n .text-\\[96px\\] {\n font-size: 96px;\n }\n\n .leading-4 {\n --tw-leading: calc(var(--spacing) * 4);\n line-height: calc(var(--spacing) * 4);\n }\n\n .leading-\\[15px\\] {\n --tw-leading: 15px;\n line-height: 15px;\n }\n\n .leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n\n .font-light {\n --tw-font-weight: var(--font-weight-light);\n font-weight: var(--font-weight-light);\n }\n\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n\n .font-normal {\n --tw-font-weight: var(--font-weight-normal);\n font-weight: var(--font-weight-normal);\n }\n\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n\n .break-words {\n overflow-wrap: break-word;\n }\n\n .wrap-anywhere {\n overflow-wrap: anywhere;\n }\n\n .whitespace-normal {\n white-space: normal;\n }\n\n .whitespace-nowrap {\n white-space: nowrap;\n }\n\n .whitespace-pre-line {\n white-space: pre-line;\n }\n\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n\n .text-\\[inherit\\] {\n color: inherit;\n }\n\n .text-amber-700 {\n color: var(--color-amber-700);\n }\n\n .text-black, .text-black\\/50 {\n color: var(--color-black);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .text-black\\/50 {\n color: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n }\n\n .text-blue-700 {\n color: var(--color-blue-700);\n }\n\n .text-bronze-700 {\n color: var(--color-bronze-700);\n }\n\n .text-brown-700 {\n color: var(--color-brown-700);\n }\n\n .text-crimson-700 {\n color: var(--color-crimson-700);\n }\n\n .text-current {\n color: currentColor;\n }\n\n .text-cyan-700 {\n color: var(--color-cyan-700);\n }\n\n .text-gold-700 {\n color: var(--color-gold-700);\n }\n\n .text-grass-700 {\n color: var(--color-grass-700);\n }\n\n .text-gray-200 {\n color: var(--color-gray-200);\n }\n\n .text-gray-400 {\n color: var(--color-gray-400);\n }\n\n .text-gray-700 {\n color: var(--color-gray-700);\n }\n\n .text-gray-900 {\n color: var(--color-gray-900);\n }\n\n .text-gray-1000 {\n color: var(--color-gray-1000);\n }\n\n .text-green-700 {\n color: var(--color-green-700);\n }\n\n .text-indigo-700 {\n color: var(--color-indigo-700);\n }\n\n .text-inherit {\n color: inherit;\n }\n\n .text-lime-700 {\n color: var(--color-lime-700);\n }\n\n .text-orange-700 {\n color: var(--color-orange-700);\n }\n\n .text-plum-700 {\n color: var(--color-plum-700);\n }\n\n .text-purple-700 {\n color: var(--color-purple-700);\n }\n\n .text-red-600 {\n color: var(--color-red-600);\n }\n\n .text-red-700 {\n color: var(--color-red-700);\n }\n\n .text-teal-700 {\n color: var(--color-teal-700);\n }\n\n .text-violet-700 {\n color: var(--color-violet-700);\n }\n\n .text-white {\n color: var(--color-white);\n }\n\n .text-yellow-700 {\n color: var(--color-yellow-700);\n }\n\n .underline {\n text-decoration-line: underline;\n }\n\n .antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n\n .opacity-40 {\n opacity: .4;\n }\n\n .opacity-50 {\n opacity: .5;\n }\n\n .opacity-60 {\n opacity: .6;\n }\n\n .shadow-dropdown-sm {\n --tw-shadow: 0px 1px 2px 0px var(--tw-shadow-color, #1018280f), 0px 1px 3px 0px var(--tw-shadow-color, #1018281a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-md {\n --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, #0000001a), 0 2px 4px -2px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-xs {\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, #0000000d);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .ring-1 {\n --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .ring-2 {\n --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .ring-\\[3px\\] {\n --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .ring-amber-300 {\n --tw-ring-color: var(--color-amber-300);\n }\n\n .ring-amber-700 {\n --tw-ring-color: var(--color-amber-700);\n }\n\n .ring-black {\n --tw-ring-color: var(--color-black);\n }\n\n .ring-blue-300 {\n --tw-ring-color: var(--color-blue-300);\n }\n\n .ring-blue-700 {\n --tw-ring-color: var(--color-blue-700);\n }\n\n .ring-brown-300 {\n --tw-ring-color: var(--color-brown-300);\n }\n\n .ring-crimson-300 {\n --tw-ring-color: var(--color-crimson-300);\n }\n\n .ring-cyan-300 {\n --tw-ring-color: var(--color-cyan-300);\n }\n\n .ring-gray-100 {\n --tw-ring-color: var(--color-gray-100);\n }\n\n .ring-gray-200 {\n --tw-ring-color: var(--color-gray-200);\n }\n\n .ring-gray-400 {\n --tw-ring-color: var(--color-gray-400);\n }\n\n .ring-green-300 {\n --tw-ring-color: var(--color-green-300);\n }\n\n .ring-green-700 {\n --tw-ring-color: var(--color-green-700);\n }\n\n .ring-orange-300 {\n --tw-ring-color: var(--color-orange-300);\n }\n\n .ring-red-300 {\n --tw-ring-color: var(--color-red-300);\n }\n\n .ring-red-700 {\n --tw-ring-color: var(--color-red-700);\n }\n\n .ring-teal-300 {\n --tw-ring-color: var(--color-teal-300);\n }\n\n .ring-violet-300 {\n --tw-ring-color: var(--color-violet-300);\n }\n\n .ring-offset-0 {\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-shadow: var(--tw-ring-inset, ) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n\n .ring-offset-white {\n --tw-ring-offset-color: var(--color-white);\n }\n\n .outline-hidden {\n --tw-outline-style: none;\n outline-style: none;\n }\n\n @media (forced-colors: active) {\n .outline-hidden {\n outline-offset: 2px;\n outline: 2px solid #0000;\n }\n }\n\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n\n .blur {\n --tw-blur: blur(8px);\n 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, );\n }\n\n .filter {\n 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, );\n }\n\n .backdrop-blur-\\[20px\\] {\n --tw-backdrop-blur: blur(20px);\n 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, );\n }\n\n .backdrop-blur-\\[180px\\] {\n --tw-backdrop-blur: blur(180px);\n 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, );\n }\n\n .backdrop-blur-lg {\n --tw-backdrop-blur: blur(var(--blur-lg));\n 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, );\n }\n\n .backdrop-blur-xs {\n --tw-backdrop-blur: blur(var(--blur-xs));\n 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, );\n }\n\n .transition {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .transition-transform {\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .duration-200 {\n --tw-duration: .2s;\n transition-duration: .2s;\n }\n\n .duration-300 {\n --tw-duration: .3s;\n transition-duration: .3s;\n }\n\n .duration-500 {\n --tw-duration: .5s;\n transition-duration: .5s;\n }\n\n .duration-700 {\n --tw-duration: .7s;\n transition-duration: .7s;\n }\n\n .ease-\\[cubic-bezier\\(0\\.075\\,0\\.82\\,0\\.165\\,1\\)\\] {\n --tw-ease: cubic-bezier(.075, .82, .165, 1);\n transition-timing-function: cubic-bezier(.075, .82, .165, 1);\n }\n\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n\n .ease-linear {\n --tw-ease: linear;\n transition-timing-function: linear;\n }\n\n .will-change-transform {\n will-change: transform;\n }\n\n .animate-in {\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n animation-name: enter;\n animation-duration: .15s;\n }\n\n .select-none {\n user-select: none;\n }\n\n .duration-200 {\n animation-duration: .2s;\n }\n\n .duration-300 {\n animation-duration: .3s;\n }\n\n .duration-500 {\n animation-duration: .5s;\n }\n\n .duration-700 {\n animation-duration: .7s;\n }\n\n .ease-\\[cubic-bezier\\(0\\.075\\,0\\.82\\,0\\.165\\,1\\)\\] {\n animation-timing-function: cubic-bezier(.075, .82, .165, 1);\n }\n\n .ease-in-out {\n animation-timing-function: cubic-bezier(.4, 0, .2, 1);\n }\n\n .ease-linear {\n animation-timing-function: linear;\n }\n\n .fade-in-0 {\n --tw-enter-opacity: 0;\n }\n\n .paused {\n animation-play-state: paused;\n }\n\n .ring-inset {\n --tw-ring-inset: inset;\n }\n\n .running {\n animation-play-state: running;\n }\n\n .zoom-in-95 {\n --tw-enter-scale: .95;\n }\n\n :is(.\\*\\:h-full > *) {\n height: 100%;\n }\n\n :is(.\\*\\:w-full > *) {\n width: 100%;\n }\n\n :is(.\\*\\:rounded-\\[14px\\] > *) {\n border-radius: 14px;\n }\n\n :is(.\\*\\:bg-blue-700 > *) {\n background-color: var(--color-blue-700);\n }\n\n :is(.\\*\\:fill-black > *) {\n fill: var(--color-black);\n }\n\n :is(.\\*\\:text-gray-700 > *) {\n color: var(--color-gray-700);\n }\n\n :is(.\\*\\:text-white > *) {\n color: var(--color-white);\n }\n\n :is(.\\*\\:opacity-100 > *) {\n opacity: 1;\n }\n\n :is(.\\*\\*\\:items-center *) {\n align-items: center;\n }\n\n :is(.\\*\\*\\:rounded-lg *) {\n border-radius: var(--radius-lg);\n }\n\n .group-focus-within\\:bg-gray-100:is(:where(.group):focus-within *) {\n background-color: var(--color-gray-100);\n }\n\n .group-focus-within\\/mediacard\\:visible:is(:where(.group\\/mediacard):focus-within *) {\n visibility: visible;\n }\n\n @media (hover: hover) {\n .group-hover\\:visible:is(:where(.group):hover *) {\n visibility: visible;\n }\n\n .group-hover\\:flex:is(:where(.group):hover *) {\n display: flex;\n }\n\n .group-hover\\:bg-gray-50:is(:where(.group):hover *) {\n background-color: var(--color-gray-50);\n }\n\n .group-hover\\/mediacard\\:visible:is(:where(.group\\/mediacard):hover *) {\n visibility: visible;\n }\n }\n\n .group-active\\:bg-gray-100:is(:where(.group):active *) {\n background-color: var(--color-gray-100);\n }\n\n .group-data-disabled\\:cursor-not-allowed:is(:where(.group)[data-disabled] *) {\n cursor: not-allowed;\n }\n\n .group-data-disabled\\:opacity-50:is(:where(.group)[data-disabled] *) {\n opacity: .5;\n }\n\n .group-data-\\[state\\=checked\\]\\:bg-gray-50:is(:where(.group)[data-state=\"checked\"] *) {\n background-color: var(--color-gray-50);\n }\n\n .group-data-\\[state\\=off\\]\\:bg-transparent:is(:where(.group)[data-state=\"off\"] *) {\n background-color: #0000;\n }\n\n .group-data-\\[state\\=off\\]\\:text-transparent:is(:where(.group)[data-state=\"off\"] *) {\n color: #0000;\n }\n\n .group-data-\\[state\\=on\\]\\:border-blue-700:is(:where(.group)[data-state=\"on\"] *) {\n border-color: var(--color-blue-700);\n }\n\n .group-data-\\[state\\=open\\]\\:rotate-180:is(:where(.group)[data-state=\"open\"] *) {\n rotate: 180deg;\n }\n\n @media (hover: hover) {\n .peer-hover\\:fill-amber-700:is(:where(.peer):hover ~ *) {\n fill: var(--color-amber-700);\n }\n\n .peer-hover\\:text-amber-700:is(:where(.peer):hover ~ *) {\n color: var(--color-amber-700);\n }\n }\n\n .peer-disabled\\:cursor-not-allowed:is(:where(.peer):disabled ~ *) {\n cursor: not-allowed;\n }\n\n .peer-disabled\\:opacity-70:is(:where(.peer):disabled ~ *) {\n opacity: .7;\n }\n\n .placeholder\\:text-gray-700::placeholder {\n color: var(--color-gray-700);\n }\n\n .placeholder\\:text-gray-900::placeholder {\n color: var(--color-gray-900);\n }\n\n .last\\:pb-0:last-child {\n padding-bottom: calc(var(--spacing) * 0);\n }\n\n .focus-within\\:relative:focus-within {\n position: relative;\n }\n\n .focus-within\\:z-20:focus-within {\n z-index: 20;\n }\n\n .focus-within\\:border-gray-200:focus-within {\n border-color: var(--color-gray-200);\n }\n\n .focus-within\\:bg-gray-100:focus-within {\n background-color: var(--color-gray-100);\n }\n\n .focus-within\\:outline:focus-within {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n\n .focus-within\\:outline-\\[2px\\]:focus-within {\n outline-style: var(--tw-outline-style);\n outline-width: 2px;\n }\n\n .focus-within\\:outline-offset-\\[2px\\]:focus-within {\n outline-offset: 2px;\n }\n\n .focus-within\\:outline-blue-300:focus-within {\n outline-color: var(--color-blue-300);\n }\n\n .focus-within\\:outline-red-700:focus-within {\n outline-color: var(--color-red-700);\n }\n\n @media (hover: hover) {\n .hover\\:border-blue-900:hover {\n border-color: var(--color-blue-900);\n }\n\n .hover\\:border-gray-600:hover {\n border-color: var(--color-gray-600);\n }\n\n .hover\\:border-red-900:hover {\n border-color: var(--color-red-900);\n }\n\n .hover\\:bg-black\\/5:hover {\n background-color: var(--color-black);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .hover\\:bg-black\\/5:hover {\n background-color: color-mix(in oklab, var(--color-black) 5%, transparent);\n }\n }\n\n .hover\\:bg-blue-50:hover {\n background-color: var(--color-blue-50);\n }\n\n .hover\\:bg-blue-100:hover {\n background-color: var(--color-blue-100);\n }\n\n .hover\\:bg-blue-800:hover {\n background-color: var(--color-blue-800);\n }\n\n .hover\\:bg-gray-25:hover {\n background-color: var(--color-gray-25);\n }\n\n .hover\\:bg-gray-50:hover {\n background-color: var(--color-gray-50);\n }\n\n .hover\\:bg-gray-100:hover, .hover\\:bg-gray-100\\/75:hover {\n background-color: var(--color-gray-100);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .hover\\:bg-gray-100\\/75:hover {\n background-color: color-mix(in oklab, var(--color-gray-100) 75%, transparent);\n }\n }\n\n .hover\\:bg-gray-200:hover {\n background-color: var(--color-gray-200);\n }\n\n .hover\\:bg-red-100:hover {\n background-color: var(--color-red-100);\n }\n\n .hover\\:bg-red-800:hover {\n background-color: var(--color-red-800);\n }\n\n .hover\\:fill-amber-700:hover {\n fill: var(--color-amber-700);\n }\n\n .hover\\:text-amber-700:hover {\n color: var(--color-amber-700);\n }\n\n .hover\\:text-black:hover {\n color: var(--color-black);\n }\n\n .hover\\:underline:hover {\n text-decoration-line: underline;\n }\n\n .hover\\:opacity-100:hover {\n opacity: 1;\n }\n\n :is(.hover\\:\\*\\:bg-blue-700:hover > *) {\n background-color: var(--color-blue-700);\n }\n\n :is(.hover\\:\\*\\:text-white:hover > *) {\n color: var(--color-white);\n }\n }\n\n .focus\\:bg-gray-100:focus {\n background-color: var(--color-gray-100);\n }\n\n .focus\\:ring-1:focus {\n --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .focus\\:ring-2:focus {\n --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .focus\\:ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset, ) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n\n .focus\\:outline-hidden:focus {\n --tw-outline-style: none;\n outline-style: none;\n }\n\n @media (forced-colors: active) {\n .focus\\:outline-hidden:focus {\n outline-offset: 2px;\n outline: 2px solid #0000;\n }\n }\n\n :is(.focus\\:\\*\\:bg-blue-700:focus > *) {\n background-color: var(--color-blue-700);\n }\n\n :is(.focus\\:\\*\\:text-white:focus > *) {\n color: var(--color-white);\n }\n\n .focus-visible\\:ring-2:focus-visible {\n --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .focus-visible\\:ring-black:focus-visible {\n --tw-ring-color: var(--color-black);\n }\n\n .focus-visible\\:ring-blue-300:focus-visible {\n --tw-ring-color: var(--color-blue-300);\n }\n\n .focus-visible\\:ring-blue-700:focus-visible {\n --tw-ring-color: var(--color-blue-700);\n }\n\n .focus-visible\\:ring-blue-1000:focus-visible {\n --tw-ring-color: var(--color-blue-1000);\n }\n\n .focus-visible\\:ring-red-700:focus-visible {\n --tw-ring-color: var(--color-red-700);\n }\n\n .focus-visible\\:ring-red-1000:focus-visible {\n --tw-ring-color: var(--color-red-1000);\n }\n\n .focus-visible\\:ring-offset-2:focus-visible {\n --tw-ring-offset-width: 2px;\n --tw-ring-offset-shadow: var(--tw-ring-inset, ) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n }\n\n .focus-visible\\:outline-hidden:focus-visible {\n --tw-outline-style: none;\n outline-style: none;\n }\n\n @media (forced-colors: active) {\n .focus-visible\\:outline-hidden:focus-visible {\n outline-offset: 2px;\n outline: 2px solid #0000;\n }\n }\n\n .active\\:bg-blue-200:active {\n background-color: var(--color-blue-200);\n }\n\n .active\\:bg-blue-900:active {\n background-color: var(--color-blue-900);\n }\n\n .active\\:bg-gray-50:active {\n background-color: var(--color-gray-50);\n }\n\n .active\\:bg-gray-100:active {\n background-color: var(--color-gray-100);\n }\n\n .active\\:bg-gray-200:active {\n background-color: var(--color-gray-200);\n }\n\n .active\\:bg-gray-300:active {\n background-color: var(--color-gray-300);\n }\n\n .active\\:bg-gray-500:active {\n background-color: var(--color-gray-500);\n }\n\n .active\\:bg-red-200:active {\n background-color: var(--color-red-200);\n }\n\n .active\\:bg-red-800:active {\n background-color: var(--color-red-800);\n }\n\n .active\\:bg-red-900:active {\n background-color: var(--color-red-900);\n }\n\n .active\\:text-blue-900:active {\n color: var(--color-blue-900);\n }\n\n .disabled\\:pointer-events-none:disabled {\n pointer-events: none;\n }\n\n .disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n }\n\n .disabled\\:opacity-40:disabled {\n opacity: .4;\n }\n\n .disabled\\:opacity-50:disabled {\n opacity: .5;\n }\n\n .disabled\\:select-none:disabled {\n user-select: none;\n }\n\n :where(.dark-theme) .in-\\[\\.dark-theme\\]\\:bg-gray-50 {\n background-color: var(--color-gray-50);\n }\n\n .aria-selected\\:rounded-md[aria-selected=\"true\"] {\n border-radius: var(--radius-md);\n }\n\n .aria-selected\\:bg-blue-100[aria-selected=\"true\"], :is(.aria-selected\\:\\*\\:bg-blue-100[aria-selected=\"true\"] > *) {\n background-color: var(--color-blue-100);\n }\n\n :is(.aria-selected\\:\\*\\:text-blue-700[aria-selected=\"true\"] > *) {\n color: var(--color-blue-700);\n }\n\n .first\\:aria-selected\\:rounded-l-md:first-child[aria-selected=\"true\"] {\n border-top-left-radius: var(--radius-md);\n border-bottom-left-radius: var(--radius-md);\n }\n\n .last\\:aria-selected\\:rounded-r-md:last-child[aria-selected=\"true\"] {\n border-top-right-radius: var(--radius-md);\n border-bottom-right-radius: var(--radius-md);\n }\n\n .data-disabled\\:pointer-events-none[data-disabled] {\n pointer-events: none;\n }\n\n .data-disabled\\:cursor-not-allowed[data-disabled] {\n cursor: not-allowed;\n }\n\n .data-disabled\\:opacity-40[data-disabled] {\n opacity: .4;\n }\n\n .data-disabled\\:opacity-50[data-disabled] {\n opacity: .5;\n }\n\n .data-\\[disabled\\=true\\]\\:cursor-not-allowed[data-disabled=\"true\"] {\n cursor: not-allowed;\n }\n\n .data-\\[disabled\\=true\\]\\:opacity-50[data-disabled=\"true\"] {\n opacity: .5;\n }\n\n .data-\\[selected\\=true\\]\\:bg-gray-50[data-selected=\"true\"] {\n background-color: var(--color-gray-50);\n }\n\n .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=\"bottom\"] {\n --tw-translate-y: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=\"bottom\"] {\n --tw-enter-translate-y: -.5rem;\n }\n\n .data-\\[side\\=left\\]\\:-translate-x-1[data-side=\"left\"] {\n --tw-translate-x: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=\"left\"] {\n --tw-enter-translate-x: .5rem;\n }\n\n .data-\\[side\\=right\\]\\:translate-x-1[data-side=\"right\"] {\n --tw-translate-x: calc(var(--spacing) * 1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=\"right\"] {\n --tw-enter-translate-x: -.5rem;\n }\n\n .data-\\[side\\=top\\]\\:-translate-y-1[data-side=\"top\"] {\n --tw-translate-y: calc(var(--spacing) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=\"top\"] {\n --tw-enter-translate-y: .5rem;\n }\n\n .data-\\[size\\=xxs\\]\\:bg-amber-700[data-size=\"xxs\"] {\n background-color: var(--color-amber-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-blue-700[data-size=\"xxs\"] {\n background-color: var(--color-blue-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-bronze-700[data-size=\"xxs\"] {\n background-color: var(--color-bronze-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-brown-700[data-size=\"xxs\"] {\n background-color: var(--color-brown-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-crimson-700[data-size=\"xxs\"] {\n background-color: var(--color-crimson-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-cyan-700[data-size=\"xxs\"] {\n background-color: var(--color-cyan-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-gold-700[data-size=\"xxs\"] {\n background-color: var(--color-gold-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-grass-700[data-size=\"xxs\"] {\n background-color: var(--color-grass-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-gray-700[data-size=\"xxs\"] {\n background-color: var(--color-gray-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-green-700[data-size=\"xxs\"] {\n background-color: var(--color-green-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-indigo-700[data-size=\"xxs\"] {\n background-color: var(--color-indigo-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-lime-700[data-size=\"xxs\"] {\n background-color: var(--color-lime-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-plum-700[data-size=\"xxs\"] {\n background-color: var(--color-plum-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-purple-700[data-size=\"xxs\"] {\n background-color: var(--color-purple-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-red-700[data-size=\"xxs\"] {\n background-color: var(--color-red-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-teal-700[data-size=\"xxs\"] {\n background-color: var(--color-teal-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-violet-700[data-size=\"xxs\"] {\n background-color: var(--color-violet-700);\n }\n\n .data-\\[size\\=xxs\\]\\:bg-yellow-700[data-size=\"xxs\"] {\n background-color: var(--color-yellow-700);\n }\n\n .data-\\[state\\=active\\]\\:bg-black[data-state=\"active\"] {\n background-color: var(--color-black);\n }\n\n .data-\\[state\\=active\\]\\:bg-white[data-state=\"active\"] {\n background-color: var(--color-white);\n }\n\n .data-\\[state\\=active\\]\\:text-blue-700[data-state=\"active\"] {\n color: var(--color-blue-700);\n }\n\n .data-\\[state\\=active\\]\\:shadow-xs[data-state=\"active\"] {\n --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, #0000000d);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .data-\\[state\\=checked\\]\\:translate-x-5[data-state=\"checked\"] {\n --tw-translate-x: calc(var(--spacing) * 5);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .data-\\[state\\=checked\\]\\:border-blue-700[data-state=\"checked\"] {\n border-color: var(--color-blue-700);\n }\n\n .data-\\[state\\=checked\\]\\:bg-blue-700[data-state=\"checked\"] {\n background-color: var(--color-blue-700);\n }\n\n .data-\\[state\\=checked\\]\\:bg-gray-50[data-state=\"checked\"] {\n background-color: var(--color-gray-50);\n }\n\n .data-\\[state\\=checked\\]\\:bg-white[data-state=\"checked\"] {\n background-color: var(--color-white);\n }\n\n .data-\\[state\\=closed\\]\\:animate-accordion-up[data-state=\"closed\"] {\n animation: var(--animate-accordion-up);\n }\n\n .data-\\[state\\=closed\\]\\:duration-300[data-state=\"closed\"] {\n --tw-duration: .3s;\n transition-duration: .3s;\n }\n\n .data-\\[state\\=closed\\]\\:animate-out[data-state=\"closed\"] {\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n animation-name: exit;\n animation-duration: .15s;\n }\n\n .data-\\[state\\=closed\\]\\:duration-300[data-state=\"closed\"] {\n animation-duration: .3s;\n }\n\n .data-\\[state\\=closed\\]\\:fade-out[data-state=\"closed\"], .data-\\[state\\=closed\\]\\:fade-out-0[data-state=\"closed\"] {\n --tw-exit-opacity: 0;\n }\n\n .data-\\[state\\=closed\\]\\:fade-out-80[data-state=\"closed\"] {\n --tw-exit-opacity: .8;\n }\n\n .data-\\[state\\=closed\\]\\:slide-out-to-bottom[data-state=\"closed\"], .data-\\[state\\=closed\\]\\:slide-out-to-bottom-\\[100\\%\\][data-state=\"closed\"] {\n --tw-exit-translate-y: 100%;\n }\n\n .data-\\[state\\=closed\\]\\:slide-out-to-left[data-state=\"closed\"] {\n --tw-exit-translate-x: -100%;\n }\n\n .data-\\[state\\=closed\\]\\:slide-out-to-right[data-state=\"closed\"] {\n --tw-exit-translate-x: 100%;\n }\n\n .data-\\[state\\=closed\\]\\:slide-out-to-top[data-state=\"closed\"] {\n --tw-exit-translate-y: -100%;\n }\n\n .data-\\[state\\=closed\\]\\:zoom-out-95[data-state=\"closed\"] {\n --tw-exit-scale: .95;\n }\n\n .data-\\[state\\=on\\]\\:border-blue-700[data-state=\"on\"] {\n border-color: var(--color-blue-700);\n }\n\n .data-\\[state\\=open\\]\\:animate-accordion-down[data-state=\"open\"] {\n animation: var(--animate-accordion-down);\n }\n\n .data-\\[state\\=open\\]\\:duration-500[data-state=\"open\"] {\n --tw-duration: .5s;\n transition-duration: .5s;\n }\n\n .data-\\[state\\=open\\]\\:animate-in[data-state=\"open\"] {\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n animation-name: enter;\n animation-duration: .15s;\n }\n\n .data-\\[state\\=open\\]\\:duration-500[data-state=\"open\"] {\n animation-duration: .5s;\n }\n\n .data-\\[state\\=open\\]\\:fade-in-0[data-state=\"open\"] {\n --tw-enter-opacity: 0;\n }\n\n .data-\\[state\\=open\\]\\:slide-in-from-bottom[data-state=\"open\"], .data-\\[state\\=open\\]\\:slide-in-from-bottom-\\[100\\%\\][data-state=\"open\"] {\n --tw-enter-translate-y: 100%;\n }\n\n .data-\\[state\\=open\\]\\:slide-in-from-left[data-state=\"open\"] {\n --tw-enter-translate-x: -100%;\n }\n\n .data-\\[state\\=open\\]\\:slide-in-from-right[data-state=\"open\"] {\n --tw-enter-translate-x: 100%;\n }\n\n .data-\\[state\\=open\\]\\:slide-in-from-top[data-state=\"open\"], .data-\\[state\\=open\\]\\:slide-in-from-top-full[data-state=\"open\"] {\n --tw-enter-translate-y: -100%;\n }\n\n .data-\\[state\\=open\\]\\:zoom-in-95[data-state=\"open\"] {\n --tw-enter-scale: .95;\n }\n\n .data-\\[state\\=selected\\]\\:bg-gray-50[data-state=\"selected\"] {\n background-color: var(--color-gray-50);\n }\n\n .data-disabled\\:data-\\[state\\=unchecked\\]\\:bg-gray-300[data-disabled][data-state=\"unchecked\"] {\n background-color: var(--color-gray-300);\n }\n\n .data-\\[swipe\\=cancel\\]\\:translate-x-0[data-swipe=\"cancel\"] {\n --tw-translate-x: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .data-\\[swipe\\=end\\]\\:translate-x-\\[var\\(--radix-toast-swipe-end-x\\)\\][data-swipe=\"end\"] {\n --tw-translate-x: var(--radix-toast-swipe-end-x);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .data-\\[swipe\\=end\\]\\:animate-out[data-swipe=\"end\"] {\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n animation-name: exit;\n animation-duration: .15s;\n }\n\n .data-\\[swipe\\=move\\]\\:translate-x-\\[var\\(--radix-toast-swipe-move-x\\)\\][data-swipe=\"move\"] {\n --tw-translate-x: var(--radix-toast-swipe-move-x);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .data-\\[swipe\\=move\\]\\:transition-none[data-swipe=\"move\"] {\n transition-property: none;\n }\n\n @media not all and (width >= 64rem) {\n .max-lg\\:hidden {\n display: none;\n }\n }\n\n @media not all and (width >= 40rem) {\n .max-sm\\:gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n\n .max-sm\\:p-4 {\n padding: calc(var(--spacing) * 4);\n }\n }\n\n @media (width >= 40rem) {\n .sm\\:mt-0 {\n margin-top: calc(var(--spacing) * 0);\n }\n\n .sm\\:max-w-md {\n max-width: var(--container-md);\n }\n\n .sm\\:max-w-sm {\n max-width: var(--container-sm);\n }\n\n .sm\\:flex-col {\n flex-direction: column;\n }\n\n .sm\\:flex-row {\n flex-direction: row;\n }\n\n .sm\\:justify-end {\n justify-content: flex-end;\n }\n\n :where(.sm\\:space-x-2 > :not(:last-child)) {\n --tw-space-x-reverse: 0;\n margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));\n margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)));\n }\n\n .sm\\:data-\\[state\\=open\\]\\:slide-in-from-bottom-full[data-state=\"open\"] {\n --tw-enter-translate-y: 100%;\n }\n }\n\n @media (width >= 48rem) {\n .md\\:block {\n display: block;\n }\n\n .md\\:h-\\[550px\\] {\n height: 550px;\n }\n\n .md\\:w-\\[300px\\] {\n width: 300px;\n }\n\n .md\\:w-\\[326px\\] {\n width: 326px;\n }\n\n .md\\:w-\\[1000px\\] {\n width: 1000px;\n }\n\n .md\\:w-auto {\n width: auto;\n }\n\n .md\\:w-fit {\n width: fit-content;\n }\n\n .md\\:w-full {\n width: 100%;\n }\n\n .md\\:max-w-\\[90vw\\] {\n max-width: 90vw;\n }\n\n .md\\:max-w-\\[420px\\] {\n max-width: 420px;\n }\n\n .md\\:min-w-\\[500px\\] {\n min-width: 500px;\n }\n\n .md\\:flex-row {\n flex-direction: row;\n }\n\n .md\\:items-center {\n align-items: center;\n }\n\n .md\\:justify-start {\n justify-content: flex-start;\n }\n\n .md\\:gap-0 {\n gap: calc(var(--spacing) * 0);\n }\n\n .md\\:gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n\n .md\\:gap-6 {\n gap: calc(var(--spacing) * 6);\n }\n\n .md\\:gap-8 {\n gap: calc(var(--spacing) * 8);\n }\n\n :where(.md\\:divide-y > :not(:last-child)) {\n --tw-divide-y-reverse: 0;\n border-bottom-style: var(--tw-border-style);\n border-top-style: var(--tw-border-style);\n border-top-width: calc(1px * var(--tw-divide-y-reverse));\n border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n }\n\n .md\\:border-0 {\n border-style: var(--tw-border-style);\n border-width: 0;\n }\n\n .md\\:bg-gray-50 {\n background-color: var(--color-gray-50);\n }\n\n .md\\:bg-transparent {\n background-color: #0000;\n }\n\n .md\\:p-0 {\n padding: calc(var(--spacing) * 0);\n }\n\n .md\\:p-4 {\n padding: calc(var(--spacing) * 4);\n }\n\n .md\\:p-6 {\n padding: calc(var(--spacing) * 6);\n }\n\n .md\\:p-8 {\n padding: calc(var(--spacing) * 8);\n }\n }\n\n @media (width >= 64rem) {\n .lg\\:h-14 {\n height: calc(var(--spacing) * 14);\n }\n\n .lg\\:w-14 {\n width: calc(var(--spacing) * 14);\n }\n\n .lg\\:flex-row {\n flex-direction: row;\n }\n\n .lg\\:gap-8 {\n gap: calc(var(--spacing) * 8);\n }\n\n .lg\\:gap-16 {\n gap: calc(var(--spacing) * 16);\n }\n\n .lg\\:bg-pattern {\n background-image: var(--background-image-pattern);\n }\n\n .lg\\:p-20 {\n padding: calc(var(--spacing) * 20);\n }\n\n .lg\\:text-4xl {\n font-size: var(--text-4xl);\n line-height: var(--tw-leading, var(--text-4xl--line-height));\n letter-spacing: var(--tw-tracking, var(--text-4xl--letter-spacing));\n }\n\n .lg\\:text-md {\n font-size: var(--text-md);\n line-height: var(--tw-leading, var(--text-md--line-height));\n letter-spacing: var(--tw-tracking, var(--text-md--letter-spacing));\n }\n }\n\n @media (width >= 80rem) {\n .xl\\:rounded-none {\n border-radius: 0;\n }\n }\n\n .dark\\:bg-white\\/50:where(.dark-theme, .dark-theme *) {\n background-color: var(--color-white);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .dark\\:bg-white\\/50:where(.dark-theme, .dark-theme *) {\n background-color: color-mix(in oklab, var(--color-white) 50%, transparent);\n }\n }\n\n .dark\\:fill-black:where(.dark-theme, .dark-theme *) {\n fill: var(--color-black);\n }\n\n .dark\\:text-black:where(.dark-theme, .dark-theme *), :is(.dark\\:\\*\\:text-black:where(.dark-theme, .dark-theme *) > *) {\n color: var(--color-black);\n }\n\n @media (hover: hover) {\n :is(.dark\\:hover\\:\\*\\:text-black:where(.dark-theme, .dark-theme *):hover > *) {\n color: var(--color-black);\n }\n }\n\n :is(.dark\\:focus\\:\\*\\:text-black:where(.dark-theme, .dark-theme *):focus > *), .dark\\:data-\\[state\\=active\\]\\:text-black:where(.dark-theme, .dark-theme *)[data-state=\"active\"] {\n color: var(--color-black);\n }\n\n .dark\\:data-\\[state\\=active\\]\\:text-white:where(.dark-theme, .dark-theme *)[data-state=\"active\"] {\n color: var(--color-white);\n }\n\n .dark\\:data-\\[state\\=checked\\]\\:bg-black:where(.dark-theme, .dark-theme *)[data-state=\"checked\"] {\n background-color: var(--color-black);\n }\n\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:px-2 [cmdk-group-heading] {\n padding-inline: calc(var(--spacing) * 2);\n }\n\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:py-1\\.5 [cmdk-group-heading] {\n padding-block: calc(var(--spacing) * 1.5);\n }\n\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-sm [cmdk-group-heading] {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n letter-spacing: var(--tw-tracking, var(--text-sm--letter-spacing));\n }\n\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:font-medium [cmdk-group-heading] {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n\n .\\[\\&_\\[cmdk-group-heading\\]\\]\\:text-black [cmdk-group-heading] {\n color: var(--color-black);\n }\n\n .\\[\\&_tr\\]\\:border-b tr {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n\n .\\[\\&_tr\\:active\\]\\:bg-gray-50 tr:active {\n background-color: var(--color-gray-50);\n }\n\n .\\[\\&_tr\\:hover\\]\\:bg-gray-25 tr:hover {\n background-color: var(--color-gray-25);\n }\n\n .\\[\\&_tr\\:hover\\:active\\]\\:bg-gray-50 tr:hover:active {\n background-color: var(--color-gray-50);\n }\n\n .\\[\\&_tr\\:last-child\\]\\:border-0 tr:last-child {\n border-style: var(--tw-border-style);\n border-width: 0;\n }\n\n .aria-selected\\:\\[\\&\\.day-outside\\]\\:bg-blue-100\\/50[aria-selected=\"true\"].day-outside {\n background-color: var(--color-blue-100);\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .aria-selected\\:\\[\\&\\.day-outside\\]\\:bg-blue-100\\/50[aria-selected=\"true\"].day-outside {\n background-color: color-mix(in oklab, var(--color-blue-100) 50%, transparent);\n }\n }\n\n .\\[\\&\\.day-range-end\\]\\:rounded-r-md.day-range-end, .aria-selected\\:\\[\\&\\.day-range-end\\]\\:rounded-r-md[aria-selected=\"true\"].day-range-end {\n border-top-right-radius: var(--radius-md);\n border-bottom-right-radius: var(--radius-md);\n }\n\n .\\[\\&\\.day-range-start\\]\\:rounded-l-md.day-range-start {\n border-top-left-radius: var(--radius-md);\n border-bottom-left-radius: var(--radius-md);\n }\n\n .\\[\\&\\:has\\(\\[role\\=checkbox\\]\\)\\]\\:pr-0:has([role=\"checkbox\"]) {\n padding-right: calc(var(--spacing) * 0);\n }\n\n .\\[\\&\\>\\[role\\=checkbox\\]\\]\\:translate-y-\\[2px\\] > [role=\"checkbox\"] {\n --tw-translate-y: 2px;\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .\\[\\&\\>button\\]\\:w-full > button {\n width: 100%;\n }\n\n .\\[\\&\\>div\\]\\:h-\\[72px\\] > div {\n height: 72px;\n }\n\n .\\[\\&\\>div\\]\\:w-full > div {\n width: 100%;\n }\n\n .\\[\\&\\>svg\\]\\:h-4 > svg {\n height: calc(var(--spacing) * 4);\n }\n\n .\\[\\&\\>svg\\]\\:w-auto > svg {\n width: auto;\n }\n\n .\\[\\&\\>svg\\]\\:text-black > svg {\n color: var(--color-black);\n }\n\n .\\[\\&\\>svg\\]\\:text-blue-700 > svg {\n color: var(--color-blue-700);\n }\n\n .\\[\\&\\>svg\\]\\:text-current > svg {\n color: currentColor;\n }\n\n .\\[\\&\\>svg\\]\\:text-gray-700 > svg {\n color: var(--color-gray-700);\n }\n\n .\\[\\&\\>svg\\]\\:text-red-700 > svg {\n color: var(--color-red-700);\n }\n\n .\\[\\&\\>svg\\]\\:text-white > svg {\n color: var(--color-white);\n }\n\n @media (hover: hover) {\n .hover\\:\\[\\&\\>svg\\]\\:text-black:hover > svg {\n color: var(--color-black);\n }\n }\n\n .dark\\:\\[\\&\\>svg\\]\\:text-black:where(.dark-theme, .dark-theme *) > svg {\n color: var(--color-black);\n }\n}\n\n* {\n box-sizing: border-box;\n -webkit-font-smoothing: antialiased;\n}\n\n:root, .light-theme {\n --color-white: #fff;\n --color-black: #121212;\n --color-gray-25: #fcfcfc;\n --color-gray-50: #f7f7f7;\n --color-gray-100: #f2f2f2;\n --color-gray-200: #ededed;\n --color-gray-300: #e8e8e8;\n --color-gray-400: #e3e3e3;\n --color-gray-500: #dbdbdb;\n --color-gray-600: #c7c7c7;\n --color-gray-700: #8f8f8f;\n --color-gray-800: #858585;\n --color-gray-900: #707070;\n --color-gray-1000: #171717;\n --color-blue-25: #fafcff;\n --color-blue-50: #f5f9ff;\n --color-blue-100: #f0f6ff;\n --color-blue-200: #d7e7fe;\n --color-blue-300: #c7deff;\n --color-blue-400: #b8d5ff;\n --color-blue-500: #85b8ff;\n --color-blue-600: #579dff;\n --color-blue-700: #006aff;\n --color-blue-800: #005bdb;\n --color-blue-900: #004db8;\n --color-blue-1000: #002252;\n --color-red-25: snow;\n --color-red-50: snow;\n --color-red-100: #fff0f0;\n --color-red-200: #ffe5e5;\n --color-red-300: #fdd8d8;\n --color-red-400: #f9c8c8;\n --color-red-500: #f3afb0;\n --color-red-600: #ea8f90;\n --color-red-700: #e5484d;\n --color-red-800: #db3d42;\n --color-red-900: #ce2c31;\n --color-red-1000: #391417;\n --color-amber-25: #fffcf6;\n --color-amber-50: #fffaf2;\n --color-amber-100: #fff9ed;\n --color-amber-200: #fff3de;\n --color-amber-300: #ffefd1;\n --color-amber-400: #ffe8bd;\n --color-amber-500: #ffdd9f;\n --color-amber-600: #ffcf77;\n --color-amber-700: #ffb224;\n --color-amber-800: #f9a710;\n --color-amber-900: #e4980c;\n --color-amber-1000: #4e2009;\n --color-green-25: #fbfefc;\n --color-green-50: #f3fcf5;\n --color-green-100: #ebfaf0;\n --color-green-200: #ddf3e4;\n --color-green-300: #ccebd7;\n --color-green-400: #b4dfc4;\n --color-green-500: #92ceac;\n --color-green-600: #5bb98b;\n --color-green-700: #30a66d;\n --color-green-800: #2a9865;\n --color-green-900: #18774c;\n --color-green-1000: #153226;\n --color-tomato-25: snow;\n --color-tomato-50: #fff6f5;\n --color-tomato-100: #fff1f0;\n --color-tomato-200: #ffe4e0;\n --color-tomato-300: #fdd8d3;\n --color-tomato-400: #fac6bd;\n --color-tomato-500: #f3aea0;\n --color-tomato-600: #ea9280;\n --color-tomato-700: #e54d2e;\n --color-tomato-800: #db4224;\n --color-tomato-900: #cc3314;\n --color-tomato-1000: #361811;\n --color-crimson-25: #fffafc;\n --color-crimson-50: #fff5fa;\n --color-crimson-100: #fef1f7;\n --color-crimson-200: #fce4ef;\n --color-crimson-300: #f9d7e6;\n --color-crimson-400: #f4c7dc;\n --color-crimson-500: #edabc7;\n --color-crimson-600: #e58fb2;\n --color-crimson-700: #ea3e83;\n --color-crimson-800: #e13378;\n --color-crimson-900: #d21e66;\n --color-crimson-1000: #3f0d1e;\n --color-pink-25: #fffafd;\n --color-pink-50: #fff5fb;\n --color-pink-100: #feecf7;\n --color-pink-200: #fce4f3;\n --color-pink-300: #f9d7eb;\n --color-pink-400: #f3c4e1;\n --color-pink-500: #ecacd3;\n --color-pink-600: #e28dc2;\n --color-pink-700: #d742a0;\n --color-pink-800: #d23297;\n --color-pink-900: #cd1d8d;\n --color-pink-1000: #3d0a2b;\n --color-plum-25: #fdfaff;\n --color-plum-50: #fffaff;\n --color-plum-100: #fceefc;\n --color-plum-200: #f9e6f9;\n --color-plum-300: #f3d7f4;\n --color-plum-400: #ecc9ee;\n --color-plum-500: #dfb0e3;\n --color-plum-600: #cf92d9;\n --color-plum-700: #ab4aba;\n --color-plum-800: #a43cb4;\n --color-plum-900: #9a2bab;\n --color-plum-1000: #340c3b;\n --color-purple-25: #fefbfe;\n --color-purple-50: #fdfaff;\n --color-purple-100: #f9f1fe;\n --color-purple-200: #f4e8fc;\n --color-purple-300: #eddcf9;\n --color-purple-400: #e4cdf4;\n --color-purple-500: #d4b5ed;\n --color-purple-600: #bf95e4;\n --color-purple-700: #8e4ec6;\n --color-purple-800: #8344bb;\n --color-purple-900: #793bb0;\n --color-purple-1000: #2b0e44;\n --color-violet-25: #fcfbfe;\n --color-violet-50: #fbfaff;\n --color-violet-100: #f3f0ff;\n --color-violet-200: #ebe7fe;\n --color-violet-300: #e4defc;\n --color-violet-400: #d5cdf9;\n --color-violet-500: #c5b9f3;\n --color-violet-600: #a898ec;\n --color-violet-700: #6d54cf;\n --color-violet-800: #634ec1;\n --color-violet-900: #5746af;\n --color-violet-1000: #1f1249;\n --color-indigo-25: #fcfcfd;\n --color-indigo-50: #fafbff;\n --color-indigo-100: #f0f4ff;\n --color-indigo-200: #e7edfe;\n --color-indigo-300: #d9e2fc;\n --color-indigo-400: #c8d5f9;\n --color-indigo-500: #adbff5;\n --color-indigo-600: #8fa6ef;\n --color-indigo-700: #3c61dd;\n --color-indigo-800: #385bcc;\n --color-indigo-900: #3451b2;\n --color-indigo-1000: #101d47;\n --color-cyan-25: #fbfdfe;\n --color-cyan-50: #f2fcfd;\n --color-cyan-100: #e9f9fb;\n --color-cyan-200: #daf4f7;\n --color-cyan-300: #c3e9ef;\n --color-cyan-400: #a8dee6;\n --color-cyan-500: #85cedb;\n --color-cyan-600: #3fb9cf;\n --color-cyan-700: #05a2c2;\n --color-cyan-800: #0895b4;\n --color-cyan-900: #0c7792;\n --color-cyan-1000: #04323e;\n --color-teal-25: #fbfefd;\n --color-teal-50: #f2fcfa;\n --color-teal-100: #e7f9f5;\n --color-teal-200: #d8f3ed;\n --color-teal-300: #c7ebe5;\n --color-teal-400: #afdfd7;\n --color-teal-500: #8dcec3;\n --color-teal-600: #55b9ac;\n --color-teal-700: #12a594;\n --color-teal-800: #0e9a8a;\n --color-teal-900: #067a6e;\n --color-teal-1000: #11322d;\n --color-grass-25: #fbfefb;\n --color-grass-50: #f3fcf3;\n --color-grass-100: #ebf9eb;\n --color-grass-200: #def2de;\n --color-grass-300: #cceacd;\n --color-grass-400: #b9dfbc;\n --color-grass-500: #96cf9b;\n --color-grass-600: #64b974;\n --color-grass-700: #45a557;\n --color-grass-800: #3d994f;\n --color-grass-900: #297a3a;\n --color-grass-1000: #1b311e;\n --color-brown-25: #fefcfb;\n --color-brown-50: #fcfaf7;\n --color-brown-100: #f9f2ec;\n --color-brown-200: #f4e8dc;\n --color-brown-300: #efddcd;\n --color-brown-400: #e8cdb5;\n --color-brown-500: #ddb997;\n --color-brown-600: #d09e71;\n --color-brown-700: #ad7f58;\n --color-brown-800: #a27653;\n --color-brown-900: #886349;\n --color-brown-1000: #3f2c22;\n --color-orange-25: #fefcfb;\n --color-orange-50: #fef9f6;\n --color-orange-100: #fff0e5;\n --color-orange-200: #ffe8d6;\n --color-orange-300: #ffdbc2;\n --color-orange-400: #ffcca8;\n --color-orange-500: #ffb280;\n --color-orange-600: #fa924c;\n --color-orange-700: #f76808;\n --color-orange-800: #eb5e00;\n --color-orange-900: #bd4b00;\n --color-orange-1000: #451e11;\n --color-sky-25: #fafeff;\n --color-sky-50: #f0fcff;\n --color-sky-100: #e5f9ff;\n --color-sky-200: #d3f3fd;\n --color-sky-300: #c3ecf9;\n --color-sky-400: #a2def1;\n --color-sky-500: #7bd0ea;\n --color-sky-600: #2ebee5;\n --color-sky-700: #68ddfd;\n --color-sky-800: #5dd3f4;\n --color-sky-900: #007aa3;\n --color-sky-1000: #003242;\n --color-mint-25: #fbfefe;\n --color-mint-50: #f1fefa;\n --color-mint-100: #e0fbf3;\n --color-mint-200: #d4f7ee;\n --color-mint-300: #c2efe4;\n --color-mint-400: #a5e4d4;\n --color-mint-500: #7dd4bf;\n --color-mint-600: #40c4aa;\n --color-mint-700: #70e1c8;\n --color-mint-800: #68d9c1;\n --color-mint-900: #147b6d;\n --color-mint-1000: #09342e;\n --color-lime-25: #fdfefb;\n --color-lime-50: #f6fcee;\n --color-lime-100: #eefadb;\n --color-lime-200: #e3f7c5;\n --color-lime-300: #d7f2b0;\n --color-lime-400: #cae996;\n --color-lime-500: #b1d16b;\n --color-lime-600: #94ba2c;\n --color-lime-700: #99d52a;\n --color-lime-800: #93c926;\n --color-lime-900: #5d770d;\n --color-lime-1000: #273409;\n --color-yellow-25: #fcfcf7;\n --color-yellow-50: #fffce5;\n --color-yellow-100: #fffbd1;\n --color-yellow-200: #fff8bd;\n --color-yellow-300: #fef2a4;\n --color-yellow-400: #f9e78b;\n --color-yellow-500: #efd26c;\n --color-yellow-600: #f5d90a;\n --color-yellow-700: #ebbc00;\n --color-yellow-800: #f5cc00;\n --color-yellow-900: #946800;\n --color-yellow-1000: #34280f;\n --color-gold-25: #fdfdfc;\n --color-gold-50: #fbfaf3;\n --color-gold-100: #f6f3ea;\n --color-gold-200: #eeeadd;\n --color-gold-300: #e6e0d1;\n --color-gold-400: #dad1be;\n --color-gold-500: #cbbda4;\n --color-gold-600: #b8a384;\n --color-gold-700: #968264;\n --color-gold-800: #8d7a5e;\n --color-gold-900: #776750;\n --color-gold-1000: #3b352b;\n --color-bronze-25: #fdfcfc;\n --color-bronze-50: #fdf8f7;\n --color-bronze-100: #f8f0ed;\n --color-bronze-200: #f2e8e3;\n --color-bronze-300: #eaddd7;\n --color-bronze-400: #e0cec7;\n --color-bronze-500: #d0b8af;\n --color-bronze-600: #be9f93;\n --color-bronze-700: #a18072;\n --color-bronze-800: #967669;\n --color-bronze-900: #846358;\n --color-bronze-1000: #44312c;\n}\n\n.dark-theme {\n --color-white: #121212;\n --color-black: #fff;\n --color-gray-25: #171717;\n --color-gray-50: #1c1c1c;\n --color-gray-100: #242424;\n --color-gray-200: #292929;\n --color-gray-300: #2e2e2e;\n --color-gray-400: #333;\n --color-gray-500: #3d3d3d;\n --color-gray-600: #4f4f4f;\n --color-gray-700: #707070;\n --color-gray-800: #7d7d7d;\n --color-gray-900: #a1a1a1;\n --color-gray-1000: #ededed;\n --color-blue-25: #0f161f;\n --color-blue-50: #0f1c2e;\n --color-blue-100: #10233d;\n --color-blue-200: #102a4c;\n --color-blue-300: #0f2f57;\n --color-blue-400: #0d3868;\n --color-blue-500: #0a4380;\n --color-blue-600: #0954a5;\n --color-blue-700: #0091ff;\n --color-blue-800: #389fff;\n --color-blue-900: #52a8ff;\n --color-blue-1000: #ebf6ff;\n --color-red-25: #201315;\n --color-red-50: #291415;\n --color-red-100: #3a1719;\n --color-red-200: #471a1d;\n --color-red-300: #551b1f;\n --color-red-400: #671e21;\n --color-red-500: #832126;\n --color-red-600: #a82428;\n --color-red-700: #e5484d;\n --color-red-800: #f2545a;\n --color-red-900: #ff6166;\n --color-red-1000: #feecee;\n --color-amber-25: #1f1300;\n --color-amber-50: #291800;\n --color-amber-100: #331b00;\n --color-amber-200: #3d2100;\n --color-amber-300: #4d2a00;\n --color-amber-400: #573300;\n --color-amber-500: #6b4105;\n --color-amber-600: #804d00;\n --color-amber-700: #ffb224;\n --color-amber-800: #ffbb3d;\n --color-amber-900: #ffc457;\n --color-amber-1000: #fef3dc;\n --color-green-25: #0c1811;\n --color-green-50: #0b1d16;\n --color-green-100: #0f291e;\n --color-green-200: #113123;\n --color-green-300: #133929;\n --color-green-400: #164531;\n --color-green-500: #1b553b;\n --color-green-600: #226d49;\n --color-green-700: #30a66d;\n --color-green-800: #3caf77;\n --color-green-900: #4bc389;\n --color-green-1000: #e5fbea;\n --color-tomato-25: #1c1412;\n --color-tomato-50: #29130f;\n --color-tomato-100: #3a1713;\n --color-tomato-200: #481a14;\n --color-tomato-300: #561d15;\n --color-tomato-400: #642016;\n --color-tomato-500: #7f2315;\n --color-tomato-600: #a52b12;\n --color-tomato-700: #e54d2e;\n --color-tomato-800: #ec5d41;\n --color-tomato-900: #f16b50;\n --color-tomato-1000: #feefec;\n --color-crimson-25: #1e1519;\n --color-crimson-50: #28151d;\n --color-crimson-100: #3a1726;\n --color-crimson-200: #471a2d;\n --color-crimson-300: #551b33;\n --color-crimson-400: #631d3a;\n --color-crimson-500: #811d45;\n --color-crimson-600: #ae1955;\n --color-crimson-700: #ea3e83;\n --color-crimson-800: #f05189;\n --color-crimson-900: #f75f8f;\n --color-crimson-1000: #feecf4;\n --color-pink-25: #20131c;\n --color-pink-50: #281522;\n --color-pink-100: #3a182f;\n --color-pink-200: #461b38;\n --color-pink-300: #501b3f;\n --color-pink-400: #621d4a;\n --color-pink-500: #7c1d5b;\n --color-pink-600: #a51871;\n --color-pink-700: #d742a0;\n --color-pink-800: #e34aa8;\n --color-pink-900: #f65ab5;\n --color-pink-1000: #feecf7;\n --color-plum-25: #1c121c;\n --color-plum-50: #241424;\n --color-plum-100: #331a33;\n --color-plum-200: #3e1c3f;\n --color-plum-300: #48214a;\n --color-plum-400: #552659;\n --color-plum-500: #6b2e70;\n --color-plum-600: #883894;\n --color-plum-700: #ab4aba;\n --color-plum-800: #bc53c6;\n --color-plum-900: #d864d8;\n --color-plum-1000: #fbedfc;\n --color-purple-25: #1c151e;\n --color-purple-50: #231528;\n --color-purple-100: #2e1938;\n --color-purple-200: #3a1e48;\n --color-purple-300: #422154;\n --color-purple-400: #4f2768;\n --color-purple-500: #5f2e85;\n --color-purple-600: #7938b2;\n --color-purple-700: #8e4ec6;\n --color-purple-800: #9c5bd2;\n --color-purple-900: #bf7af0;\n --color-purple-1000: #f8edfc;\n --color-violet-25: #17151e;\n --color-violet-50: #1c172b;\n --color-violet-100: #241d3e;\n --color-violet-200: #2b224f;\n --color-violet-300: #32265e;\n --color-violet-400: #392c72;\n --color-violet-500: #443592;\n --color-violet-600: #5741c3;\n --color-violet-700: #6d54cf;\n --color-violet-800: #7b65dc;\n --color-violet-900: #9f8dfc;\n --color-violet-1000: #efecfe;\n --color-indigo-25: #131620;\n --color-indigo-50: #15192d;\n --color-indigo-100: #18203e;\n --color-indigo-200: #1c274f;\n --color-indigo-300: #1f2c5c;\n --color-indigo-400: #22336d;\n --color-indigo-500: #273f8b;\n --color-indigo-600: #2f4db1;\n --color-indigo-700: #3c61dd;\n --color-indigo-800: #5474e8;\n --color-indigo-900: #859dff;\n --color-indigo-1000: #edf0fd;\n --color-cyan-25: #07191d;\n --color-cyan-50: #061d23;\n --color-cyan-100: #072931;\n --color-cyan-200: #07303b;\n --color-cyan-300: #073945;\n --color-cyan-400: #064251;\n --color-cyan-500: #044f62;\n --color-cyan-600: #006680;\n --color-cyan-700: #05a2c2;\n --color-cyan-800: #00b1cc;\n --color-cyan-900: #00c1d6;\n --color-cyan-1000: #e0f8fa;\n --color-teal-25: #091a16;\n --color-teal-50: #04201b;\n --color-teal-100: #062822;\n --color-teal-200: #07312b;\n --color-teal-300: #083a33;\n --color-teal-400: #09443c;\n --color-teal-500: #0b564c;\n --color-teal-600: #0c6e63;\n --color-teal-700: #12a594;\n --color-teal-800: #10b2a2;\n --color-teal-900: #0ac7b4;\n --color-teal-1000: #e0faf4;\n --color-grass-25: #0c1811;\n --color-grass-50: #0f1f13;\n --color-grass-100: #142a1a;\n --color-grass-200: #16311e;\n --color-grass-300: #193921;\n --color-grass-400: #1d4427;\n --color-grass-500: #255631;\n --color-grass-600: #2f6f3b;\n --color-grass-700: #45a557;\n --color-grass-800: #55b466;\n --color-grass-900: #62c073;\n --color-grass-1000: #e5fbea;\n --color-brown-25: #1a1614;\n --color-brown-50: #211712;\n --color-brown-100: #2e201a;\n --color-brown-200: #35251d;\n --color-brown-300: #3f2c22;\n --color-brown-400: #483528;\n --color-brown-500: #5d4332;\n --color-brown-600: #775940;\n --color-brown-700: #ad7f58;\n --color-brown-800: #bd8c61;\n --color-brown-900: #dba270;\n --color-brown-1000: #faf0e5;\n --color-orange-25: #1e1106;\n --color-orange-50: #291300;\n --color-orange-100: #3a1b03;\n --color-orange-200: #431e04;\n --color-orange-300: #4d2205;\n --color-orange-400: #602a06;\n --color-orange-500: #763205;\n --color-orange-600: #943e00;\n --color-orange-700: #f76808;\n --color-orange-800: #ff7e29;\n --color-orange-900: #ff8b3d;\n --color-orange-1000: #feeadc;\n --color-sky-25: #0d1921;\n --color-sky-50: #071e2c;\n --color-sky-100: #082535;\n --color-sky-200: #082c40;\n --color-sky-300: #08344a;\n --color-sky-400: #083e59;\n --color-sky-500: #064a6a;\n --color-sky-600: #005d85;\n --color-sky-700: #68ddfd;\n --color-sky-800: #8ae8ff;\n --color-sky-900: #2fc8ee;\n --color-sky-1000: #ebf8ff;\n --color-mint-25: #071715;\n --color-mint-50: #051f1d;\n --color-mint-100: #052926;\n --color-mint-200: #042f2a;\n --color-mint-300: #033a34;\n --color-mint-400: #01463e;\n --color-mint-500: #00574b;\n --color-mint-600: #006b59;\n --color-mint-700: #70e1c8;\n --color-mint-800: #95f3d9;\n --color-mint-900: #25d0ab;\n --color-mint-1000: #e8fcf8;\n --color-lime-25: #141807;\n --color-lime-50: #171c08;\n --color-lime-100: #1e260d;\n --color-lime-200: #252e0f;\n --color-lime-300: #2b3711;\n --color-lime-400: #354314;\n --color-lime-500: #405115;\n --color-lime-600: #546916;\n --color-lime-700: #99d52a;\n --color-lime-800: #c4f042;\n --color-lime-900: #88bf22;\n --color-lime-1000: #f0fbdf;\n --color-yellow-25: #1a1300;\n --color-yellow-50: #241b00;\n --color-yellow-100: #2e2200;\n --color-yellow-200: #332600;\n --color-yellow-300: #3d2f00;\n --color-yellow-400: #473a00;\n --color-yellow-500: #574805;\n --color-yellow-600: #705e00;\n --color-yellow-700: #f5d90a;\n --color-yellow-800: #ffef5c;\n --color-yellow-900: #f0c000;\n --color-yellow-1000: #fffad1;\n --color-gold-25: #161512;\n --color-gold-50: #1d1b16;\n --color-gold-100: #26231c;\n --color-gold-200: #2c2920;\n --color-gold-300: #353027;\n --color-gold-400: #3f392c;\n --color-gold-500: #4f4636;\n --color-gold-600: #6b5d47;\n --color-gold-700: #968264;\n --color-gold-800: #a59173;\n --color-gold-900: #bfa888;\n --color-gold-1000: #f7f5e8;\n --color-bronze-25: #191514;\n --color-bronze-50: #201a18;\n --color-bronze-100: #29201e;\n --color-bronze-200: #332824;\n --color-bronze-300: #3c2f2a;\n --color-bronze-400: #453530;\n --color-bronze-500: #57443d;\n --color-bronze-600: #74594e;\n --color-bronze-700: #a18072;\n --color-bronze-800: #b08c7d;\n --color-bronze-900: #cca494;\n --color-bronze-1000: #f9ede7;\n}\n\n.inter {\n font-family: Inter, sans-serif;\n}\n\n@supports (font-variation-settings: normal) {\n .inter {\n font-family: Inter var, sans-serif;\n }\n}\n\n.pulse-red-700 {\n animation: 2s infinite pulse-red-700;\n transform: scale(1);\n box-shadow: 0 0 #e5484d;\n}\n\n@keyframes pulse-red-700 {\n 0% {\n transform: scale(.95);\n box-shadow: 0 0 #e5484db3;\n }\n\n 70% {\n transform: scale(1);\n box-shadow: 0 0 0 6px #e5484d00;\n }\n\n to {\n transform: scale(.95);\n box-shadow: 0 0 #e5484d00;\n }\n}\n\n::-webkit-scrollbar {\n width: 0;\n height: 0;\n display: none;\n}\n\n@keyframes enter {\n 0% {\n opacity: var(--tw-enter-opacity, 1);\n transform: translate3d(var(--tw-enter-translate-x, 0), var(--tw-enter-translate-y, 0), 0) scale3d(var(--tw-enter-scale, 1), var(--tw-enter-scale, 1), var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0));\n }\n}\n\n@keyframes exit {\n to {\n opacity: var(--tw-exit-opacity, 1);\n transform: translate3d(var(--tw-exit-translate-x, 0), var(--tw-exit-translate-y, 0), 0) scale3d(var(--tw-exit-scale, 1), var(--tw-exit-scale, 1), var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0));\n }\n}\n\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-space-x-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-divide-x-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n\n@property --tw-divide-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-leading {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n\n@property --tw-blur {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-brightness {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-contrast {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-grayscale {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-hue-rotate {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-invert {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-opacity {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-saturate {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-sepia {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-drop-shadow {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-drop-shadow-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-drop-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n\n@property --tw-drop-shadow-size {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-backdrop-blur {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-backdrop-brightness {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-backdrop-contrast {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-backdrop-grayscale {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-backdrop-hue-rotate {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-backdrop-invert {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-backdrop-opacity {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-backdrop-saturate {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-backdrop-sepia {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-duration {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-ease {\n syntax: \"*\";\n inherits: false\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes pulse {\n 50% {\n opacity: .5;\n }\n}\n\n@keyframes accordion-down {\n 0% {\n height: 0;\n }\n\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n\n@keyframes accordion-up {\n 0% {\n height: var(--radix-accordion-content-height);\n }\n\n to {\n height: 0;\n }\n}\n\n@keyframes flash {\n 0% {\n opacity: .9;\n }\n\n to {\n opacity: 0;\n }\n}\n";
12812
14321
 
12813
14322
 
12814
14323
  const $24075a5d702d64b3$var$queryClient = new (0, $3Sbms$QueryClient)();