This commit is contained in:
2025-12-20 18:46:45 +08:00
parent 5163e756f0
commit 547fd99c23
73 changed files with 15635 additions and 1924 deletions

View File

@@ -2,9 +2,9 @@ name: Node.js CI
on:
push:
branches: ['main']
branches: ["main"]
pull_request:
branches: ['main']
branches: ["main"]
jobs:
build:
@@ -18,7 +18,7 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: 22
cache: 'npm'
cache: "npm"
- name: Install dependencies
run: npm ci

18
.prettierignore Normal file
View File

@@ -0,0 +1,18 @@
node_modules/
.output/
.nuxt/
dist/
build/
public/build/
.vscode/
.pnp.*
coverage/
*.log
*.lock
pnpm-lock.yaml
.env
.env.*
.DS_Store
# ignore generated images
public/images/generated/

View File

@@ -1,5 +1,13 @@
{
"singleQuote": true,
"semi": false,
"printWidth": 100
"printWidth": 100,
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": false,
"trailingComma": "all",
"bracketSpacing": true,
"arrowParens": "always",
"endOfLine": "lf",
"htmlWhitespaceSensitivity": "css",
"bracketSameLine": true
}

View File

@@ -19,5 +19,9 @@
"spacegrotesk",
"Tailwindcss",
"vuex"
]
],
"dependi.npm.lockFileEnabled": false,
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}

View File

@@ -1,20 +1,43 @@
<script setup>
import { siteMetaData } from './data'
<script setup lang="ts">
import { ref, onMounted, computed } from "vue";
import siteConfig from "~/config";
// import { siteMetaData } from "./data";
useHead({
htmlAttrs: {
lang: 'en',
lang: "en",
},
meta: () => siteMetaData,
})
// meta: () => siteMetaData,
});
const desktopBg = siteConfig.theme.background || "";
const mobileBg = siteConfig.theme.backgroundMobile || "";
const currentBg = ref<string>(desktopBg);
onMounted(() => {
if (mobileBg && window.innerWidth <= 768) {
currentBg.value = mobileBg;
}
});
const bgStyle = computed(() =>
currentBg.value ? { backgroundImage: "url(" + currentBg.value + ")" } : {},
);
</script>
<template>
<div class="bg-[#F1F2F4] dark:text-zinc-300 dark:bg-slate-950">
<NuxtLoadingIndicator />
<NuxtLayout>
<NuxtPage />
</NuxtLayout>
<div class="relative">
<div
v-if="currentBg"
class="fixed inset-0 -z-20 bg-cover bg-center pointer-events-none"
:style="bgStyle" />
<div class="dark:text-zinc-300">
<NuxtLoadingIndicator />
<NuxtLayout>
<NuxtPage />
</NuxtLayout>
</div>
</div>
</template>
@@ -39,6 +62,10 @@ useHead({
filter: blur(1rem);
}
html {
scroll-behavior: smooth;
}
html.dark {
color-scheme: dark;
}

View File

@@ -1,19 +1,19 @@
<script lang="ts" setup>
interface Props {
title?: string
description?: string
headline?: string
link?: string
title?: string;
description?: string;
headline?: string;
link?: string;
}
const props = withDefaults(defineProps<Props>(), {
title: 'title',
description: 'description',
headline: 'headline',
link: '',
})
title: "title",
description: "description",
headline: "headline",
link: "",
});
const title = computed(() => props.title.slice(0, 60))
const title = computed(() => props.title.slice(0, 60));
</script>
<template>
@@ -24,13 +24,11 @@ const title = computed(() => props.title.slice(0, 60))
height="593"
viewBox="0 0 629 593"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_f_199_94966)">
<path
d="M628.5 -578L639.334 -94.4223L806.598 -548.281L659.827 -87.387L965.396 -462.344L676.925 -74.0787L1087.69 -329.501L688.776 -55.9396L1160.22 -164.149L694.095 -34.9354L1175.13 15.7948L692.306 -13.3422L1130.8 190.83L683.602 6.50012L1032.04 341.989L668.927 22.4412L889.557 452.891L649.872 32.7537L718.78 511.519L628.5 36.32L538.22 511.519L607.128 32.7537L367.443 452.891L588.073 22.4412L224.955 341.989L573.398 6.50012L126.198 190.83L564.694 -13.3422L81.8734 15.7948L562.905 -34.9354L96.7839 -164.149L568.224 -55.9396L169.314 -329.501L580.075 -74.0787L291.604 -462.344L597.173 -87.387L450.402 -548.281L617.666 -94.4223L628.5 -578Z"
fill="#00DC82"
/>
fill="#00DC82" />
</g>
<defs>
<filter
@@ -40,8 +38,7 @@ const title = computed(() => props.title.slice(0, 60))
width="1255.25"
height="1251.52"
filterUnits="userSpaceOnUse"
color-interpolation-filters="sRGB"
>
color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix" />
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape" />
<feGaussianBlur stdDeviation="40.5" result="effect1_foregroundBlur_199_94966" />

View File

@@ -1,28 +1,28 @@
<script lang="ts" setup>
interface Props {
title?: string
description?: string
headline?: string
link?: string
title?: string;
description?: string;
headline?: string;
link?: string;
}
const props = withDefaults(defineProps<Props>(), {
title: 'title',
description: 'description',
headline: 'headline',
link: '',
})
title: "title",
description: "description",
headline: "headline",
link: "",
});
const formattedTitle = computed(() =>
props.title.length > 70 ? `${props.title.slice(0, 60)}...` : props.title,
)
);
const formattedDescription = computed(() =>
props.description.length > 100 ? `${props.description}...` : props.description,
)
);
const formattedLink = computed(() => {
if (props.link.endsWith('jpg') || props.link.endsWith('png')) return props.link
else return '/blogs-img/blog.jpg'
})
if (props.link.endsWith("jpg") || props.link.endsWith("png")) return props.link;
else return "/blogs-img/blog.jpg";
});
</script>
<template>
@@ -33,13 +33,11 @@ const formattedLink = computed(() => {
height="593"
viewBox="0 0 629 593"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_f_199_94966)">
<path
d="M628.5 -578L639.334 -94.4223L806.598 -548.281L659.827 -87.387L965.396 -462.344L676.925 -74.0787L1087.69 -329.501L688.776 -55.9396L1160.22 -164.149L694.095 -34.9354L1175.13 15.7948L692.306 -13.3422L1130.8 190.83L683.602 6.50012L1032.04 341.989L668.927 22.4412L889.557 452.891L649.872 32.7537L718.78 511.519L628.5 36.32L538.22 511.519L607.128 32.7537L367.443 452.891L588.073 22.4412L224.955 341.989L573.398 6.50012L126.198 190.83L564.694 -13.3422L81.8734 15.7948L562.905 -34.9354L96.7839 -164.149L568.224 -55.9396L169.314 -329.501L580.075 -74.0787L291.604 -462.344L597.173 -87.387L450.402 -548.281L617.666 -94.4223L628.5 -578Z"
fill="#00DC82"
/>
fill="#00DC82" />
</g>
<defs>
<filter
@@ -49,8 +47,7 @@ const formattedLink = computed(() => {
width="1255.25"
height="1251.52"
filterUnits="userSpaceOnUse"
color-interpolation-filters="sRGB"
>
color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix" />
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape" />
<feGaussianBlur stdDeviation="40.5" result="effect1_foregroundBlur_199_94966" />

View File

@@ -1,46 +1,43 @@
<script lang="ts" setup>
interface Props {
path?: string
title?: string
date?: string
description?: string
image?: string
alt?: string
ogImage?: string
tags?: Array<string>
published?: boolean
path?: string;
title?: string;
date?: string;
description?: string;
image?: string;
alt?: string;
ogImage?: string;
tags?: Array<string>;
published?: boolean;
}
withDefaults(defineProps<Props>(), {
path: '/',
title: 'no-title',
date: 'no-date',
description: 'no-description',
image: '/blogs-img/blog.jpg',
alt: 'no-alt',
ogImage: '/blogs-img/blog.jpg',
path: "/",
title: "no-title",
date: "no-date",
description: "no-description",
image: "/blogs-img/blog.jpg",
alt: "no-alt",
ogImage: "/blogs-img/blog.jpg",
tags: () => [],
published: false,
})
});
</script>
<template>
<article
class="group border dark:border-gray-800 m-2 rounded-2xl overflow-hidden shadow-sm text-zinc-700 dark:text-zinc-300"
>
class="group border dark:border-gray-800 m-2 rounded-2xl overflow-hidden shadow-sm text-zinc-700 dark:text-zinc-300">
<NuxtLink :to="path" class="grid grid-cols-1 sm:grid-cols-10 gap-1">
<div class="sm:col-span-3">
<NuxtImg
class="h-full w-full object-cover object-center rounded-t-2xl sm:rounded-l-2xl sm:rounded-t-none shadow-lg group-hover:scale-[1.02] transition-all duration-500"
width="300"
:src="image"
:alt="alt"
/>
:alt="alt" />
</div>
<div class="sm:col-span-7 p-5">
<h2
class="text-xl font-semibold text-black dark:text-zinc-300 pb-1 group-hover:text-sky-700 dark:group-hover:text-sky-400"
>
class="text-xl font-semibold text-black dark:text-zinc-300 pb-1 group-hover:text-sky-700 dark:group-hover:text-sky-400">
{{ title }}
</h2>
<p class="text-ellipsis line-clamp-2">
@@ -56,8 +53,7 @@ withDefaults(defineProps<Props>(), {
<p
v-for="tag in tags"
:key="tag"
class="bg-gray-200 dark:bg-slate-900 rounded-md px-2 py-1 font-semibold"
>
class="bg-gray-200 dark:bg-slate-900 rounded-md px-2 py-1 font-semibold">
{{ tag }}
</p>
</div>

View File

@@ -1,5 +1,5 @@
<script setup lang="ts">
import { blogsPage } from '~/data'
import { blogsPage } from "~/data";
</script>
<template>
@@ -7,8 +7,7 @@ import { blogsPage } from '~/data'
<div class="grid grid-cols-1 sm:grid-cols-2 items-center">
<div class="px-6">
<h1
class="text-black dark:text-zinc-300 font-semibold leading-tight text-4xl md:text-5xl my-5"
>
class="text-black dark:text-zinc-300 font-semibold leading-tight text-4xl md:text-5xl my-5">
{{ blogsPage.title }}
</h1>
<p class="dark:text-zinc-300">

View File

@@ -1,57 +1,62 @@
<script setup lang="ts">
interface Props {
title: string
image: string
alt: string
description: string
date: string
tags: Array<string>
title: string;
image: string;
alt: string;
description: string;
date: string;
tags: Array<string>;
}
withDefaults(defineProps<Props>(), {
title: 'no-title',
image: '#',
alt: 'no-img',
description: 'no description',
date: 'no-date',
title: "no-title",
image: "#",
alt: "no-img",
description: "no description",
date: "no-date",
tags: () => [],
})
});
</script>
<template>
<header>
<h1 class="text-xl dark:text-zinc-300 md:text-3xl lg:text-4xl m-7 font-bold text-center">
{{ title || '' }}
</h1>
<NuxtImg
:src="image || ''"
:alt="alt || ''"
width="600"
class="m-auto rounded-2xl shadow-lg h-32 md:h-72 w-4/6 md:w-4/5 content-center object-cover"
/>
<p
class="text-xs sm:text-sm my-3 max-w-xl mx-auto text-center text-zinc-600 dark:text-zinc-400"
>
{{ description }}
</p>
<div class="flex w-full justify-center text-xs md:text-base my-8">
<div class="md:flex text-black dark:text-zinc-300 content-center gap-8 text-xs sm:text-sm">
<div class="flex items-center font-semibold">
<LogoDate />
<p>{{ date || '' }}</p>
<header class="py-12">
<div class="text-center mb-8">
<div class="flex items-center justify-center gap-3 mb-6">
<div
class="flex items-center text-sm font-bold text-violet-600 dark:text-violet-400 bg-violet-500/10 px-3 py-1 rounded-full border border-violet-500/20">
<LogoDate class="mr-2 w-4 h-4" />
{{ date }}
</div>
<div class="flex items-center gap-2 flex-wrap my-5">
<LogoTag />
<div class="flex items-center gap-2 flex-wrap">
<template v-for="tag in tags" :key="tag">
<NuxtLink :to="`/categories/${tag.toLocaleLowerCase()}`">
<NuxtLink :to="`/tags/${tag.toLocaleLowerCase()}`">
<span
class="bg-gray-200 dark:bg-slate-900 rounded-md px-2 py-1 font-semibold hover:bg-gray-300 dark:hover:bg-slate-800 transition-colors duration-200"
>{{ tag }}</span
class="bg-white/40 dark:bg-slate-800/40 backdrop-blur-md border border-white/20 dark:border-white/5 rounded-full px-3 py-1 text-xs font-bold text-zinc-600 dark:text-zinc-300 hover:bg-violet-500/10 hover:text-violet-600 dark:hover:text-violet-400 transition-all duration-300"
>#{{ tag }}</span
>
</NuxtLink>
</template>
</div>
</div>
<h1
class="text-3xl md:text-4xl lg:text-5xl font-extrabold text-zinc-800 dark:text-zinc-100 mb-6 tracking-tight leading-tight">
{{ title }}
</h1>
<p class="text-lg text-zinc-600 dark:text-zinc-400 max-w-2xl mx-auto leading-relaxed italic">
"{{ description }}"
</p>
</div>
<div class="relative group max-w-4xl mx-auto mb-12">
<div
class="absolute inset-0 bg-gradient-to-tr from-violet-500/20 to-fuchsia-500/20 rounded-3xl blur-2xl opacity-0 group-hover:opacity-100 transition-opacity duration-700"></div>
<NuxtImg
:src="image || ''"
:alt="alt || ''"
width="1200"
class="relative rounded-3xl shadow-2xl w-full aspect-[21/9] object-cover border border-white/20 dark:border-white/5 transition-transform duration-700 group-hover:scale-[1.01]" />
</div>
</header>
</template>

View File

@@ -1,22 +1,55 @@
<script setup lang="ts">
const { path } = useRoute()
const articles = await queryCollection('content').path(path).first()
const { path } = useRoute();
const articles = await queryCollection("content").path(path).first();
const links = articles?.body?.toc?.links || []
const links = articles?.body?.toc?.links || [];
const activeId = ref("");
onMounted(() => {
const observer = new IntersectionObserver(
(entries) => {
entries.forEach((entry) => {
if (entry.isIntersecting) {
activeId.value = entry.target.id;
}
});
},
{ rootMargin: "-100px 0% -80% 0%" },
);
links.forEach((link) => {
const el = document.getElementById(link.id);
if (el) observer.observe(el);
});
onUnmounted(() => observer.disconnect());
});
</script>
<template>
<div class="lg:col-span-3 sticky top-28 h-96 hidden lg:block justify-self-end">
<div class="border dark:border-gray-800 p-3 rounded-md min-w-[200px] dark:bg-slate-900">
<h1 class="text-sm font-bold mb-3 border-b dark:border-gray-800 pb-2">Table Of Content</h1>
<NuxtLink
v-for="link in links"
:key="link.id"
:to="`#${link.id}`"
class="block text-xs mb-3 hover:underline"
>
{{ link.text }}
</NuxtLink>
<div class="lg:col-span-4 sticky top-28 h-fit hidden lg:block">
<div
class="bg-white/40 dark:bg-slate-900/40 backdrop-blur-md border border-white/20 dark:border-white/5 p-6 rounded-3xl shadow-sm">
<h3
class="text-xs font-bold uppercase tracking-widest text-zinc-400 dark:text-zinc-500 mb-4 flex items-center gap-2">
<Icon name="heroicons:list-bullet" class="w-4 h-4" />
Table Of Content
</h3>
<nav class="space-y-1">
<NuxtLink
v-for="link in links"
:key="link.id"
:to="`#${link.id}`"
class="block text-sm py-1.5 px-3 rounded-xl transition-all duration-200"
:class="[
activeId === link.id
? 'text-violet-600 dark:text-violet-400 bg-violet-500/10 font-bold translate-x-1'
: 'text-zinc-600 dark:text-zinc-400 hover:text-violet-600 dark:hover:text-violet-400 hover:bg-violet-500/5',
]">
{{ link.text }}
</NuxtLink>
</nav>
</div>
</div>
</template>

View File

@@ -1,66 +1,66 @@
<script lang="ts" setup>
interface Props {
path: string
title: string
date: string
description: string
image: string
alt: string
ogImage: string
tags: Array<string>
published: boolean
path: string;
title: string;
date: string;
description: string;
image: string;
alt: string;
ogImage: string;
tags: Array<string>;
published: boolean;
}
withDefaults(defineProps<Props>(), {
path: '/',
title: 'no-title',
date: 'no-date',
description: 'no-description',
image: '/blogs-img/blog.jpg',
alt: 'no-alt',
ogImage: '/blogs-img/blog.jpg',
path: "/",
title: "no-title",
date: "no-date",
description: "no-description",
image: "/blogs-img/blog.jpg",
alt: "no-alt",
ogImage: "/blogs-img/blog.jpg",
tags: () => [],
published: false,
})
});
</script>
<template>
<article
class="group border dark:border-gray-800 m-2 overflow-hidden rounded-2xl shadow-sm text-zinc-700 dark:text-zinc-300"
>
class="group bg-white/40 dark:bg-slate-900/40 backdrop-blur-md border border-white/20 dark:border-white/5 m-2 overflow-hidden rounded-2xl shadow-sm hover:shadow-xl transition-all duration-500 text-zinc-700 dark:text-zinc-300">
<NuxtLink :to="path">
<NuxtImg
class="lg:h-48 md:h-36 w-full object-cover object-center rounded-t-2xl shadow-lg group-hover:scale-[1.02] transition-all duration-500"
width="300"
:src="image"
:alt="alt"
/>
<div class="px-3 pb-4">
<div class="text-black dark:text-zinc-300 pt-3 pb-2">
<div class="flex items-center">
<LogoDate class="-translate-y-[10%]" />
<div class="overflow-hidden">
<NuxtImg
class="lg:h-48 md:h-36 w-full object-cover object-center transition-transform duration-700 group-hover:scale-110"
width="300"
:src="image"
:alt="alt" />
</div>
<div class="px-5 py-5">
<div class="flex items-center justify-between mb-3">
<div class="flex items-center text-xs font-medium text-zinc-500 dark:text-zinc-400">
<LogoDate class="mr-1.5 opacity-70" />
{{ date }}
</div>
<div class="flex items-center gap-1 flex-wrap">
<LogoTag />
<template v-for="tag in tags" :key="tag">
<span class="bg-gray-200 dark:bg-slate-900 rounded-md px-2 py-1 font-semibold">{{
tag
}}</span>
<div class="flex items-center gap-1.5 flex-wrap">
<template v-for="tag in tags.slice(0, 2)" :key="tag">
<span
class="bg-violet-500/10 text-violet-600 dark:text-violet-400 rounded-full px-2.5 py-0.5 text-[10px] font-bold uppercase tracking-wider border border-violet-500/20">
{{ tag }}
</span>
</template>
</div>
</div>
<h2
class="text-xl font-semibold text-black dark:text-zinc-300 pb-1 group-hover:text-sky-700 dark:group-hover:text-sky-400"
>
class="text-xl font-bold text-zinc-800 dark:text-zinc-100 mb-2 group-hover:text-violet-600 dark:group-hover:text-violet-400 transition-colors line-clamp-1">
{{ title }}
</h2>
<p class="text-ellipsis line-clamp-2 text-base">
<p class="text-zinc-600 dark:text-zinc-400 text-sm line-clamp-2 leading-relaxed mb-4">
{{ description }}
</p>
<div class="flex group-hover:underline text-sky-700 dark:text-sky-400 items-center py-2">
<p>Read More</p>
<LogoArrow />
<div
class="flex items-center gap-1 text-sm font-bold text-violet-600 dark:text-violet-400 opacity-0 group-hover:opacity-100 transition-all duration-300 translate-y-2 group-hover:translate-y-0">
<span>Read More</span>
<LogoArrow class="w-4 h-4" />
</div>
</div>
</NuxtLink>

View File

@@ -1,17 +1,14 @@
<template>
<article
class="group border dark:border-gray-800 m-2 rounded-2xl overflow-hidden shadow-lg text-zinc-700"
>
class="group border dark:border-gray-800 m-2 rounded-2xl overflow-hidden shadow-lg text-zinc-700">
<NuxtLink to="/">
<div
class="lg:h-48 md:h-36 w-full object-cover object-center group-hover:scale-[1.05] transition-all duration-500"
>
class="lg:h-48 md:h-36 w-full object-cover object-center group-hover:scale-[1.05] transition-all duration-500">
<LogoConfused />
</div>
<div class="p-5">
<h2
class="text-3xl font-semibold text-black dark:text-zinc-300 pb-1 group-hover:text-sky-700 dark:group-hover:text-sky-400"
>
class="text-3xl font-semibold text-black dark:text-zinc-300 pb-1 group-hover:text-sky-700 dark:group-hover:text-sky-400">
No Post Available
</h2>

View File

@@ -1,42 +1,41 @@
<script setup lang="ts">
interface Props {
title: string
count: number
title: string;
count: number;
}
withDefaults(defineProps<Props>(), {
title: 'No title available',
title: "No title available",
count: 0,
})
});
// some random color for tags
const color = [
'#dc2626',
'#d97706',
'#65a30d',
'#059669',
'#0891b2',
'#0284c7',
'#4f46e5',
'#7c3aed',
'#c026d3',
'#db2777',
]
"#dc2626",
"#d97706",
"#65a30d",
"#059669",
"#0891b2",
"#0284c7",
"#4f46e5",
"#7c3aed",
"#c026d3",
"#db2777",
];
// get a random number
function getRandomInt(min: number, max: number) {
min = Math.ceil(min)
max = Math.floor(max)
return Math.floor(Math.random() * (max - min + 1)) + min
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}
const picAColor = ref(`${color.at(getRandomInt(0, 8))}`)
const picAColor = ref(`${color.at(getRandomInt(0, 8))}`);
</script>
<template>
<div
class="text-[#F1F2F4] px-5 py-3 rounded hover:underline rand-bg-color hover:scale-[1.05] transition-all duration-500"
>
class="text-[#F1F2F4] px-5 py-3 rounded hover:underline rand-bg-color hover:scale-[1.05] transition-all duration-500">
<NuxtLink :to="`/categories/${title.toLocaleLowerCase()}`" class="text-lg font-extrabold">
<h1>#{{ title }}({{ count }})</h1>
</NuxtLink>

View File

@@ -1,5 +1,5 @@
<script setup lang="ts">
import { categoryPage } from '~/data'
import { categoryPage } from "~/data";
</script>
<template>
@@ -7,8 +7,7 @@ import { categoryPage } from '~/data'
<div class="grid grid-cols-1 sm:grid-cols-2 items-center">
<div class="px-6">
<h1
class="text-black dark:text-zinc-300 font-semibold leading-tight text-4xl md:text-5xl my-5"
>
class="text-black dark:text-zinc-300 font-semibold leading-tight text-4xl md:text-5xl my-5">
{{ categoryPage.title }}
</h1>
<p class="dark:text-zinc-300">

View File

@@ -1,17 +1,17 @@
<script setup lang="ts">
import { makeFirstCharUpper } from '@/utils/helper'
import { makeFirstCharUpper } from "@/utils/helper";
const route = useRoute()
const route = useRoute();
// take category from route params & make first char upper
const category = computed(() => {
const name = route.params.category || ''
let strName = ''
const name = route.params.category || "";
let strName = "";
if (Array.isArray(name)) strName = name.at(0) || ''
else strName = name
return makeFirstCharUpper(strName)
})
if (Array.isArray(name)) strName = name.at(0) || "";
else strName = name;
return makeFirstCharUpper(strName);
});
</script>
<template>

View File

@@ -2,7 +2,7 @@
defineProps({
code: {
type: String,
default: '',
default: "",
},
language: {
type: String,
@@ -20,24 +20,56 @@ defineProps({
type: String,
default: null,
},
})
});
</script>
<template>
<code
class="font-mono bg-neutral-200 dark:bg-neutral-800 rounded border-2 border-neutral-300 dark:border-neutral-700 p-0.5 no-backticks"
>
<slot />
</code>
<div
class="group relative my-6 overflow-hidden rounded-2xl border border-white/10 bg-slate-950 shadow-2xl">
<!-- 代码块头部 -->
<div
v-if="filename || language"
class="flex items-center justify-between px-4 py-2 bg-white/5 border-b border-white/5">
<div class="flex items-center gap-2">
<div class="flex gap-1.5">
<div class="w-3 h-3 rounded-full bg-red-500/80"></div>
<div class="w-3 h-3 rounded-full bg-amber-500/80"></div>
<div class="w-3 h-3 rounded-full bg-emerald-500/80"></div>
</div>
<span v-if="filename" class="ml-2 text-xs font-mono text-zinc-400">{{ filename }}</span>
</div>
<span v-if="language" class="text-[10px] font-bold uppercase tracking-widest text-zinc-500">{{
language
}}</span>
</div>
<!-- 代码内容 -->
<div class="relative">
<pre class="!m-0 !bg-transparent !p-4 overflow-x-auto custom-scrollbar"><slot /></pre>
<!-- 复制按钮 (可选实现) -->
<div class="absolute top-3 right-3 opacity-0 group-hover:opacity-100 transition-opacity">
<button
class="p-2 rounded-lg bg-white/5 hover:bg-white/10 border border-white/10 text-zinc-400 hover:text-white transition-colors">
<Icon name="heroicons:clipboard" class="w-4 h-4" />
</button>
</div>
</div>
</div>
</template>
<style>
pre code .line {
display: block;
min-height: 1rem;
<style scoped>
.custom-scrollbar::-webkit-scrollbar {
height: 8px;
}
.no-backticks::before,
.no-backticks::after {
content: '' !important; /* Hide backticks */
.custom-scrollbar::-webkit-scrollbar-track {
background: transparent;
}
.custom-scrollbar::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.1);
border-radius: 10px;
}
.custom-scrollbar::-webkit-scrollbar-thumb:hover {
background: rgba(255, 255, 255, 0.2);
}
</style>

View File

@@ -1,5 +1,5 @@
<script setup lang="ts">
import { footerData, seoData } from '~/data'
import { footerData, seoData } from "~/data";
</script>
<template>
@@ -11,8 +11,7 @@ import { footerData, seoData } from '~/data'
<a
:href="`mailto: ${seoData.mailAddress}`"
class="block text-center w-full bg-sky-700 p-2 rounded-lg text-[#F1F2F4] mt-3 text-sm"
>
class="block text-center w-full bg-sky-700 p-2 rounded-lg text-[#F1F2F4] mt-3 text-sm">
Sent Mail
</a>
</div>

View File

@@ -1,5 +1,5 @@
<script setup lang="ts">
import { footerData, socialLinks } from '~/data'
import { footerData, socialLinks } from "~/data";
</script>
<template>
@@ -15,32 +15,28 @@ import { footerData, socialLinks } from '~/data'
:to="socialLinks.githubLink"
target="_blank"
class="p-2 bg-gray-300 text-gray-800 rounded-md dark:bg-sky-700 dark:text-[#F1F2F4]"
aria-label="Github"
>
aria-label="Github">
<Icon name="fa:github" size="1em" class="-translate-y-[-10%]" />
</NuxtLink>
<NuxtLink
:to="socialLinks.linkedinLink"
target="_blank"
class="p-2 bg-gray-300 text-gray-800 rounded-md dark:bg-sky-700 dark:text-[#F1F2F4]"
aria-label="LinkedIn"
>
aria-label="LinkedIn">
<Icon name="fa:linkedin-square" size="1em" class="-translate-y-[-10%]" />
</NuxtLink>
<NuxtLink
:to="socialLinks.twitterLink"
target="_blank"
class="p-2 bg-gray-300 text-gray-800 rounded-md dark:bg-sky-700 dark:text-[#F1F2F4]"
aria-label="Twitter"
>
aria-label="Twitter">
<Icon name="fa:twitter-square" size="1em" class="-translate-y-[-10%]" />
</NuxtLink>
<NuxtLink
:to="socialLinks.stackoverflowLink"
target="_blank"
class="p-2 bg-gray-300 text-gray-800 rounded-md dark:bg-sky-700 dark:text-[#F1F2F4]"
aria-label="StackOverflow"
>
aria-label="StackOverflow">
<Icon name="fa:stack-overflow" size="1em" class="-translate-y-[-10%]" />
</NuxtLink>
</div>

View File

@@ -1,5 +1,5 @@
<script setup lang="ts">
import { footerData } from '~/data'
import { footerData } from "~/data";
</script>
<template>

View File

@@ -2,8 +2,7 @@
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 500 500"
>
viewBox="0 0 500 500">
<defs>
<clipPath id="freepik--clip-path--inject-16">
<path
@@ -14,8 +13,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
</clipPath>
<clipPath id="freepik--clip-path-2--inject-16">
<path
@@ -26,8 +24,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
</clipPath>
<clipPath id="freepik--clip-path-3--inject-16">
<path
@@ -38,8 +35,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
</clipPath>
<clipPath id="freepik--clip-path-4--inject-16">
<path
@@ -50,8 +46,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
</clipPath>
<clipPath id="freepik--clip-path-5--inject-16">
<path
@@ -62,19 +57,16 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
</clipPath>
</defs>
<g id="freepik--background-simple--inject-16">
<path
d="M44.31,258.15s2.35,73,63.27,121.6,145.32,52.12,213.65,56.74S442,402.43,450,344s-44.3-75.63-72.63-142.2-25.81-88.44-85.75-129.38S137.86,56.57,88.7,126.71,44.31,258.15,44.31,258.15Z"
style="fill: #92e3a9"
/>
style="fill: #92e3a9" />
<path
d="M44.31,258.15s2.35,73,63.27,121.6,145.32,52.12,213.65,56.74S442,402.43,450,344s-44.3-75.63-72.63-142.2-25.81-88.44-85.75-129.38S137.86,56.57,88.7,126.71,44.31,258.15,44.31,258.15Z"
style="fill: #fff; opacity: 0.7000000000000001"
/>
style="fill: #fff; opacity: 0.7000000000000001" />
</g>
<g id="freepik--Hole--inject-16">
<ellipse
@@ -88,8 +80,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M341.49,374.22c34.15,0,62.75,7,70.26,16.49a8,8,0,0,0,1.94-4.92c0-11.84-32.33-21.43-72.2-21.43s-72.21,9.59-72.21,21.43a8,8,0,0,0,1.94,4.92C278.73,381.26,307.33,374.22,341.49,374.22Z"
style="
@@ -98,8 +89,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M331.63,404.52c-24.12-1.09-42.32-6-42.32-12a3.33,3.33,0,0,1,.59-1.83"
style="
@@ -108,8 +98,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M387.6,386.68c4.13,1.75,6.49,3.75,6.49,5.88,0,6.73-23.46,12.18-52.39,12.18h-1.25"
style="
@@ -118,8 +107,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M296.36,386.45c9.07-3.63,26-6.08,45.34-6.08a184.43,184.43,0,0,1,32.84,2.69"
style="
@@ -128,8 +116,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M330.94,396.74c-6.11-.85-10.2-2.4-10.2-4.18,0-2.69,9.39-4.87,21-4.87s20.95,2.18,20.95,4.87c0,2.31-6.9,4.24-16.16,4.74"
style="
@@ -138,8 +125,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
</g>
<g id="freepik--Landscape--inject-16">
<path
@@ -150,8 +136,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M34,304.79s2.72-.83,7.49-2.22"
style="
@@ -160,8 +145,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M442.47,249.12a228.34,228.34,0,0,0-55.3-5.23c-38.42,1.29-80,6.37-131.41,13s-124.62-30-174.4-16.41-46,17.68-46,17.68"
style="
@@ -170,8 +154,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M456.63,252.8s-1.94-.64-5.45-1.57"
style="
@@ -180,8 +163,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
</g>
<g id="freepik--Clouds--inject-16">
<path
@@ -192,8 +174,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M466,158.35a12.81,12.81,0,0,0-11-9.77A30,30,0,0,0,425.42,113a30.08,30.08,0,0,0-29.61,24.79,19.22,19.22,0,0,0-31.06,15.16,19.41,19.41,0,0,0,.79,5.42Z"
style="
@@ -202,8 +183,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M185.57,182.49a5.25,5.25,0,0,0-10.21,0Z"
style="
@@ -212,8 +192,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M237.12,182.49a6.52,6.52,0,0,0-5.59-5,15.27,15.27,0,1,0-30-5.48,9.76,9.76,0,0,0-15.77,7.69,10.06,10.06,0,0,0,.4,2.76Z"
style="
@@ -222,8 +201,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M231.93,198.63a3.31,3.31,0,0,0-6.44,0Z"
style="
@@ -232,8 +210,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M264.47,198.63a4.1,4.1,0,0,0-3.53-3.13,9.48,9.48,0,0,0,.16-1.77A9.64,9.64,0,0,0,242,192a6.16,6.16,0,0,0-9.95,4.86,6.25,6.25,0,0,0,.25,1.74Z"
style="
@@ -242,14 +219,12 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
</g>
<g id="freepik--Character--inject-16">
<path
d="M162.65,313.83a1.89,1.89,0,0,1-1-.27,2,2,0,0,1-.7-2.67c.49-.86,124.13-135.69,180.7-185.13a1,1,0,0,1,1.36.1,1,1,0,0,1-.1,1.38C286.62,176.47,164.81,312,164.32,312.85A1.92,1.92,0,0,1,162.65,313.83Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M169.48,287s6.13-6.54,9.81-6.54,10.63,6.13,10.22,9.4-6.54.41-6.54.41-5.73,7.77-11.45,6.54S169.48,287,169.48,287Z"
style="
@@ -258,8 +233,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M183,290.25s3.75,2.6,4.08,4.43-4.16,7-9.15,8.16-7.66-1.67-6.16-4.33S179.22,290.49,183,290.25Z"
style="
@@ -268,8 +242,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M337,266.56V131.27s-2.73,9.79-2.73,10.5"
style="
@@ -278,8 +251,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<rect
x="289.68"
y="273.69"
@@ -291,13 +263,11 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path d="M338.48,273.34v-4.76a1.19,1.19,0,0,0-2.38,0v4.76Z" style="fill: #263238" />
<path
d="M348,261.76l0,.24a1.15,1.15,0,0,0-1-.61,1.2,1.2,0,0,0-1.2,1.2V275.3a3.67,3.67,0,0,1-3.66,3.67,3.57,3.57,0,0,1-1.46-.31,2,2,0,0,0,.3,2.58,6.34,6.34,0,0,0,1.16.11,6.05,6.05,0,0,0,6.05-6.05v-5.89h2.74Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M337.1,130s2.12-7.53.24-6.83S337.1,130,337.1,130Z"
style="
@@ -306,8 +276,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M337.1,130s-8-2.83-7.29-.24S337.1,130,337.1,130Z"
style="
@@ -316,8 +285,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M164.59,195.63s-9.87-5.53-29.23-2.76-23.05,18.73-19.89,35.32,21.47,30.64,24.24,29.46-.79-38.32,5.53-45.43,26.86-5.92,28-11.45S164.59,195.63,164.59,195.63Z"
style="
@@ -326,8 +294,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M130.18,205.48l2,13.07s-12.4,33.85-10.39,38.55,20.77,6.36,20.77,6.36,30.5,3.69,39.55,0,4.36-14.41,3.35-17.42-6.7-27.15-6.7-27.15,2-5.7,2-8.71-.34-11.4-1.68-13.41-24.8-4.36-35.19-2.68S128.84,198.45,130.18,205.48Z"
style="
@@ -336,8 +303,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M135.55,220.57s-.34,29.15,1.34,34.85,8.38,12.4,22.45,10.72,15.42-15.08,15.42-15.08l-1-31.16Z"
style="
@@ -346,8 +312,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M159.68,241.51a2.52,2.52,0,1,1-2.52-2.51A2.51,2.51,0,0,1,159.68,241.51Z"
style="
@@ -355,20 +320,16 @@
stroke: #263238;
stroke-miterlimit: 10;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M159.34,252.07a1.68,1.68,0,1,1-1.67-1.68A1.67,1.67,0,0,1,159.34,252.07Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M149.22,230.76c1.07,1.16,1.44,2.55.84,3.12s-2,.09-3.05-1.06-1.45-2.54-.84-3.11S148.15,229.61,149.22,230.76Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M162.83,230.76c-1.07,1.16-1.45,2.55-.84,3.12s2,.09,3-1.06,1.45-2.54.84-3.11S163.9,229.61,162.83,230.76Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M142.06,226.81a6.4,6.4,0,0,1,7-2.58"
style="
@@ -377,8 +338,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M162.3,224.6s4.78-1.47,6.26,2.58"
style="
@@ -387,8 +347,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M178.44,411.62s5.27-3.16,8.19-4.4a8,8,0,0,1,.84-.33c2.58-.86,9.89-.43,16.76-4.73s3.44-9.46-1.72-10.75-10.74-3-10.74-3l-1.29-20.21s-15.48,4.3-20.64,6.45-2.15,32.67-1.72,35.25S168.55,414.2,178.44,411.62Z"
style="
@@ -397,8 +356,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M195.64,402.16c-9,1.72-9,3.44-18.92,5.16a38.38,38.38,0,0,1-8.83.72c.1.92.18,1.57.23,1.86.43,2.58.43,4.3,10.32,1.72,0,0,5.27-3.16,8.19-4.4a8,8,0,0,1,.84-.33c2.58-.86,9.89-.43,16.76-4.73,2.21-1.37,3.34-2.84,3.71-4.24A51.56,51.56,0,0,1,195.64,402.16Z"
style="
@@ -407,8 +365,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M199.22,391.15s-.33,23.46-1,28.48.33,11.4,8,11.4,22.79-5,28.15-6,14.08-3.36,17.76-11.73-18.76-7.38-18.76-7.38l1.34-17.09S211.62,393.49,199.22,391.15Z"
style="
@@ -417,8 +374,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M252.17,413.27a3.74,3.74,0,0,0,.28-2.63,21,21,0,0,1-9,7c-8,3.35-23.13,7-34.52,8.72-5.21.76-8.51-.09-10.58-1.23.74,3.25,2.91,5.92,7.9,5.92,7.71,0,22.79-5,28.15-6S248.49,421.64,252.17,413.27Z"
style="
@@ -427,8 +383,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M233.41,405.89s1.67,5.7-3,9.39"
style="
@@ -437,8 +392,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M196.88,378.75s-.52,10.19.05,12.23c2.14,7.74,2.82,5.93,18.91,5.59s22.59-6.76,24.27-10.78,0-12.74-.67-15.76-6-4-8.05-3.68S197.88,375.4,196.88,378.75Z"
style="
@@ -447,17 +401,14 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M86.28,404.22v22.52A4.84,4.84,0,0,0,88.9,431l36.2,18.69a4.81,4.81,0,0,0,4.19.12l53.33-20.33a4.84,4.84,0,0,0,2.86-4.41V397.85l-61,18.43Z"
style="fill: #92e3a9"
/>
style="fill: #92e3a9" />
<g style="clip-path: url(#freepik--clip-path--inject-16)">
<path
d="M127.17,415.47l-2.68.81L86.28,404.22v22.52A4.84,4.84,0,0,0,88.9,431l36.2,18.69a4.76,4.76,0,0,0,2.07.54Z"
style="opacity: 0.18"
/>
style="opacity: 0.18" />
</g>
<path
d="M86.28,404.22v22.52A4.84,4.84,0,0,0,88.9,431l36.2,18.69a4.81,4.81,0,0,0,4.19.12l53.33-20.33a4.84,4.84,0,0,0,2.86-4.41V397.85l-61,18.43Z"
@@ -467,25 +418,20 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M142,366.2,83.5,385a2.26,2.26,0,0,0-1.57,2.16v16.68a2.27,2.27,0,0,0,1.29,2L124,425.25a2.27,2.27,0,0,0,1.77.08L187,402.42a2.27,2.27,0,0,0,1.48-2.12l.11-15.65a2.29,2.29,0,0,0-1.79-2.22l-43.64-16.29A2.36,2.36,0,0,0,142,366.2Z"
style="fill: #fff"
/>
style="fill: #fff" />
<g style="clip-path: url(#freepik--clip-path-2--inject-16)">
<path
d="M123.93,425.24h0a2.27,2.27,0,0,0,1.77.08L187,402.42a2.27,2.27,0,0,0,1.48-2.12l.11-15.65a2.2,2.2,0,0,0-.54-1.45l-63.25,23.36Z"
style="fill: #92e3a9"
/>
style="fill: #92e3a9" />
<path
d="M123.93,425.24h0a2.27,2.27,0,0,0,1.77.08L187,402.42a2.27,2.27,0,0,0,1.48-2.12l.11-15.65a2.2,2.2,0,0,0-.54-1.45l-63.25,23.36Z"
style="fill: #fff; opacity: 0.5"
/>
style="fill: #fff; opacity: 0.5" />
<path
d="M81.93,387.11v16.68a2.27,2.27,0,0,0,1.29,2L124,425.25a2.24,2.24,0,0,0,.87.22V406.56L82,386.72A1.67,1.67,0,0,0,81.93,387.11Z"
style="fill: #92e3a9"
/>
style="fill: #92e3a9" />
</g>
<path
d="M142,366.2,83.5,385a2.26,2.26,0,0,0-1.57,2.16v16.68a2.27,2.27,0,0,0,1.29,2L124,425.25a2.27,2.27,0,0,0,1.77.08L187,402.42a2.27,2.27,0,0,0,1.48-2.12l.11-15.65a2.29,2.29,0,0,0-1.79-2.22l-43.64-16.29A2.36,2.36,0,0,0,142,366.2Z"
@@ -495,8 +441,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M222.35,335.52s7.7,3.68,11.73,11.06,1,21.44-1.35,25.8-18.09,6.37-23.45,6.37-6.37-.67-6.37-.67-17.09,3.35-27.82,5.36-8-23.12-4.69-34.52,22.12-17.09,29.83-17.09S222.35,335.52,222.35,335.52Z"
style="
@@ -505,8 +450,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M202.91,378.08s14.41-5,20.44-17.76"
style="
@@ -515,8 +459,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M216.65,370.7a38.27,38.27,0,0,0,12.4-8.37"
style="
@@ -525,8 +468,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M182.8,346.58s4,21.11,2,29.82-13.74,10.06-16.42,9.05-1.34-21.78-1.34-32.17S177.44,343.56,182.8,346.58Z"
style="
@@ -535,17 +477,14 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M97.34,290.27S95,304,96.67,310.72a28.62,28.62,0,0,0,4.69,10.39s-8.38,12.4-6.7,22.78,6,11.73,6,11.73-3.68,19.11,3,25.81,21.45,14.07,37.87,11.06,27.48-3.69,30.83-9.39,1.34-30.83,1.34-30.83-.67-27.81-1.34-44.91-3-30.83-11.06-37.53-43.57,3.69-54.29,10.72S97.34,290.27,97.34,290.27Z"
style="fill: #92e3a9"
/>
style="fill: #92e3a9" />
<g style="clip-path: url(#freepik--clip-path-3--inject-16)">
<path
d="M99.73,290.27s-2.35,13.74-.67,20.45a28.43,28.43,0,0,0,4.69,10.39s-8.38,12.4-6.7,22.78,6,11.73,6,11.73-3.69,19.11,3,25.81S127.54,395.5,144,392.49s27.49-3.69,30.84-9.39,1.34-30.83,1.34-30.83-.67-27.81-1.34-44.91-3-30.83-11.06-37.53-43.57,3.69-54.29,10.72S99.73,290.27,99.73,290.27Z"
style="opacity: 0.30000000000000004"
/>
style="opacity: 0.30000000000000004" />
</g>
<path
d="M97.34,290.27S95,304,96.67,310.72a28.62,28.62,0,0,0,4.69,10.39s-8.38,12.4-6.7,22.78,6,11.73,6,11.73-3.68,19.11,3,25.81,21.45,14.07,37.87,11.06,27.48-3.69,30.83-9.39,1.34-30.83,1.34-30.83-.67-27.81-1.34-44.91-3-30.83-11.06-37.53-43.57,3.69-54.29,10.72S97.34,290.27,97.34,290.27Z"
@@ -555,8 +494,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M101.36,321.11a40.77,40.77,0,0,0,35.86,5"
style="
@@ -565,8 +503,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M100.69,355.62s17.09,16.76,45.25.67"
style="
@@ -575,17 +512,14 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M167.38,273.85s-6.36-9.72-15.08-15.08-31.16-9.38-40.21-11.06-18.77-1-21.45,9-2.35,26.81.33,34.18,13.74,11.73,22.46,6.71,32.84-24.47,41.22-25.47S166.71,277.54,167.38,273.85Z"
style="fill: #757575"
/>
style="fill: #757575" />
<g style="clip-path: url(#freepik--clip-path-4--inject-16)">
<path
d="M148.79,272c5.11-2.13-7.67,1.7-8.52.42s8.94-7.66,11.07-8.51-12.35,2.13-11.92,0,14.05-2.56,4.68-4.69-40-7.67-46-9.8a4.94,4.94,0,0,1-1.29-.64,11.92,11.92,0,0,0-6.17,8c-2.68,10.05-2.35,26.81.33,34.18,2.34,6.42,11,10.55,19,8.2,3.69-3,7.1-6.94,12.87-10.57C134.31,281.33,143.68,274.09,148.79,272Z"
style="opacity: 0.30000000000000004"
/>
style="opacity: 0.30000000000000004" />
</g>
<path
d="M167.38,273.85s-6.36-9.72-15.08-15.08-31.16-9.38-40.21-11.06-18.77-1-21.45,9-2.35,26.81.33,34.18,13.74,11.73,22.46,6.71,32.84-24.47,41.22-25.47S166.71,277.54,167.38,273.85Z"
@@ -595,8 +529,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M203.58,319.43s7.71,1,12.73,3,8.38,14.41,6.37,16.08-6-.33-6-.33a49.07,49.07,0,0,1-9.72,2.34C202.91,340.88,198.55,321.78,203.58,319.43Z"
style="
@@ -605,8 +538,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M178.11,318.42s1.34,0,8.71-3.35,13.41-3.35,18.1,4,6.7,16.43,4,21.79-12.73,9.05-18.1,9.05-6-7-6-7-.67-11.06-4-15.08S176.77,319.43,178.11,318.42Z"
style="
@@ -615,17 +547,14 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M153.31,273.85c7.37-2.68,16.76-1,20.11,8.38s6.36,36.86,6.36,36.86,8.38,1,11.73,4.7,5,13.07,4.36,17.76-12.4,13.4-25.8,13.74-23.13-6-27.82-23.13S139.42,289,139.42,289s1.7-7.67,4.26-9.38"
style="fill: #92e3a9"
/>
style="fill: #92e3a9" />
<g style="clip-path: url(#freepik--clip-path-5--inject-16)">
<path
d="M195.87,341.55c.67-4.69-1-14.08-4.36-17.76-.13-.15-.29-.29-.43-.43a85.25,85.25,0,0,1,.72,9.08c.67,19.67-26.82,16.38-32.36,2.13-3-7.67-3.84-41.32-12.78-43.87-5.16-1.47-6.92,2.57-7.48,6.26-.18,9.65.14,24.52,3.07,35.2,4.69,17.1,14.41,23.46,27.82,23.13S195.2,346.24,195.87,341.55Z"
style="opacity: 0.30000000000000004"
/>
style="opacity: 0.30000000000000004" />
</g>
<path
d="M153.31,273.85c7.37-2.68,16.76-1,20.11,8.38s6.36,36.86,6.36,36.86,8.38,1,11.73,4.7,5,13.07,4.36,17.76-12.4,13.4-25.8,13.74-23.13-6-27.82-23.13S139.42,289,139.42,289s1.7-7.67,4.26-9.38"
@@ -635,8 +564,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
<path
d="M179.78,319.09S182.4,331.3,168.94,338"
style="
@@ -645,86 +573,67 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 1.1930027515339008px;
"
/>
" />
</g>
<g id="freepik--Text--inject-16">
<path
d="M113.1,106.25c0-2.78,1.28-4.83,4.17-4.83s4.23,2,4.23,4.83V116c0,2.78-1.29,4.83-4.23,4.83s-4.17-2-4.17-4.83Zm1.25,9.84c0,2.08.82,3.6,2.92,3.6s3-1.52,3-3.6v-9.92c0-2.07-.84-3.6-3-3.6s-2.92,1.53-2.92,3.6Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M123.49,106.25c0-2.78,1.28-4.83,4.17-4.83s4.23,2,4.23,4.83V116c0,2.78-1.28,4.83-4.23,4.83s-4.17-2-4.17-4.83Zm1.25,9.84c0,2.08.82,3.6,2.92,3.6s3-1.52,3-3.6v-9.92c0-2.07-.84-3.6-3-3.6s-2.92,1.53-2.92,3.6Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M137.92,101.59c2.94,0,4.09,1.85,4.09,4.63v2.08c0,3-1.4,4.52-4.42,4.52h-2.37v7.86H134V101.59Zm-.33,10.09c2.21,0,3.16-1,3.16-3.3v-2.24c0-2.07-.71-3.41-2.83-3.41h-2.7v9Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M151.93,106.2v.4h-1.2v-.49c0-2-.76-3.54-2.83-3.54s-2.84,1.5-2.84,3.52c0,4.63,6.9,4.71,6.9,10,0,2.75-1.2,4.77-4.12,4.77s-4.11-2-4.11-4.77v-1h1.2v1.06c0,2,.79,3.52,2.89,3.52s2.89-1.48,2.89-3.52c0-4.58-6.9-4.66-6.9-10,0-2.86,1.25-4.72,4.06-4.75S151.93,103.44,151.93,106.2Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path d="M155.07,118.28v2.4h-1.22v-2.4Z" style="fill: #263238" />
<path d="M158.48,118.28v2.4h-1.22v-2.4Z" style="fill: #263238" />
<path d="M161.89,118.28v2.4h-1.23v-2.4Z" style="fill: #263238" />
<path
d="M117.13,129.36c3,0,4.09,1.85,4.09,4.64v2.07c0,3-1.39,4.53-4.41,4.53h-2.38v7.85h-1.25V129.36Zm-.32,10.09c2.2,0,3.16-1,3.16-3.3v-2.24c0-2.07-.71-3.4-2.84-3.4h-2.7v8.94Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M124.58,144.22l-1,4.23h-1.15l4.17-19.12h1.83l4.25,19.12h-1.25l-1-4.23Zm.19-1.09h5.56l-2.81-12.35Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M142.77,134v1.42h-1.2v-1.5c0-2-.79-3.6-2.89-3.6s-2.89,1.56-2.89,3.6v9.93c0,2,.79,3.57,2.89,3.57s2.89-1.53,2.89-3.57v-4.12H139v-1.14h3.73v5.18c0,2.75-1.2,4.82-4.12,4.82s-4.11-2.07-4.11-4.82V134c0-2.75,1.2-4.82,4.11-4.82S142.77,131.27,142.77,134Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M151.34,138.2v1.14h-5.21v8h6.27v1.15h-7.53V129.36h7.53v1.15h-6.27v7.69Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M159.82,148.45h-1.15V129.36h1.64L166,145.48V129.36h1.14v19.09h-1.39l-6-17Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M169.26,134c0-2.78,1.28-4.82,4.17-4.82s4.23,2,4.23,4.82v9.77c0,2.78-1.29,4.82-4.23,4.82s-4.17-2-4.17-4.82Zm1.25,9.85c0,2.07.82,3.6,2.92,3.6s3-1.53,3-3.6v-9.93c0-2.07-.84-3.6-3-3.6s-2.92,1.53-2.92,3.6Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path d="M183,148.45V130.51h-3.87v-1.15h9v1.15h-3.9v17.94Z" style="fill: #263238" />
<path
d="M200.08,138.66v1.14h-4.94v8.65h-1.25V129.36h7.25v1.15h-6v8.15Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M203,134c0-2.78,1.28-4.82,4.17-4.82s4.23,2,4.23,4.82v9.77c0,2.78-1.28,4.82-4.23,4.82s-4.17-2-4.17-4.82Zm1.25,9.85c0,2.07.82,3.6,2.92,3.6s3-1.53,3-3.6v-9.93c0-2.07-.84-3.6-3-3.6s-2.92,1.53-2.92,3.6Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M214.64,143.84c0,2,.77,3.63,2.87,3.63s2.86-1.58,2.86-3.63V129.36h1.17v14.43c0,2.72-1.14,4.82-4.06,4.82s-4.09-2.1-4.09-4.82V129.36h1.25Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M224.84,148.45H223.7V129.36h1.63l5.73,16.12V129.36h1.15v19.09h-1.4l-6-17Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M238.56,129.36c2.95,0,4.23,1.94,4.23,4.75v9.59c0,2.81-1.28,4.75-4.23,4.75h-4.2V129.36Zm0,17.94c2.13,0,3-1.44,3-3.54v-9.71c0-2.1-.9-3.54-3-3.54h-2.91V147.3Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M302,325.13,315.61,293h8.15v32.13h3.53v6.79h-3.53v8.63h-7.34v-8.63H302Zm14.4,0V307.27l-7.54,17.86Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M330.08,304.41c0-7.6,4-12,11.34-12s11.34,4.35,11.34,12v24.72c0,7.61-4,12-11.34,12s-11.34-4.35-11.34-12Zm7.47,25.2c0,3.4,1.49,4.69,3.87,4.69s3.87-1.29,3.87-4.69V303.94c0-3.4-1.5-4.69-3.87-4.69s-3.87,1.29-3.87,4.69Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M355.82,325.13,369.4,293h8.15v32.13h3.53v6.79h-3.53v8.63h-7.34v-8.63H355.82Zm14.39,0V307.27l-7.53,17.86Z"
style="fill: #263238"
/>
style="fill: #263238" />
</g>
</svg>
</template>

View File

@@ -6,8 +6,7 @@
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
class="w-4 h-4 ml-2 transform group-hover:translate-x-2 duration-500"
>
class="w-4 h-4 ml-2 transform group-hover:translate-x-2 duration-500">
<path d="M5 12h14" />
<path d="M12 5l7 7-7 7" />
</svg>

View File

@@ -4,87 +4,69 @@
xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 500 500"
width="100%"
height="100%"
>
height="100%">
<defs>
<clipPath id="freepik--clip-path--inject-47">
<path
d="M351.92,265.46s-12.78,6.39-21.79,13.9-20.29,6.76-20.29,6.76,4.13,4.51,3.75,7.89-1.88,9.77-1.88,9.77-9.76,31.94-10.89,35-.75,9,0,15-1.88,13.53-4.14,16.91,1.13,14.28,1.13,20.66-4.88,13.53-10.14,14.66a15,15,0,0,1-9.77-1.51s-.38,1.13-5.64.38-5.63-3.38-5.63-3.38-5.27-1.88-5.27-5.26,3-9,9.4-10.9,9.77-8.26,10.52-14.65,5.64-34.2,6.39-44-2.26-22.54-2.63-21.41-13.91,25.17-19.54,35.32-6,9.39-6,13.15-4.14,9-8.27,10.52-4.89,7.51-7.14,11.65-8.64,7.14-14.65,9-9.4,0-9.4,0a9.13,9.13,0,0,1-5.26-1.88,10.2,10.2,0,0,1-3-4.14,6.39,6.39,0,0,1-.38-9.39c4.51-5.26,15.78-4.88,20.29-5.64s2.63-.75,8.64-6.76,21.8-47.34,21.8-53.73-28.94-46.22-31.57-52.61,3-19.53,1.13-25.55S214,201.58,214,201.58l38.33-10.52s8.64,12.4,17.28,14.65,21,6.77,34.19.76,28.94-16.91,44-18.79"
style="fill: #fff; stroke: #263238; stroke-linecap: round; stroke-linejoin: round"
/>
style="fill: #fff; stroke: #263238; stroke-linecap: round; stroke-linejoin: round" />
</clipPath>
</defs>
<g id="freepik--background-simple--inject-47">
<path
d="M81.28,287.58c5.82,8.22-3.18-20.07-3.18-20.07L88,283.79V255c0-16.27,19.26-45.7,19.26-45.7s1.1,19.41,1.65,33.81-5,41.32-5,41.32a59.69,59.69,0,0,1,14.31-30.05C130.92,240,136.43,235,136.43,235s1.1,19.41-4.4,30.68-16,35.05-16,35.05l14.85-13.14-7.7,17.53,18.71-18.16,6.6,14.4,1.65-13.15L154,298.82s2.2-15,0-21.29-4.41-13.77-4.41-13.77,11.56,8.14,14.31,15,4.4,18.78,4.4,18.78,1.1-17.52,10.46-29.42S208,245,208,245s-1.1,21.28-5.5,29.42-12.1,25-12.1,25L208,287.55l-7.15,13.14s1.1-2.5,6.05-4.38,13.76-1.88,13.76-1.88l-1.65,10,7.15-12.52,7.16,10.64-.55-14.4,5,9.39s3.85-8.13,5.5-12.52,8.81-8.13,8.81-8.13-2.76,14.39-2.76,17.52V302l6.06-10.65,3.85,9.39.55-8.13,5.5,8.13.55-10.64L300.41,307l3.3-15.66L314.17,307l8.25-12.53,1.1,10.65,8.26-10,2.2,10,7.15-10.65,2.2,7.52,8.26-6.89s6-71.69-14.71-176.12c0,0-35.92,16.48-65.08,5.84S152.94,95.36,102.31,137.3c-21.06,17.45-31.64,45.23-34.24,74.09C65.79,236.6,66.58,266.84,81.28,287.58Z"
style="fill: #92e3a9"
/>
style="fill: #92e3a9" />
<path
d="M81.28,287.58c5.82,8.22-3.18-20.07-3.18-20.07L88,283.79V255c0-16.27,19.26-45.7,19.26-45.7s1.1,19.41,1.65,33.81-5,41.32-5,41.32a59.69,59.69,0,0,1,14.31-30.05C130.92,240,136.43,235,136.43,235s1.1,19.41-4.4,30.68-16,35.05-16,35.05l14.85-13.14-7.7,17.53,18.71-18.16,6.6,14.4,1.65-13.15L154,298.82s2.2-15,0-21.29-4.41-13.77-4.41-13.77,11.56,8.14,14.31,15,4.4,18.78,4.4,18.78,1.1-17.52,10.46-29.42S208,245,208,245s-1.1,21.28-5.5,29.42-12.1,25-12.1,25L208,287.55l-7.15,13.14s1.1-2.5,6.05-4.38,13.76-1.88,13.76-1.88l-1.65,10,7.15-12.52,7.16,10.64-.55-14.4,5,9.39s3.85-8.13,5.5-12.52,8.81-8.13,8.81-8.13-2.76,14.39-2.76,17.52V302l6.06-10.65,3.85,9.39.55-8.13,5.5,8.13.55-10.64L300.41,307l3.3-15.66L314.17,307l8.25-12.53,1.1,10.65,8.26-10,2.2,10,7.15-10.65,2.2,7.52,8.26-6.89s6-71.69-14.71-176.12c0,0-35.92,16.48-65.08,5.84S152.94,95.36,102.31,137.3c-21.06,17.45-31.64,45.23-34.24,74.09C65.79,236.6,66.58,266.84,81.28,287.58Z"
style="fill: #fff; opacity: 0.7000000000000001"
/>
style="fill: #fff; opacity: 0.7000000000000001" />
</g>
<g id="freepik--Shadow--inject-47">
<path
d="M343.61,363.49l-9.86-7.9-3.95,5.13-3.55-5.13-6.71,7.5-2-7.89-1.19,7.5a18.87,18.87,0,0,0-9.47-7.11c-6.09-1.83-13.81-.79-13.81-.79l11.44,6.71L293.49,358l-.39,5.13-5.92-3.94-1.58,4.34S284,358,284,356s.4-7.5.4-7.5-4.34,4.34-4.34,7.89v9.08s-.4-5.13-6.71-6.71a52.48,52.48,0,0,0-11.45-1.58l4.74,5.53H260L254,369.8l-3.16-7.1-4.34,5.13-7.1-3.95-1.58,3.95-9.07-5.92-2-5.13v5.52a8.31,8.31,0,0,0-4.73-1.18c-3.16,0-18.94.39-18.94.39l7.89,3.55L206.68,369s-5.53-1.58-7.9-3.55-12.23-4.34-12.23-4.34l5.53,8.68-4.35-1.58-3.15,7.5L182.21,367l-.39,6.71L176.69,369l-.79,4.34-.79-7.5a33.34,33.34,0,0,0-2,5.13,59.69,59.69,0,0,1-3.15,7.5l1.58-9.47v-7.1l-2,6.71-3.94,7.1-7.11-4,2.77,5.13H153l2,4.34-11.84.4s-9.07,1.58-11.44,2-8.29,2.37-8.29,2.37l18.15-.79-7.49,4.34,20.12,3.55-9.47,4.34,15-.39-1.19-2.37,5.92,4.74,4-5.92,1.18,5.52,2.37-3.94,1.58,5.92,9.07-10.27-3.15,11.45,7.1-3.55,2,5.92,3.95-5.13,9.08,6.31V395.45l7.1,4.74.39-4.35s7.5,0,9.08,2.77,2.76,5.13,2.76,5.13l2.47-6.48.69-1.81,7.1-7.89A20.56,20.56,0,0,0,228,397c-.4,5.52-.79,9.08-.79,9.08l7.1-11.05.79,7.1,6.31-4,7.9,6.71.39-6.71,5.53,4.74,2-3.16,3.16,3.16,7.89-2.76.79,3.94,3.55-3.15,1.58,5.13s.39-5.13.39-8.69v-4.73l6.71,16.57L288,399.4l2,5.52,2.76-7.5v6.32l4.35-7.11.39,5.13,8.68-6.31-.79,5.92,9.08-3.55-1.18,5.52,7.49-5.13V403H329l15.39,1.58-10.65-5.13,23.43.2s8.92,2.16,10.11,2.16-22.5-8.28-22.5-8.28l-11-2,13-.79-9.47-3.55S340.85,372.56,343.61,363.49Z"
style="fill: #92e3a9"
/>
style="fill: #92e3a9" />
<path
d="M343.61,363.49l-9.86-7.9-3.95,5.13-3.55-5.13-6.71,7.5-2-7.89-1.19,7.5a18.87,18.87,0,0,0-9.47-7.11c-6.09-1.83-13.81-.79-13.81-.79l11.44,6.71L293.49,358l-.39,5.13-5.92-3.94-1.58,4.34S284,358,284,356s.4-7.5.4-7.5-4.34,4.34-4.34,7.89v9.08s-.4-5.13-6.71-6.71a52.48,52.48,0,0,0-11.45-1.58l4.74,5.53H260L254,369.8l-3.16-7.1-4.34,5.13-7.1-3.95-1.58,3.95-9.07-5.92-2-5.13v5.52a8.31,8.31,0,0,0-4.73-1.18c-3.16,0-18.94.39-18.94.39l7.89,3.55L206.68,369s-5.53-1.58-7.9-3.55-12.23-4.34-12.23-4.34l5.53,8.68-4.35-1.58-3.15,7.5L182.21,367l-.39,6.71L176.69,369l-.79,4.34-.79-7.5a33.34,33.34,0,0,0-2,5.13,59.69,59.69,0,0,1-3.15,7.5l1.58-9.47v-7.1l-2,6.71-3.94,7.1-7.11-4,2.77,5.13H153l2,4.34-11.84.4s-9.07,1.58-11.44,2-8.29,2.37-8.29,2.37l18.15-.79-7.49,4.34,20.12,3.55-9.47,4.34,15-.39-1.19-2.37,5.92,4.74,4-5.92,1.18,5.52,2.37-3.94,1.58,5.92,9.07-10.27-3.15,11.45,7.1-3.55,2,5.92,3.95-5.13,9.08,6.31V395.45l7.1,4.74.39-4.35s7.5,0,9.08,2.77,2.76,5.13,2.76,5.13l2.47-6.48.69-1.81,7.1-7.89A20.56,20.56,0,0,0,228,397c-.4,5.52-.79,9.08-.79,9.08l7.1-11.05.79,7.1,6.31-4,7.9,6.71.39-6.71,5.53,4.74,2-3.16,3.16,3.16,7.89-2.76.79,3.94,3.55-3.15,1.58,5.13s.39-5.13.39-8.69v-4.73l6.71,16.57L288,399.4l2,5.52,2.76-7.5v6.32l4.35-7.11.39,5.13,8.68-6.31-.79,5.92,9.08-3.55-1.18,5.52,7.49-5.13V403H329l15.39,1.58-10.65-5.13,23.43.2s8.92,2.16,10.11,2.16-22.5-8.28-22.5-8.28l-11-2,13-.79-9.47-3.55S340.85,372.56,343.61,363.49Z"
style="fill: #fff; opacity: 0.5"
/>
style="fill: #fff; opacity: 0.5" />
</g>
<g id="freepik--Dog--inject-47">
<path
d="M351.92,265.46s-12.78,6.39-21.79,13.9-20.29,6.76-20.29,6.76,4.13,4.51,3.75,7.89-1.88,9.77-1.88,9.77-9.76,31.94-10.89,35-.75,9,0,15-1.88,13.53-4.14,16.91,1.13,14.28,1.13,20.66-4.88,13.53-10.14,14.66a15,15,0,0,1-9.77-1.51s-.38,1.13-5.64.38-5.63-3.38-5.63-3.38-5.27-1.88-5.27-5.26,3-9,9.4-10.9,9.77-8.26,10.52-14.65,5.64-34.2,6.39-44-2.26-22.54-2.63-21.41-13.91,25.17-19.54,35.32-6,9.39-6,13.15-4.14,9-8.27,10.52-4.89,7.51-7.14,11.65-8.64,7.14-14.65,9-9.4,0-9.4,0a9.13,9.13,0,0,1-5.26-1.88,10.2,10.2,0,0,1-3-4.14,6.39,6.39,0,0,1-.38-9.39c4.51-5.26,15.78-4.88,20.29-5.64s2.63-.75,8.64-6.76,21.8-47.34,21.8-53.73-28.94-46.22-31.57-52.61,3-19.53,1.13-25.55S214,201.58,214,201.58l38.33-10.52s8.64,12.4,17.28,14.65,21,6.77,34.19.76,28.94-16.91,44-18.79"
style="fill: #fff"
/>
style="fill: #fff" />
<g style="clip-path: url(#freepik--clip-path--inject-47)">
<path
d="M265.5,340.61c5.63-10.15,19.16-34.2,19.54-35.32.08-.26.31.23.6,1.25-.44-5.54-8.37-7.94-12.89-9.55-5.55-2-12.68-8.72-18.63-17.05S242.23,259.72,241,251.4s-1.19-26.17,7.53-34.1,9.51-16.65,9.51-16.65a90.09,90.09,0,0,0-8.64-8.79L214,201.58s15.78,17.66,17.66,23.67-3.76,19.17-1.13,25.55,31.57,46.22,31.57,52.61-15.79,47.72-21.8,53.73-4.13,6-8.64,6.76c-2.16.36-5.89.47-9.68,1.06a2.84,2.84,0,0,0,1.59,1c9.12,2.38,13.08,4,14.67,8.33.74,2-.15,5-1.2,7.58,3.12-1.62,5.74-3.6,7-5.95,2.25-4.14,3-10.15,7.14-11.65s8.27-6.76,8.27-10.52S259.86,350.75,265.5,340.61Z"
style="fill: #92e3a9"
/>
style="fill: #92e3a9" />
<path
d="M265.5,340.61c5.63-10.15,19.16-34.2,19.54-35.32.08-.26.31.23.6,1.25-.44-5.54-8.37-7.94-12.89-9.55-5.55-2-12.68-8.72-18.63-17.05S242.23,259.72,241,251.4s-1.19-26.17,7.53-34.1,9.51-16.65,9.51-16.65a90.09,90.09,0,0,0-8.64-8.79L214,201.58s15.78,17.66,17.66,23.67-3.76,19.17-1.13,25.55,31.57,46.22,31.57,52.61-15.79,47.72-21.8,53.73-4.13,6-8.64,6.76c-2.16.36-5.89.47-9.68,1.06a2.84,2.84,0,0,0,1.59,1c9.12,2.38,13.08,4,14.67,8.33.74,2-.15,5-1.2,7.58,3.12-1.62,5.74-3.6,7-5.95,2.25-4.14,3-10.15,7.14-11.65s8.27-6.76,8.27-10.52S259.86,350.75,265.5,340.61Z"
style="fill: #fff; opacity: 0.5"
/>
style="fill: #fff; opacity: 0.5" />
<path
d="M343.84,272.28c5.84-4.31,11.77-7.8,11.77-7.8s4.36,0,2.38-19-4.76-58.68-4.76-58.68c-12.9-.29-23.4,5-28,7.85C331.35,204.07,348.36,234.29,343.84,272.28Z"
style="fill: #92e3a9"
/>
style="fill: #92e3a9" />
<path
d="M343.84,272.28c5.84-4.31,11.77-7.8,11.77-7.8s4.36,0,2.38-19-4.76-58.68-4.76-58.68c-12.9-.29-23.4,5-28,7.85C331.35,204.07,348.36,234.29,343.84,272.28Z"
style="fill: #fff; opacity: 0.5"
/>
style="fill: #fff; opacity: 0.5" />
</g>
<path
d="M351.92,265.46s-12.78,6.39-21.79,13.9-20.29,6.76-20.29,6.76,4.13,4.51,3.75,7.89-1.88,9.77-1.88,9.77-9.76,31.94-10.89,35-.75,9,0,15-1.88,13.53-4.14,16.91,1.13,14.28,1.13,20.66-4.88,13.53-10.14,14.66a15,15,0,0,1-9.77-1.51s-.38,1.13-5.64.38-5.63-3.38-5.63-3.38-5.27-1.88-5.27-5.26,3-9,9.4-10.9,9.77-8.26,10.52-14.65,5.64-34.2,6.39-44-2.26-22.54-2.63-21.41-13.91,25.17-19.54,35.32-6,9.39-6,13.15-4.14,9-8.27,10.52-4.89,7.51-7.14,11.65-8.64,7.14-14.65,9-9.4,0-9.4,0a9.13,9.13,0,0,1-5.26-1.88,10.2,10.2,0,0,1-3-4.14,6.39,6.39,0,0,1-.38-9.39c4.51-5.26,15.78-4.88,20.29-5.64s2.63-.75,8.64-6.76,21.8-47.34,21.8-53.73-28.94-46.22-31.57-52.61,3-19.53,1.13-25.55S214,201.58,214,201.58l38.33-10.52s8.64,12.4,17.28,14.65,21,6.77,34.19.76,28.94-16.91,44-18.79"
style="fill: none; stroke: #263238; stroke-linecap: round; stroke-linejoin: round"
/>
style="fill: none; stroke: #263238; stroke-linecap: round; stroke-linejoin: round" />
<path
d="M247.46,259.45s-2.63,6,1.51,13.15S261.36,291,268.5,295.14s15.79,6,16.54,10.15"
style="fill: none; stroke: #263238; stroke-linecap: round; stroke-linejoin: round"
/>
style="fill: none; stroke: #263238; stroke-linecap: round; stroke-linejoin: round" />
<path
d="M320,198.12c-5.66,3-11.14,6-16.22,8.35-9.88,4.51-19.33,3.09-27.09,1.15,2.68,2.47,5.65,7.13,6,15.75.75,16.16-4.88,23.3,0,30.82s10.9,9.77,15,17.28,7.52,12,13.53,12,22.92-18,25.93-37.19C340.21,227.56,326.62,202.72,320,198.12Z"
style="fill: #263238; stroke: #263238; stroke-linecap: round; stroke-linejoin: round"
/>
style="fill: #263238; stroke: #263238; stroke-linecap: round; stroke-linejoin: round" />
<path
d="M220,385s1.88-11.65,9.4-12"
style="fill: none; stroke: #263238; stroke-linecap: round; stroke-linejoin: round"
/>
style="fill: none; stroke: #263238; stroke-linecap: round; stroke-linejoin: round" />
<path
d="M211.77,378.93s5.63-9.77,12-9"
style="fill: none; stroke: #263238; stroke-linecap: round; stroke-linejoin: round"
/>
style="fill: none; stroke: #263238; stroke-linecap: round; stroke-linejoin: round" />
<path
d="M266.63,401.48s-.38-7.89,7.89-13.9"
style="fill: none; stroke: #263238; stroke-linecap: round; stroke-linejoin: round"
/>
style="fill: none; stroke: #263238; stroke-linecap: round; stroke-linejoin: round" />
<path
d="M277.9,404.48s-.38-9.76,5.26-14.27"
style="fill: none; stroke: #263238; stroke-linecap: round; stroke-linejoin: round"
/>
style="fill: none; stroke: #263238; stroke-linecap: round; stroke-linejoin: round" />
<path
d="M329.65,85.34s44.45,178.42,10,296.74"
style="
@@ -93,8 +75,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 2px;
"
/>
" />
<path
d="M365.42,203.11c.29,4.17.48,8.15.54,11.82"
style="
@@ -103,8 +84,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 2px;
"
/>
" />
<path
d="M353.44,117.27s8.25,43.42,11.37,78.19"
style="
@@ -113,8 +93,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 2px;
"
/>
" />
<path
d="M372.85,164.85s8.76,55.71,6.88,105.17"
style="
@@ -123,8 +102,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 2px;
"
/>
" />
<path
d="M369.09,245.6s.54,50-4.38,78.26"
style="
@@ -133,8 +111,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 2px;
"
/>
" />
<path
d="M394.53,285.59c-.28,3-.62,6-1,8.84"
style="
@@ -143,8 +120,7 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 2px;
"
/>
" />
<path
d="M392.88,192.39s4.56,45.1,2.4,83.22"
style="
@@ -153,82 +129,63 @@
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 2px;
"
/>
" />
<path
d="M265,151.59s-38.76-16.54-42.07-16.54S218.69,145.45,213,154s-15.6,9.92-17.49,17,3.31,26.94,8.51,32.62,13.7-2.37,18.43,1.89,6.62,10.87,14.18,9,25.53-9.93,27.89-15.6-1.42-17-1.42-26.47S266.9,156.32,265,151.59Z"
style="fill: #263238; stroke: #263238; stroke-linecap: round; stroke-linejoin: round"
/>
style="fill: #263238; stroke: #263238; stroke-linecap: round; stroke-linejoin: round" />
<path
d="M227.48,166.87c-7,0-12.51-5.15-12.74-5.36a1.14,1.14,0,0,1,0-1.6,1.12,1.12,0,0,1,1.59,0c.05,0,5.09,4.74,11.19,4.74a1.13,1.13,0,0,1,0,2.26Z"
style="fill: #fff"
/>
style="fill: #fff" />
<path
d="M252.46,169.79a1.19,1.19,0,0,1-.37-.06,1.13,1.13,0,0,1-.69-1.44,6,6,0,0,0-2-6.46c-3.25-2.6-7.49.44-7.67.57a1.14,1.14,0,0,1-1.58-.25,1.13,1.13,0,0,1,.24-1.57c.24-.17,5.81-4.19,10.42-.51a8.27,8.27,0,0,1,2.75,9A1.14,1.14,0,0,1,252.46,169.79Z"
style="fill: #fff"
/>
style="fill: #fff" />
<path
d="M246.88,178.23a2.13,2.13,0,1,1-2.13-2.12A2.13,2.13,0,0,1,246.88,178.23Z"
style="fill: #fff"
/>
style="fill: #fff" />
<path
d="M220.83,168.4a2.13,2.13,0,1,1-2.13-2.13A2.12,2.12,0,0,1,220.83,168.4Z"
style="fill: #fff"
/>
style="fill: #fff" />
<path
d="M212.61,204.31s5.92,5.35,11.84,6.2,3.94-4.23,1.41-6.2S210.92,197.54,212.61,204.31Z"
style="fill: #fff; stroke: #263238; stroke-linecap: round; stroke-linejoin: round"
/>
style="fill: #fff; stroke: #263238; stroke-linecap: round; stroke-linejoin: round" />
<path
d="M239.7,185.94s.54-6.38-1.59-10.63-6.12-5.58-10.1-2.39-3.72,3.19-14.09,7.17c-8,3.07-13.71,5.82-16,10.66,1.66,5.46,3.87,10.43,6.08,12.84,5.2,5.67,13.7-2.37,18.43,1.89s6.62,10.87,14.18,9a63,63,0,0,0,7.59-2.59,14.71,14.71,0,0,0,1.58-12.1C244,194.72,240.77,191,239.7,185.94Z"
style="fill: #fff; stroke: #263238; stroke-linecap: round; stroke-linejoin: round"
/>
style="fill: #fff; stroke: #263238; stroke-linecap: round; stroke-linejoin: round" />
<path
d="M230.93,189.66s-10.1-5-13.56-2.92,1.07,13,6.12,14.89,13.56-.53,14.62-3.46S233.86,191.26,230.93,189.66Z"
style="fill: #263238; stroke: #263238; stroke-linecap: round; stroke-linejoin: round"
/>
style="fill: #263238; stroke: #263238; stroke-linecap: round; stroke-linejoin: round" />
<path
d="M230.93,192.32s-6.64-4-6.91-1.86,6.91,5.58,8.24,4.26S230.93,192.32,230.93,192.32Z"
style="fill: #fff; stroke: #263238; stroke-linecap: round; stroke-linejoin: round"
/>
style="fill: #fff; stroke: #263238; stroke-linecap: round; stroke-linejoin: round" />
<path
d="M199.3,124.54s-1.33,11.16,1.86,18.6,4.52,12.76,8.77,12.5,19.14-10.9,22.06-17.28,2.13-11.43-1.86-13.29-10.9-1.6-17.28-2.66S200.89,119.75,199.3,124.54Z"
style="fill: #263238; stroke: #263238; stroke-linecap: round; stroke-linejoin: round"
/>
style="fill: #263238; stroke: #263238; stroke-linecap: round; stroke-linejoin: round" />
<path
d="M232,138.36s-5.79,14.07-17.71,17.48"
style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round"
/>
style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round" />
<path
d="M276.39,152.18s-6.38-6.64-11.17-8.24-9,4.79-9.3,10.63,1.06,21,5.85,23.93,13-2.92,21-7.18,9-8.24,5.58-12.23S276.39,152.18,276.39,152.18Z"
style="fill: #263238; stroke: #263238; stroke-linecap: round; stroke-linejoin: round"
/>
style="fill: #263238; stroke: #263238; stroke-linecap: round; stroke-linejoin: round" />
<path
d="M256.85,148.46s-4.92,16.95,4.92,30"
style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round"
/>
style="fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round" />
</g>
<g id="freepik--Plants--inject-47">
<path
d="M389.64,338.49s3.06-7.34,5.51-7.34,9.18,7.34,9.18,7.34-2.45-8.57,1.83-14.07,22,8.56,22.64,11-9.18-1.22-14.07,4.89A39.71,39.71,0,0,0,408,353.17s6.73-8.56,14.07,0,9.79,24.47,9.79,24.47-12.85-10.4-17.74-10.4H401.88s6.12,6.12,6.12,12.85a104,104,0,0,0,.61,11.62l-7.95-11.62-1.84,13.46s-9.18-7.95-11.62-10.4-8.57-9.79-8.57-9.79-1.83,3.06-.61,10.4-5.51,22-5.51,22-1.22-6.73-3.67-15.3a96.39,96.39,0,0,1-3.06-17.13,54.41,54.41,0,0,1-6.73,19c-5.5,9.17-14.07,20.8-14.07,20.8l4.29-23.25s-4.29,3.06-8.57,5.5S326,400.89,326,400.89L341.92,377s-13.46-.61-16.51,2.45-14.08,11.62-14.08,11.62,5.51-20.19,11.63-26.92,23.25-10.4,23.25-10.4l-18.36-2.44s12.85-11.63,19.58-12.24,17.74,1.22,17.74,1.22Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M359.05,339.71S347.43,325,335.19,325s-16.51,36.09-16.51,36.09S345.59,339.71,359.05,339.71Z"
style="fill: #92e3a9"
/>
style="fill: #92e3a9" />
<path
d="M359.05,339.71s12.85-11,24.48-10.4,15.9,22,11.62,31.2a153.38,153.38,0,0,1-8.57,15.91S374.35,345.22,359.05,339.71Z"
style="fill: #92e3a9"
/>
style="fill: #92e3a9" />
<path
d="M367,351.34s-9.18-10.4-16.52-10.4-11.63,9.17-12.24,21.41-.61,25.69-.61,25.69,27.53-28.14,30.59-29.36S367,351.34,367,351.34Z"
style="fill: #92e3a9"
/>
style="fill: #92e3a9" />
<path
d="M406.16,324.42s2.45-6.73,7.34-6.73,18.36.61,19,12.23.61,23.86.61,23.86S419.62,323.19,406.16,324.42Z"
style="fill: #92e3a9"
/>
style="fill: #92e3a9" />
</g>
</svg>
</template>

View File

@@ -4,13 +4,11 @@
stroke="currentColor"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
class="w-4 h-4 mr-1"
>
class="w-4 h-4 mr-1">
<path
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"
/>
d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" />
</svg>
</template>

View File

@@ -3,486 +3,376 @@
<g id="freepik--background-complete--inject-64">
<path
d="M449,256.48a11.74,11.74,0,0,1-2.92,3.92,8,8,0,0,1-6.85,1.67,11.79,11.79,0,0,1-6.14-3,41.17,41.17,0,0,0-5.19-4,16.94,16.94,0,0,0-6.53-2.42c-1.63-.27-3.26-.45-4.89-.61a12.23,12.23,0,0,1-6.1-2.21,8.17,8.17,0,0,1-3.65-8.38,10.76,10.76,0,0,1,6.28-8.34c1.76-.87,3.64-1.53,5.47-2.28.83-.34,1.66-.66,2.49-1a10.68,10.68,0,0,0,3.67-2.85c.61-.67,1.22-1.34,1.84-2a9.23,9.23,0,0,1,8.72-2.79,14.42,14.42,0,0,1,7.07,3.23,9,9,0,0,1,3.47,7.51c0,.89-.06,1.79-.15,2.67a12.36,12.36,0,0,0,1.06,6.49C447.48,244,448.3,246,449,248a11.63,11.63,0,0,1,.5,6.75C449.37,255.31,449.16,255.89,449,256.48Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M440.53,215.4a8.36,8.36,0,0,1-3.83,4.24,6.06,6.06,0,0,1-2.4.69,6.48,6.48,0,0,1-5.11-2,7.67,7.67,0,0,1-1.87-2.83c-1.71-4.85-.79-8.87,2.83-12a6.5,6.5,0,0,1,2-1.08,6.41,6.41,0,0,1,7,2.22,9.4,9.4,0,0,1,2.11,5A10.89,10.89,0,0,1,440.53,215.4Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M458.34,221a11.08,11.08,0,0,1-6.68,5.33,9.39,9.39,0,0,1-2.63.33,6,6,0,0,1-5.84-4.23,7.47,7.47,0,0,1,.17-4.76,10.88,10.88,0,0,1,6.22-6.55,8.66,8.66,0,0,1,3.84-.71,6.07,6.07,0,0,1,5.73,4.17,7.48,7.48,0,0,1-.1,4.69C458.83,220,458.51,220.63,458.34,221Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M409.85,215.2a8.07,8.07,0,0,1,2.41-3.26c2.68-2.06,6.27-1.52,8.65,1.32a10,10,0,0,1,2.37,6,9.24,9.24,0,0,1-2.39,7.35,6.81,6.81,0,0,1-1.39,1.1,6,6,0,0,1-7.26-1,9.47,9.47,0,0,1-2.72-4.62A10.64,10.64,0,0,1,409.85,215.2Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M464.25,238.48a10.75,10.75,0,0,1-7.35,5.9,7.72,7.72,0,0,1-4.1,0,5.68,5.68,0,0,1-4-3.59,6.56,6.56,0,0,1,.09-4.82,10.5,10.5,0,0,1,7-6.47,7.76,7.76,0,0,1,5.8.25,5.53,5.53,0,0,1,3,3.38A7.55,7.55,0,0,1,464.25,238.48Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M389,135a20.36,20.36,0,0,1-6.33,5.71c-3.9,2.29-8.07,2-12.3.52a20.57,20.57,0,0,1-9.51-7.2,72.94,72.94,0,0,0-7.51-8.61A29.56,29.56,0,0,0,343,119.05c-2.69-1-5.43-1.89-8.17-2.72a21.31,21.31,0,0,1-9.69-5.86c-4.28-4.65-5.52-9.8-3.39-15.59,2.36-6.41,7-10.37,13.6-12.13,3.31-.89,6.76-1.38,10.14-2l4.6-.88a18.47,18.47,0,0,0,7.27-3.64c1.27-.93,2.55-1.87,3.83-2.79,4.83-3.47,10.14-3.94,15.88-1.8a25.05,25.05,0,0,1,11,7.94,15.68,15.68,0,0,1,3.38,14c-.35,1.52-.71,3-1.18,4.52a21.69,21.69,0,0,0-.39,11.48c.8,3.6,1.53,7.22,2.08,10.86a20.17,20.17,0,0,1-1.43,11.72C390.08,133.13,389.52,134.05,389,135Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M388.56,61.77a14.71,14.71,0,0,1-8,6,10.5,10.5,0,0,1-4.34.36A11.29,11.29,0,0,1,368.13,63a13.05,13.05,0,0,1-2.23-5.48c-1.28-8.89,1.67-15.46,8.93-19.57a10.94,10.94,0,0,1,3.86-1.14c4.51-.63,8.91,1.82,11.26,6.18a16.5,16.5,0,0,1,1.91,9.29A19.25,19.25,0,0,1,388.56,61.77Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M417.12,77.5c-3.63,3.92-7.71,6.43-13.25,6.86a16.28,16.28,0,0,1-4.62-.34,10.46,10.46,0,0,1-8.55-9.23,13,13,0,0,1,1.91-8.09,19,19,0,0,1,12.88-9.09,15,15,0,0,1,6.82.09,10.58,10.58,0,0,1,8.38,9.09,13,13,0,0,1-1.77,8C418.31,75.88,417.55,76.87,417.12,77.5Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M336.09,51a13.82,13.82,0,0,1,5.24-4.76c5.29-2.62,11.24-.47,14.36,5.2a17.57,17.57,0,0,1,2,11c-.63,4.85-2.59,8.94-6.61,11.77a11.49,11.49,0,0,1-2.75,1.4c-4.37,1.56-9.08-.1-12.07-4.23a16.55,16.55,0,0,1-3.09-8.84A18.55,18.55,0,0,1,336.09,51Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M421.29,109.39A18.72,18.72,0,0,1,406.7,117a13.49,13.49,0,0,1-7-1.47,10,10,0,0,1-5.63-7.51,11.56,11.56,0,0,1,1.8-8.23A18.31,18.31,0,0,1,410,91.07a13.39,13.39,0,0,1,9.84,2.4,9.61,9.61,0,0,1,4.05,6.81C424.29,103.6,423.22,106.4,421.29,109.39Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M261.79,109.54a13.79,13.79,0,0,1,.89,5.69c-.14,3-1.82,5.31-4.24,7.14a13.86,13.86,0,0,1-7.58,2.72,48.15,48.15,0,0,0-7.63,1.07,19.8,19.8,0,0,0-7.43,3.51c-1.56,1.14-3.07,2.37-4.55,3.61a14.35,14.35,0,0,1-6.89,3.31c-4.21.71-7.57-.49-10.06-3.83a12.67,12.67,0,0,1-1.84-12.16c.72-2.2,1.71-4.33,2.59-6.49.39-1,.81-2,1.2-2.92a12.66,12.66,0,0,0,.62-5.45c-.06-1.07-.12-2.13-.16-3.2a10.84,10.84,0,0,1,4.84-9.64,17,17,0,0,1,8.55-3.29,10.56,10.56,0,0,1,9.18,3.27c.73.76,1.46,1.52,2.12,2.33a14.65,14.65,0,0,0,6.35,4.46c2.33.87,4.64,1.8,6.9,2.83a13.53,13.53,0,0,1,6.1,5.13C261.13,108.24,261.44,108.9,261.79,109.54Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M220.23,82.78a9.91,9.91,0,0,1,.41,6.73,7,7,0,0,1-1.4,2.59,7.64,7.64,0,0,1-5.87,2.67,8.78,8.78,0,0,1-3.92-.76c-5.5-2.55-8.12-6.65-7.77-12.27a7.42,7.42,0,0,1,.77-2.6,7.56,7.56,0,0,1,7.66-4.08,11.15,11.15,0,0,1,5.95,2.34A13,13,0,0,1,220.23,82.78Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M239.66,72.44a13.08,13.08,0,0,1-1,10,11.05,11.05,0,0,1-1.9,2.49,7.06,7.06,0,0,1-8.37,1.42,8.78,8.78,0,0,1-3.87-4.05,12.87,12.87,0,0,1-.39-10.64,10.09,10.09,0,0,1,2.57-3.82,7.13,7.13,0,0,1,8.23-1.39,8.77,8.77,0,0,1,3.87,4C239.18,71.17,239.45,72,239.66,72.44Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M194.77,108.46a9.36,9.36,0,0,1-.75-4.72c.47-4,3.88-6.53,8.24-6.2a12,12,0,0,1,7,2.94,10.92,10.92,0,0,1,4.21,8.08,8.2,8.2,0,0,1-.22,2.07,7.05,7.05,0,0,1-6.85,5.26,11.06,11.06,0,0,1-6.13-1.52A12.49,12.49,0,0,1,194.77,108.46Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M259.22,81.85a12.64,12.64,0,0,1-1.09,11,9.2,9.2,0,0,1-3.42,3.42,6.71,6.71,0,0,1-6.32.41,7.73,7.73,0,0,1-4-4,12.36,12.36,0,0,1,.29-11.19,9,9,0,0,1,5-4.68A6.49,6.49,0,0,1,255,77,8.9,8.9,0,0,1,259.22,81.85Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M140.35,224.16a15.41,15.41,0,0,1,1,6.37c-.15,3.42-2,6-4.73,8a15.53,15.53,0,0,1-8.49,3.09,54.16,54.16,0,0,0-8.56,1.23,22.27,22.27,0,0,0-8.31,4c-1.75,1.29-3.43,2.67-5.09,4.07a16.21,16.21,0,0,1-7.71,3.75c-4.72.81-8.5-.52-11.3-4.26a14.18,14.18,0,0,1-2.12-13.63c.8-2.47,1.9-4.86,2.87-7.29.44-1.1.9-2.19,1.33-3.29a14,14,0,0,0,.68-6.11c-.07-1.2-.14-2.39-.2-3.59-.21-4.49,1.67-8.06,5.39-10.83a19,19,0,0,1,9.58-3.73A11.83,11.83,0,0,1,115,205.57c.82.85,1.64,1.7,2.39,2.6a16.42,16.42,0,0,0,7.14,5c2.62,1,5.22,2,7.75,3.14a15.2,15.2,0,0,1,6.86,5.73C139.61,222.71,140,223.44,140.35,224.16Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M93.62,194.32a11.1,11.1,0,0,1,.49,7.55,7.88,7.88,0,0,1-1.56,2.91,8.55,8.55,0,0,1-6.58,3,10,10,0,0,1-4.4-.83c-6.17-2.84-9.13-7.42-8.77-13.73a8.6,8.6,0,0,1,.86-2.92,8.48,8.48,0,0,1,8.57-4.62,12.58,12.58,0,0,1,6.69,2.61A14.59,14.59,0,0,1,93.62,194.32Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M115.36,182.64a14.68,14.68,0,0,1-1.08,11.25,12.56,12.56,0,0,1-2.12,2.79,7.92,7.92,0,0,1-9.38,1.64,9.74,9.74,0,0,1-4.36-4.54,14.39,14.39,0,0,1-.48-11.93,11.16,11.16,0,0,1,2.86-4.29A8,8,0,0,1,110,176a9.87,9.87,0,0,1,4.36,4.41C114.83,181.22,115.14,182.11,115.36,182.64Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M65.18,223.24a10.41,10.41,0,0,1-.87-5.29c.51-4.44,4.32-7.34,9.21-7a13.37,13.37,0,0,1,7.86,3.26,12.24,12.24,0,0,1,4.76,9,8.79,8.79,0,0,1-.24,2.33c-.81,3.42-3.8,5.73-7.66,5.93a12.53,12.53,0,0,1-6.89-1.67A14.07,14.07,0,0,1,65.18,223.24Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M137.35,193.1a14.2,14.2,0,0,1-1.18,12.4,10.22,10.22,0,0,1-3.82,3.85,7.55,7.55,0,0,1-7.09.49,8.74,8.74,0,0,1-4.49-4.53,13.89,13.89,0,0,1,.28-12.56,10.16,10.16,0,0,1,5.58-5.26,7.24,7.24,0,0,1,6,.23A10,10,0,0,1,137.35,193.1Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M135.91,136a17.94,17.94,0,0,1-3.39,6.72c-2.48,3.12-6,4.24-10,4.33a18.08,18.08,0,0,1-10.1-2.89,64.2,64.2,0,0,0-8.92-4.69,26,26,0,0,0-10.55-2c-2.53,0-5.06.18-7.58.36a18.71,18.71,0,0,1-9.83-1.74c-5-2.46-7.65-6.3-7.74-11.73-.1-6,2.46-10.76,7.32-14.31,2.45-1.78,5.12-3.28,7.7-4.9,1.16-.73,2.34-1.45,3.5-2.19a16.47,16.47,0,0,0,4.82-5.29c.75-1.18,1.5-2.36,2.26-3.52,2.87-4.39,7.09-6.46,12.49-6.52a22.05,22.05,0,0,1,11.57,3,13.83,13.83,0,0,1,7.25,10.47c.19,1.36.38,2.73.46,4.09a19.2,19.2,0,0,0,3.33,9.57c1.81,2.7,3.56,5.45,5.17,8.26a17.78,17.78,0,0,1,2.54,10.1C136.2,134.12,136,135.06,135.91,136Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M112.26,75.93a13,13,0,0,1-4.69,7.45,9.3,9.3,0,0,1-3.46,1.67,9.93,9.93,0,0,1-8.27-1.65,11.55,11.55,0,0,1-3.58-3.79c-3.88-6.9-3.54-13.24,1.12-18.94a9.64,9.64,0,0,1,2.81-2.16A9.85,9.85,0,0,1,107.42,60a14.67,14.67,0,0,1,4.52,7A17,17,0,0,1,112.26,75.93Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M140.74,79.78c-1.73,4.38-4.29,7.74-8.71,9.85a14.38,14.38,0,0,1-3.91,1.2,9.22,9.22,0,0,1-10-4.88,11.39,11.39,0,0,1-1-7.25,16.81,16.81,0,0,1,7.7-11.58A13.27,13.27,0,0,1,130.49,65a9.31,9.31,0,0,1,9.78,4.81A11.43,11.43,0,0,1,141.36,77C141.21,78.07,140.89,79.12,140.74,79.78Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M65.68,83.74a12.2,12.2,0,0,1,2.8-5.58c3.51-3.84,9.09-4,13.46-.29a15.52,15.52,0,0,1,5.17,8.44c1,4.19.72,8.17-1.69,11.78a10.21,10.21,0,0,1-1.81,2c-3.11,2.67-7.5,2.8-11.28.36A14.65,14.65,0,0,1,67,94.19,16.36,16.36,0,0,1,65.68,83.74Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M154.31,104.68a16.49,16.49,0,0,1-9.59,10.87,12,12,0,0,1-6.23,1,8.77,8.77,0,0,1-7-4.39,10.17,10.17,0,0,1-1.14-7.34,16.14,16.14,0,0,1,8.85-11.64,11.85,11.85,0,0,1,8.86-1.15,8.5,8.5,0,0,1,5.49,4.31C154.93,99,155,101.6,154.31,104.68Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
</g>
<g id="freepik--Table--inject-64">
<path
d="M470.2,456.79c0,.14-98.59.26-220.19.26s-220.21-.12-220.21-.26,98.57-.26,220.21-.26S470.2,456.64,470.2,456.79Z"
style="fill: #263238"
/>
style="fill: #263238" />
</g>
<g id="freepik--paw-2--inject-64">
<path
d="M218.45,357.32a19.38,19.38,0,0,0-4.19-5.62s-.78-9.1-4.38-14.47-9-9.71-15.48-5.61l.87-.5c-3.27-2.51-8.53-2.78-12.42-1.39a16.42,16.42,0,0,0-5.31,3,38.48,38.48,0,0,0-7.49,8.82s-6.34.4-8.85,10.41a181.72,181.72,0,0,0-3.2,18.86s.75,18.35,1.84,23.88-2.48,17.21-2.68,19.56-1.31,4.13-2.88,13.37-4.35,28.91-4.35,28.91h56.42s1.41-25.57,1.27-28.37a103.9,103.9,0,0,1,2.2-20c1.56-6.47,7.6-26.87,7.6-26.87C219.63,371.74,220.28,360.93,218.45,357.32Z"
style="fill: #455a64"
/>
style="fill: #455a64" />
<g style="opacity: 0.30000000000000004">
<path
d="M174.58,353.27l-7.15-.36a15.53,15.53,0,0,0-5.17,7.33,4.22,4.22,0,0,0,0,3.36c.73,1.3,2.45,1.62,3.94,1.67a14.28,14.28,0,0,0,6.63-1.18,7.7,7.7,0,0,0,4.26-5A5.31,5.31,0,0,0,174.58,353.27Z"
/>
d="M174.58,353.27l-7.15-.36a15.53,15.53,0,0,0-5.17,7.33,4.22,4.22,0,0,0,0,3.36c.73,1.3,2.45,1.62,3.94,1.67a14.28,14.28,0,0,0,6.63-1.18,7.7,7.7,0,0,0,4.26-5A5.31,5.31,0,0,0,174.58,353.27Z" />
</g>
<g style="opacity: 0.30000000000000004">
<path
d="M208.14,347.06l-2.5-2-8.59-1.21a4.1,4.1,0,0,0-2.06.06,3.08,3.08,0,0,0-1.63,2,6.64,6.64,0,0,0,1.71,6.68,8.68,8.68,0,0,0,6.68,2.29,7.85,7.85,0,0,0,5.2-2.35A5.39,5.39,0,0,0,208.14,347.06Z"
/>
d="M208.14,347.06l-2.5-2-8.59-1.21a4.1,4.1,0,0,0-2.06.06,3.08,3.08,0,0,0-1.63,2,6.64,6.64,0,0,0,1.71,6.68,8.68,8.68,0,0,0,6.68,2.29,7.85,7.85,0,0,0,5.2-2.35A5.39,5.39,0,0,0,208.14,347.06Z" />
</g>
<path
d="M201.21,333.54a5.17,5.17,0,0,1,3.34.74c1.83,1.1,4.94,3.43,4.87,6.62-.09,4.51-.22,9.78-5.58,11s-12-2.51-9.1-10.21C197,335.69,198.93,333.85,201.21,333.54Z"
style="fill: #263238"
/>
style="fill: #263238" />
<g style="opacity: 0.30000000000000004">
<path
d="M189.62,343.72l-3.69-4.43a15.61,15.61,0,0,0-3.66-.4,5.21,5.21,0,0,0-3.37,1.29,5.38,5.38,0,0,0-1.48,3.66,7.84,7.84,0,0,0,3.17,6.8,6.51,6.51,0,0,0,7.35.05A5.6,5.6,0,0,0,189.62,343.72Z"
/>
d="M189.62,343.72l-3.69-4.43a15.61,15.61,0,0,0-3.66-.4,5.21,5.21,0,0,0-3.37,1.29,5.38,5.38,0,0,0-1.48,3.66,7.84,7.84,0,0,0,3.17,6.8,6.51,6.51,0,0,0,7.35.05A5.6,5.6,0,0,0,189.62,343.72Z" />
</g>
<path
d="M187,331.18a5,5,0,0,1,5.49,1,1.81,1.81,0,0,1,.48.73c.29,1.11-.41,9.76-4.92,14.19s-10.5-1.11-10-5.65C178.41,337.74,182.69,333,187,331.18Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M171.65,345.34s-3-3.08-6,2.39-4,13.57-.85,14.11,10.39-1.22,10.67-5.61S173.42,346.31,171.65,345.34Z"
style="fill: #263238"
/>
style="fill: #263238" />
<g style="opacity: 0.30000000000000004">
<path
d="M211.57,363.14a58.27,58.27,0,0,0-5.87-4,3.37,3.37,0,0,0-1.56-.6c-1.25,0-2.13,1.23-2.51,2.41a8.62,8.62,0,0,0,.69,7,7.39,7.39,0,0,0,6,3.63,6.5,6.5,0,0,0,6-3.45Z"
/>
d="M211.57,363.14a58.27,58.27,0,0,0-5.87-4,3.37,3.37,0,0,0-1.56-.6c-1.25,0-2.13,1.23-2.51,2.41a8.62,8.62,0,0,0,.69,7,7.39,7.39,0,0,0,6,3.63,6.5,6.5,0,0,0,6-3.45Z" />
</g>
<path
d="M217.94,361.2a7.77,7.77,0,0,0-12.05-6.56c-.21.15-.42.31-.62.48-3,2.62-3.55,7.88-.94,10.63s8.24,7.66,12.17.43A11.18,11.18,0,0,0,217.94,361.2Z"
style="fill: #263238"
/>
style="fill: #263238" />
<g style="opacity: 0.30000000000000004">
<path
d="M187.7,378.73a20.8,20.8,0,0,0-14.2,1,7,7,0,0,0-3.32,2.59c-1.47,2.55.28,6,2.9,7.33s5.74,1.13,8.66.78,6-.8,8.75.13a28.54,28.54,0,0,1,4.6,2.36,9,9,0,0,0,4.9,1.38,4,4,0,0,0,3.72-3Z"
/>
d="M187.7,378.73a20.8,20.8,0,0,0-14.2,1,7,7,0,0,0-3.32,2.59c-1.47,2.55.28,6,2.9,7.33s5.74,1.13,8.66.78,6-.8,8.75.13a28.54,28.54,0,0,1,4.6,2.36,9,9,0,0,0,4.9,1.38,4,4,0,0,0,3.72-3Z" />
</g>
<path
d="M207.25,378.45a12.54,12.54,0,0,0-4.93-5.15c-2-1.17-5.06-3.27-6.64-6-2.46-4.2-1.9-7.38-6.86-7.65s-4.63,4.06-10.69,6.05c-9.69,3.17-11.81,5.51-12.74,9.78s.08,6.37,2.49,9.19,10.46-1.5,16.91-1.27,11.32,6.93,15.23,8.84,7.7-2,8.32-8.12A10.44,10.44,0,0,0,207.25,378.45Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M183.57,441.29c2.2-.37,4.7-1,5.71-2.93a5.1,5.1,0,0,0-.42-4.75c-1.9-3.33-6-5-9.81-4.78a10,10,0,0,0-5.45,1.86,6.56,6.56,0,0,0-2.68,5,3.9,3.9,0,0,0,1.88,3.56,7.9,7.9,0,0,0,3.57.36,12,12,0,0,1,6.11,1.61"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M170.79,409.22a7.69,7.69,0,0,1,1.26-.22c.83-.13,2-.34,3.54-.7a39.53,39.53,0,0,0,11.72-4.88l1.13-.7-.83,1-4.4,5.56a1.85,1.85,0,0,0-.35.74.43.43,0,0,0,.26.49,3.62,3.62,0,0,0,1.73-.31,19.83,19.83,0,0,0,7.24-4.2l1.26-1.15-.86,1.47a26.41,26.41,0,0,0-2.34,5.21,25.82,25.82,0,0,0-.71,2.6,9,9,0,0,0-.32,2.5,1.56,1.56,0,0,0,.39,1,1,1,0,0,0,.93.24,5.58,5.58,0,0,0,1.88-1.14c1.17-.92,2.22-1.81,3.14-2.66a52.93,52.93,0,0,0,4.12-4.26l1-1.21a2.77,2.77,0,0,1,.38-.41,2.47,2.47,0,0,1-.3.46c-.21.3-.53.74-1,1.28a46.67,46.67,0,0,1-4,4.39c-.92.87-2,1.79-3.13,2.73a5.92,5.92,0,0,1-2,1.25,1.46,1.46,0,0,1-1.33-.35,2,2,0,0,1-.54-1.27,9.86,9.86,0,0,1,.31-2.65c.19-.87.42-1.76.71-2.66a27,27,0,0,1,2.37-5.31l.39.32a20.62,20.62,0,0,1-3.72,2.7,20.13,20.13,0,0,1-3.71,1.61l-1,.28a1.86,1.86,0,0,1-1.1,0,.94.94,0,0,1-.59-1,2.23,2.23,0,0,1,.44-1l4.45-5.55.3.34a37.94,37.94,0,0,1-11.9,4.76,33.75,33.75,0,0,1-3.58.57c-.42.05-.74.06-.95.08Z"
style="fill: #263238"
/>
style="fill: #263238" />
</g>
<g id="freepik--paw-1--inject-64">
<path
d="M111,312.07a23.82,23.82,0,0,1,6,6c2.87,4.05,4.26,17.43,3.57,29.56,0,0-3,26.25-3.57,34.51a133.83,133.83,0,0,0,1.41,25c.73,3.4,3.69,49.28,3.69,49.28H56.26s-.73-27.19-.72-38.84,1-14.08.72-17,1.64-18-.75-24.51-6.94-28.89-6.94-28.89-2.93-14.5,0-23.77,4.55-6.08,4.55-6.08S59,302.79,64,296.48a19.82,19.82,0,0,1,5.64-4.79,14.17,14.17,0,0,1,14-.08h0c6.81-6.38,14-2.17,19.33,3.65S111,312.07,111,312.07Z"
style="fill: #ff725e"
/>
style="fill: #ff725e" />
<g style="opacity: 0.30000000000000004">
<path
d="M62.19,322.25a6.61,6.61,0,0,1,4.27,6.59,9.54,9.54,0,0,1-4.17,7,17.62,17.62,0,0,1-7.88,2.83c-1.84.25-4,.22-5.18-1.22a5.2,5.2,0,0,1-.68-4.12,19.21,19.21,0,0,1,4.81-10.06"
/>
d="M62.19,322.25a6.61,6.61,0,0,1,4.27,6.59,9.54,9.54,0,0,1-4.17,7,17.62,17.62,0,0,1-7.88,2.83c-1.84.25-4,.22-5.18-1.22a5.2,5.2,0,0,1-.68-4.12,19.21,19.21,0,0,1,4.81-10.06" />
</g>
<g style="opacity: 0.30000000000000004">
<path
d="M102,307.66a6.7,6.7,0,0,1-.33,6.89,9.73,9.73,0,0,1-5.89,3.95,10.7,10.7,0,0,1-8.65-1.42,8.21,8.21,0,0,1-3.49-7.83,3.81,3.81,0,0,1,1.59-2.72,5.1,5.1,0,0,1,2.51-.51l10.78-.29"
/>
d="M102,307.66a6.7,6.7,0,0,1-.33,6.89,9.73,9.73,0,0,1-5.89,3.95,10.7,10.7,0,0,1-8.65-1.42,8.21,8.21,0,0,1-3.49-7.83,3.81,3.81,0,0,1,1.59-2.72,5.1,5.1,0,0,1,2.51-.51l10.78-.29" />
</g>
<path
d="M93.22,292.17s8.26,2.13,9.09,7.67,1.77,12-4.55,14.64-15.17-.59-13.28-10.62S89.2,292.29,93.22,292.17Z"
style="fill: #263238"
/>
style="fill: #263238" />
<g style="opacity: 0.30000000000000004">
<path
d="M78.63,307.43a7,7,0,0,1-.6,8.89,8.11,8.11,0,0,1-9,1.46,9.74,9.74,0,0,1-5.3-7.67,6.73,6.73,0,0,1,1.05-4.79A6.48,6.48,0,0,1,68.62,303a19.33,19.33,0,0,1,4.56-.27"
/>
d="M78.63,307.43a7,7,0,0,1-.6,8.89,8.11,8.11,0,0,1-9,1.46,9.74,9.74,0,0,1-5.3-7.67,6.73,6.73,0,0,1,1.05-4.79A6.48,6.48,0,0,1,68.62,303a19.33,19.33,0,0,1,4.56-.27" />
</g>
<path
d="M76.22,291.11s3.66,1.06,4.25,2.36,1.53,12-3.07,18.41-13.1.83-13.46-4.83S70.08,292.53,76.22,291.11Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M55,312.48s-2.36-2.48-4.84,4.83S48,334.78,52,334.78s12.49-3.65,11.91-9.08S57.33,313.3,55,312.48Z"
style="fill: #263238"
/>
style="fill: #263238" />
<g style="opacity: 0.30000000000000004">
<path
d="M113.87,332.25a8.08,8.08,0,0,1-6.58,5.47,9.2,9.2,0,0,1-8.05-3.21,10.75,10.75,0,0,1-2.31-8.45c.23-1.54,1-3.27,2.58-3.48a4.24,4.24,0,0,1,2,.4,73.59,73.59,0,0,1,8,3.67"
/>
d="M113.87,332.25a8.08,8.08,0,0,1-6.58,5.47,9.2,9.2,0,0,1-8.05-3.21,10.75,10.75,0,0,1-2.31-8.45c.23-1.54,1-3.27,2.58-3.48a4.24,4.24,0,0,1,2,.4,73.59,73.59,0,0,1,8,3.67" />
</g>
<path
d="M110.1,314.13c1.06-.12,9.44,5.55,6.14,15.22s-11.22,4.84-15,2-4.48-9.68-1.06-13.22S110.1,314.13,110.1,314.13Z"
style="fill: #263238"
/>
style="fill: #263238" />
<g style="opacity: 0.30000000000000004">
<path
d="M62.85,358.77a8.62,8.62,0,0,1,3.52-3.88,25.92,25.92,0,0,1,17.19-4.16l22.23,12c0,2.14-1.84,4-3.92,4.48a11.11,11.11,0,0,1-6.3-.67,36.53,36.53,0,0,0-6.12-1.94c-3.62-.56-7.24.63-10.75,1.67s-7.28,1.94-10.77.85S61.57,362.19,62.85,358.77Z"
/>
d="M62.85,358.77a8.62,8.62,0,0,1,3.52-3.88,25.92,25.92,0,0,1,17.19-4.16l22.23,12c0,2.14-1.84,4-3.92,4.48a11.11,11.11,0,0,1-6.3-.67,36.53,36.53,0,0,0-6.12-1.94c-3.62-.56-7.24.63-10.75,1.67s-7.28,1.94-10.77.85S61.57,362.19,62.85,358.77Z" />
</g>
<path
d="M102.9,341.87c.59.71,6.61,4.21,7.08,11.21.51,7.6-3.31,13.22-8.5,11.69S88.91,356,81,357.09s-16.91,8-20.45,5.08-5.2-5.31-5-10.74,2.36-8.74,13.58-14.64c7-3.69,5.69-8.92,11.83-9.63s6.11,3.31,10,7.95S102.9,341.87,102.9,341.87Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M111.29,313.66c.74-2.31-.16-5.85-1.58-8.21a.87.87,0,0,0-1.54.09,16.69,16.69,0,0,0-1.2,8.32"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
<path
d="M107,313.86a7.35,7.35,0,0,1-.27-2.78,16.77,16.77,0,0,1,.39-3c.13-.56.29-1.14.49-1.74.11-.29.23-.59.36-.89a1.11,1.11,0,0,1,1-.66,1.17,1.17,0,0,1,1,.6c.16.28.31.57.45.85a12.86,12.86,0,0,1,.68,1.68,12.57,12.57,0,0,1,.61,3,4.87,4.87,0,0,1-.41,2.77,12.1,12.1,0,0,0,0-2.74,13.73,13.73,0,0,0-.69-2.87,14.7,14.7,0,0,0-.69-1.61c-.13-.27-.28-.54-.44-.81a.58.58,0,0,0-.56-.34.59.59,0,0,0-.54.35c-.13.28-.24.56-.35.85a17.33,17.33,0,0,0-.5,1.67,20,20,0,0,0-.49,2.94C106.91,312.8,107.06,313.85,107,313.86Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M108.79,305.69a8.48,8.48,0,0,1,.57,7.57c-.15,0,.26-1.73.09-3.81S108.65,305.75,108.79,305.69Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M91.94,292.66c.73-2.31-.16-5.85-1.59-8.21a.87.87,0,0,0-1.54.09,16.58,16.58,0,0,0-1.19,8.32"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
<path
d="M87.62,292.86a6.88,6.88,0,0,1-.27-2.78,17.39,17.39,0,0,1,.38-3,15.32,15.32,0,0,1,.5-1.74c.1-.3.22-.6.35-.9a1.13,1.13,0,0,1,2-.06c.17.29.32.57.46.85a16.43,16.43,0,0,1,.68,1.68,12.51,12.51,0,0,1,.6,3,4.93,4.93,0,0,1-.4,2.77,13.4,13.4,0,0,0,0-2.74,13.13,13.13,0,0,0-.69-2.87,14.59,14.59,0,0,0-.68-1.61c-.14-.27-.29-.54-.44-.81a.63.63,0,0,0-.57-.34.61.61,0,0,0-.54.35c-.12.28-.24.57-.34.85a16.8,16.8,0,0,0-.51,1.68,19.84,19.84,0,0,0-.49,2.93C87.56,291.8,87.7,292.85,87.62,292.86Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M89.44,284.69a8.52,8.52,0,0,1,.56,7.57c-.15,0,.26-1.72.09-3.81S89.29,284.75,89.44,284.69Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M80,291.88c.74-2.31-.16-5.84-1.58-8.21a.87.87,0,0,0-1.54.09,16.73,16.73,0,0,0-1.2,8.33"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
<path
d="M75.66,292.09a7.48,7.48,0,0,1-.27-2.79,16.67,16.67,0,0,1,.39-3c.13-.56.29-1.15.49-1.74.11-.3.23-.59.36-.9a1.11,1.11,0,0,1,1-.65,1.15,1.15,0,0,1,1,.6c.16.28.31.56.45.85a13.29,13.29,0,0,1,1.29,4.67,4.71,4.71,0,0,1-.41,2.77,12,12,0,0,0,0-2.73,13.66,13.66,0,0,0-.69-2.88,15.45,15.45,0,0,0-.68-1.61q-.21-.41-.45-.81a.6.6,0,0,0-.56-.34.59.59,0,0,0-.54.35c-.12.28-.24.57-.35.85a17.5,17.5,0,0,0-.5,1.68,20,20,0,0,0-.49,2.94C75.6,291,75.75,292.08,75.66,292.09Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M77.48,283.92a8.45,8.45,0,0,1,.57,7.56c-.15,0,.26-1.72.09-3.81S77.34,284,77.48,283.92Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M60,313c.74-2.31-.16-5.85-1.59-8.21a.86.86,0,0,0-1.53.09,16.69,16.69,0,0,0-1.2,8.32"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
<path
d="M55.63,313.23a6.88,6.88,0,0,1-.27-2.78,16.56,16.56,0,0,1,.39-3,13.88,13.88,0,0,1,.49-1.74c.11-.3.22-.6.36-.9a1.12,1.12,0,0,1,2-.05c.17.28.32.56.46.84a15.18,15.18,0,0,1,.68,1.68,12,12,0,0,1,.6,3A4.83,4.83,0,0,1,60,313a12.81,12.81,0,0,0,0-2.73,13.66,13.66,0,0,0-.69-2.88,14.7,14.7,0,0,0-.69-1.61c-.13-.27-.28-.54-.44-.81a.61.61,0,0,0-.56-.34.58.58,0,0,0-.54.35c-.13.28-.25.57-.35.85a14.44,14.44,0,0,0-.5,1.68,18.6,18.6,0,0,0-.49,2.93C55.57,312.17,55.71,313.22,55.63,313.23Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M57.45,305.07a8.54,8.54,0,0,1,.57,7.56c-.15,0,.25-1.72.09-3.81S57.3,305.13,57.45,305.07Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M91.52,428.23c2.61-.91,5.56-2.14,6.39-4.78a6.4,6.4,0,0,0-1.51-5.73c-3-3.68-8.37-4.88-13-3.81a12.36,12.36,0,0,0-6.29,3.41A8.13,8.13,0,0,0,74.85,424a4.81,4.81,0,0,0,3,4c1.43.45,3,0,4.45-.3a15,15,0,0,1,7.82.71"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M69.18,391.59a2,2,0,0,1,.38-.14l1.13-.37c1-.33,2.42-.82,4.2-1.57a49.44,49.44,0,0,0,13.37-8.41l1-.88-.65,1.16-4.24,7.73a2.22,2.22,0,0,0-.28,1,.58.58,0,0,0,.47.61,4.44,4.44,0,0,0,2.09-.75,23.93,23.93,0,0,0,4.11-2.68,24.94,24.94,0,0,0,3.92-4l1-1.34-.6,1.59a33.26,33.26,0,0,0-1.79,6.88,32.39,32.39,0,0,0-.32,3.35,11.2,11.2,0,0,0,.13,3.14,2,2,0,0,0,.71,1.17,1.3,1.3,0,0,0,1.24.11,7,7,0,0,0,2.08-1.81c1.24-1.37,2.34-2.69,3.29-3.92a63.55,63.55,0,0,0,4.15-6.08l1-1.72a3.62,3.62,0,0,1,.36-.58,3.43,3.43,0,0,1-.28.63c-.2.41-.51,1-.93,1.76a55.63,55.63,0,0,1-4,6.19c-.94,1.26-2,2.6-3.27,4a7.15,7.15,0,0,1-2.22,1.94,1.74,1.74,0,0,1-1.65-.14,2.5,2.5,0,0,1-.9-1.41,11.72,11.72,0,0,1-.17-3.29c0-1.12.15-2.25.31-3.4a34,34,0,0,1,1.8-7l.44.25a24.71,24.71,0,0,1-4,4.07,24.39,24.39,0,0,1-4.2,2.74c-.37.2-.74.37-1.11.54a2.26,2.26,0,0,1-1.31.26,1.12,1.12,0,0,1-.89-1.1,3,3,0,0,1,.33-1.25l4.3-7.72.36.28A47.63,47.63,0,0,1,75,389.76a42.15,42.15,0,0,1-4.25,1.46c-.5.14-.89.23-1.16.3S69.19,391.61,69.18,391.59Z"
style="fill: #263238"
/>
style="fill: #263238" />
</g>
<g id="freepik--Dog--inject-64">
<path
d="M453.41,415.72l-28.19-73.18-6.08,17.36L368.08,248.82,341.77,194.1l-48.09-21L239,192.46s-13.81,37-15.47,45.85,4.42,38.14,4.42,38.14l15.47,37,9.83,53.26s-3.75,29.09-3.22,44,7.53,45.76,7.53,45.76H462.25Z"
style="fill: #ff725e"
/>
style="fill: #ff725e" />
<g style="opacity: 0.5">
<path
d="M386.08,436.44c.3-29.16-5.93-50.9-14.09-72.64a8.48,8.48,0,0,0-5.59-4.88c-4.61-1.28-8.63,3.08-11.76,6.68s-8.49,7.08-12.26,4.15c-4.19-3.26-1.12-9.89,2.15-14.08,6.32-8.08,12.68-16.34,16.41-25.9s7.52-20.75,2.78-29.85c-10.11,13.24-24.68,24.77-49.28,32.55-20.89,6.75-44.8,5.06-62.57,0,13,7.41,25.06,18.35,36,28.55,4.24,4,8.65,9.67,6.39,15-1.69,4-6.45,5.73-10.77,6.19s-8.86.16-12.82,2c-6.95,3.16-9.72,11.73-9.67,19.37.09,17.6,6.25,40.35,19.16,53H385.38C386.63,450.06,386,440.53,386.08,436.44Z"
style="fill: #fff"
/>
style="fill: #fff" />
</g>
<path
d="M362.63,309.3s-.13.1-.41.25l-1.21.62c-.53.26-1.18.59-1.91,1s-1.59.84-2.49,1.39c-1.83,1.06-3.94,2.43-6.21,4.07a70.57,70.57,0,0,0-13.12,12.49,73.31,73.31,0,0,0-4.37,6c-.6.87-1.07,1.71-1.51,2.42s-.8,1.34-1.09,1.86l-.68,1.18c-.16.27-.25.41-.27.4a2.13,2.13,0,0,1,.18-.44l.59-1.24c.26-.53.59-1.18,1-1.91s.87-1.58,1.45-2.47a65.28,65.28,0,0,1,4.31-6.1,71.9,71.9,0,0,1,6.17-6.75,73,73,0,0,1,7-5.83,63.84,63.84,0,0,1,6.31-4c.91-.54,1.78-.95,2.53-1.33s1.42-.69,2-.92l1.26-.53A2.27,2.27,0,0,1,362.63,309.3Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M381.33,235.86a59.3,59.3,0,0,0-29.41-33.59s-3.7-5.57-15.5-16.56S303,167.12,287.16,165.6c-.63-.06-1.27-.1-1.93-.12-15.89-.41-39.9,11.2-39.9,11.2-15.27,4.23-35.19,33.08-39,44.46s-1.41,32.69-1.41,32.69-8.28,18.88-3.09,37.29C211,323.55,267,349.56,321.77,328.65S389.49,260.15,381.33,235.86Z"
style="fill: #ff725e"
/>
style="fill: #ff725e" />
<g style="opacity: 0.5">
<path
d="M321.35,330.23c21.38-8,43.34-26.49,52.63-43.54,3.3-12.49,7-26.57,7-26.57l-15.45-48.43a61.29,61.29,0,0,0-6.92-5.52c-5.34.83-10.33,4.56-13.45,9.15-4.13,6.08-5.82,13.42-7.95,20.45s-5,14.24-10.71,18.87c-6.12,5-16.3,3.82-24.16,3.16.76,7.18,3.27,16.65,4,23.83l-14.59,4.43a71,71,0,0,1-10.9-22c-3.07,3.67-6.17,7.37-10,10.19s-8.61,4.7-13.36,4.22c-6.65-.67-11.92-5.66-17.77-8.92a36.77,36.77,0,0,0-28.27-3A36.4,36.4,0,0,0,200,272.4a76.75,76.75,0,0,0,1.81,18.72c3.61,17.55,22.63,33.09,44.7,39.8C266.86,337.11,294.92,340.07,321.35,330.23Z"
style="fill: #fff"
/>
style="fill: #fff" />
</g>
<path
d="M305.74,277.65a29.93,29.93,0,0,0-11,2.24,16.6,16.6,0,0,0-8.23,7.42,8,8,0,0,0-.9,5.31c.8,3.47,4.5,5.3,7.78,6.67s7.1,2.85,10.68,1.95c2.69-.67,4.89-2.58,6.79-4.6,2.56-2.72,4.89-6,5.06-9.72s-1.57-9.34-10.18-9.27"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M304.54,298.64a10.86,10.86,0,0,1,.6,1.6,27.81,27.81,0,0,1,1.17,4.54,12.61,12.61,0,0,1-.66,6.91,8.09,8.09,0,0,1-2.5,3.33,9.87,9.87,0,0,1-4.08,1.81,20,20,0,0,1-8.51-.25,21.44,21.44,0,0,1-6.4-2.73,19.41,19.41,0,0,1-3.64-3,11.7,11.7,0,0,1-.84-.95,1.49,1.49,0,0,1-.26-.36,28.42,28.42,0,0,0,4.94,4,21.84,21.84,0,0,0,6.31,2.57,20,20,0,0,0,8.29.21,9.61,9.61,0,0,0,3.88-1.7,7.77,7.77,0,0,0,2.37-3.12,12.53,12.53,0,0,0,.73-6.67,34.3,34.3,0,0,0-1-4.53A10.93,10.93,0,0,1,304.54,298.64Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M305.56,302.47c0-.1.57.22,1.44.83a42.52,42.52,0,0,0,3.77,2.44,14.39,14.39,0,0,0,6.3,1.77,11.43,11.43,0,0,0,7.59-2.06,14.41,14.41,0,0,0,4.69-6.43,25.38,25.38,0,0,0,1.46-6.46c.2-1.89.26-3.43.32-4.49a11.19,11.19,0,0,1,.13-1.66,9.43,9.43,0,0,1,.07,1.66c0,1.07,0,2.62-.15,4.53a24.82,24.82,0,0,1-1.38,6.6,14.61,14.61,0,0,1-4.83,6.67A11.85,11.85,0,0,1,317,308a14.35,14.35,0,0,1-6.45-1.93,33.41,33.41,0,0,1-3.72-2.6A11.08,11.08,0,0,0,305.56,302.47Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M264.47,252.45a9,9,0,0,0-6.65-3.21,6.19,6.19,0,0,0-4.28,1.69h0a8.5,8.5,0,0,0-4,7.75,8.59,8.59,0,0,0,6.44,7.49,8.72,8.72,0,0,0,9.14-3.83A8.83,8.83,0,0,0,264.47,252.45Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M324.61,237.64a8.09,8.09,0,0,0-6.39-2.86,9.19,9.19,0,0,0-4.54,1.34h0a8.47,8.47,0,0,0-4,7.75,8.57,8.57,0,0,0,6.44,7.48,8.71,8.71,0,0,0,9.13-3.82A8.83,8.83,0,0,0,324.61,237.64Z"
style="fill: #263238"
/>
style="fill: #263238" />
<g style="opacity: 0.5">
<path
d="M257.56,213.11l-2-1c-6.73-1.91-13.64,4.76-17.7,10a9.46,9.46,0,0,0-2.34,5.41c0,2.7,2,5,4.32,6.42,4.66,2.73,10.57,2.43,15.7.73,2.13-.71,4.31-1.75,5.5-3.66a9.17,9.17,0,0,0,1.11-4.92A21.29,21.29,0,0,0,257.56,213.11Z"
style="fill: #fff"
/>
style="fill: #fff" />
</g>
<g style="opacity: 0.5">
<path
d="M303.28,201l2-1c6.73-1.91,13.64,4.76,17.7,10.06a9.28,9.28,0,0,1,2.34,5.4c0,2.71-2,5.06-4.32,6.42-4.65,2.74-10.57,2.44-15.69.73-2.14-.71-4.32-1.75-5.51-3.65a9.09,9.09,0,0,1-1.1-4.93A21.22,21.22,0,0,1,303.28,201Z"
style="fill: #fff"
/>
style="fill: #fff" />
</g>
<path
d="M274.28,297.6a8.2,8.2,0,0,1-1.08-1.17,32.1,32.1,0,0,1-2.62-3.47,14.68,14.68,0,0,1-2.41-6,10.57,10.57,0,0,1,.21-3.86,23,23,0,0,1,1.37-3.88A69.26,69.26,0,0,1,277,266.83l2.5-3.53a9.48,9.48,0,0,1,1-1.27,8.64,8.64,0,0,1-.8,1.38c-.54.87-1.36,2.1-2.37,3.63a78.17,78.17,0,0,0-7,12.38,22.37,22.37,0,0,0-1.35,3.79,10.31,10.31,0,0,0-.24,3.68,15,15,0,0,0,2.25,5.87,43,43,0,0,0,2.46,3.55A9.94,9.94,0,0,1,274.28,297.6Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M332,275.93a12.05,12.05,0,0,1-.06-1.66,20.39,20.39,0,0,0-.48-4.47,8.63,8.63,0,0,0-1.21-2.8,7.24,7.24,0,0,0-2.59-2.29,18.15,18.15,0,0,0-3.65-1.44L319.93,262c-5.59-1.74-10.64-3.33-14.29-4.51l-4.32-1.43a10.11,10.11,0,0,1-1.56-.59,10.82,10.82,0,0,1,1.62.4l4.37,1.26c3.67,1.09,8.75,2.64,14.34,4.37l4.08,1.27a19.28,19.28,0,0,1,3.73,1.51,7.63,7.63,0,0,1,2.71,2.47,8.82,8.82,0,0,1,1.21,2.95,18.51,18.51,0,0,1,.32,4.56c0,.54-.05,1-.08,1.24S332,275.94,332,275.93Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M201.57,162.36c-6.31-1.64-14-1.89-18.36,2.93s-3.52,12.05-2,18.24a120.52,120.52,0,0,0,23.34,46.65l32.81-49.42C226.14,173.32,214.63,165.75,201.57,162.36Z"
style="fill: #ff725e"
/>
style="fill: #ff725e" />
<g style="opacity: 0.5">
<path
d="M199.7,169.88c-3.83-1.36-8.8-1.85-11.31,1.35-2.27,2.9-1.15,7.12.29,10.52,5.1,12,12.09,25.19,22.09,33.52,4.85-10,10.5-19,17.56-26.26C220.17,181.65,210.06,173.55,199.7,169.88Z"
style="fill: #fff"
/>
style="fill: #fff" />
</g>
<path
d="M217.56,203.18a6.08,6.08,0,0,1-.95-.94l-2.45-2.65c-2.15-2.32-5-5.36-8.14-8.73s-6-6.53-8-8.84c-1-1.16-1.8-2.1-2.33-2.77a6.24,6.24,0,0,1-.79-1.07,6,6,0,0,1,.94.93l2.45,2.66,8.14,8.73c3.19,3.41,6,6.53,8,8.84,1,1.15,1.79,2.1,2.33,2.77A7,7,0,0,1,217.56,203.18Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M331.06,138.07c-2.62-5.82-6.54-12.07-12.84-13.11S305.93,128.84,302,134c-8.15,10.75-12.51,23.82-16.73,36.63l53.44,18.07C337.25,170.27,338.25,154.05,331.06,138.07Z"
style="fill: #ff725e"
/>
style="fill: #ff725e" />
<g style="opacity: 0.5">
<path
d="M308.11,138.78c2.17-3.44,5.77-6.9,9.72-5.94,3.58.87,5.31,4.88,6.28,8.43,3.41,12.56,6.07,26.74,3.38,39.47-8.47-5-18.36-8.58-29-11.48C300.29,158.43,302.25,148.08,308.11,138.78Z"
style="fill: #fff"
/>
style="fill: #fff" />
</g>
<path
d="M314.8,174.63a5.88,5.88,0,0,1-.05-1.28c0-.82,0-2,.11-3.47.13-2.93.42-7,.8-11.44s.7-8.38.95-11.41c.11-1.38.2-2.54.27-3.46a6.71,6.71,0,0,1,.16-1.27,5.88,5.88,0,0,1,0,1.28c0,.82,0,2-.11,3.47-.13,2.94-.42,7-.8,11.44s-.7,8.38-.95,11.41c-.11,1.38-.2,2.54-.27,3.46A5.81,5.81,0,0,1,314.8,174.63Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M362.63,301.52a6.19,6.19,0,0,1-.66,1.11,22.73,22.73,0,0,1-2.4,2.84c-1.11,1.16-2.54,2.52-4.27,4-.86.75-1.8,1.54-2.81,2.36l-3.14,2.64a96.75,96.75,0,0,1-16.91,11.07,101.92,101.92,0,0,1-23.22,8.55,112.84,112.84,0,0,1-24.58,2.94,116.16,116.16,0,0,1-20.16-1.59,97.9,97.9,0,0,1-13.26-3.2c-1.52-.51-2.71-.91-3.49-1.23l-.9-.36-.3-.13a1.6,1.6,0,0,1,.32.08l.91.31c.8.29,2,.66,3.52,1.14a105.22,105.22,0,0,0,13.26,3,118.48,118.48,0,0,0,20.09,1.48,114.43,114.43,0,0,0,24.47-3,103.11,103.11,0,0,0,23.12-8.46,99.59,99.59,0,0,0,16.9-10.93l6-4.94c1.74-1.48,3.19-2.81,4.32-3.94a27.11,27.11,0,0,0,2.46-2.76C362.4,301.9,362.61,301.5,362.63,301.52Z"
style="fill: #263238"
/>
style="fill: #263238" />
<g style="opacity: 0.5">
<path
d="M305.73,280.2a16.06,16.06,0,0,0-14,7,2,2,0,0,0-.44,1.78,1.43,1.43,0,0,0,1.45.77,4.14,4.14,0,0,0,1.64-.58l10.54-5.49a3.74,3.74,0,0,0,1.74-1.43c.35-.68.08-1.72-.67-1.86"
style="fill: #fff"
/>
style="fill: #fff" />
</g>
<path
d="M331.35,183a8.16,8.16,0,0,1-1.37-.71c-.85-.49-2.1-1.19-3.66-2a119.65,119.65,0,0,0-25.54-10.25c-1.7-.47-3.08-.83-4-1.07a7.77,7.77,0,0,1-1.48-.43,9.51,9.51,0,0,1,1.52.23c1,.18,2.38.48,4.1.91A101.58,101.58,0,0,1,326.5,180c1.54.88,2.76,1.63,3.59,2.18A8.83,8.83,0,0,1,331.35,183Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M318.58,311.15a6.47,6.47,0,0,1-1.51,1.34,32.34,32.34,0,0,1-4.09,2.63,33.45,33.45,0,0,1-4.43,2,7,7,0,0,1-1.95.53c-.05-.15,2.83-1.18,6.13-3S318.48,311,318.58,311.15Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M232.24,185.85a8.57,8.57,0,0,1-1.11,1.23c-.75.77-1.81,1.89-3.09,3.31a105.93,105.93,0,0,0-16.67,24.55c-.84,1.71-1.5,3.11-1.94,4.08a9.77,9.77,0,0,1-.73,1.49,10,10,0,0,1,.55-1.56c.38-1,1-2.43,1.79-4.17a93,93,0,0,1,16.73-24.64c1.32-1.39,2.42-2.48,3.21-3.2A11.2,11.2,0,0,1,232.24,185.85Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M440.63,436.11s-.2,0-.58-.13l-1.68-.45c-1.46-.41-3.6-1-6.29-2a130.23,130.23,0,0,1-21.56-9.68l.26-.35A97.14,97.14,0,0,1,424.91,441l.48.78-.81-.42a78.8,78.8,0,0,1-14-9.09,80.58,80.58,0,0,1-11.28-11.17l.43-.27,7.8,18.51.31.74-.65-.46A69.8,69.8,0,0,1,389.25,421a54.84,54.84,0,0,1-4.71-8.65l.09.14c.06.12.13.26.23.44l.88,1.69c.8,1.48,2,3.63,3.73,6.23a70.61,70.61,0,0,0,17.95,18.45l-.34.27c-2.39-5.63-5-11.85-7.84-18.49l-.68-1.6,1.11,1.34a79.55,79.55,0,0,0,25.14,20.14l-.33.36a98.37,98.37,0,0,0-14-17.46l-1.18-1.16,1.44.82a137.34,137.34,0,0,0,21.42,9.83c2.68.95,4.8,1.62,6.25,2.08l1.65.51Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M364,291.63c-.81,7-3,16.65-3.34,23.62l3.91-5.95c1.17,18.18,4,40.65,6.59,58.68"
style="fill: #ff725e"
/>
style="fill: #ff725e" />
<path
d="M371.2,368a.67.67,0,0,1-.06-.23c0-.18-.08-.4-.12-.67-.11-.63-.25-1.5-.42-2.59-.35-2.25-.83-5.51-1.39-9.55-1.11-8.07-2.55-19.24-3.73-31.62-.46-4.89-.84-9.61-1.12-14l.46.12c-1.38,2.07-2.69,4.06-3.93,5.94l-.47.7.05-.84a89.74,89.74,0,0,1,1.17-9.69c.5-2.85.94-5.35,1.3-7.43s.64-3.68.81-4.79c.08-.52.15-.94.2-1.27a2.72,2.72,0,0,1,.09-.43,1.34,1.34,0,0,1,0,.44c0,.29-.06.72-.13,1.28-.12,1.12-.35,2.75-.68,4.82s-.73,4.58-1.19,7.44a91.37,91.37,0,0,0-1.09,9.65l-.42-.14,3.89-5.95.41-.62.05.74c.29,4.38.68,9.09,1.14,14,1.18,12.37,2.56,23.54,3.58,31.62.51,4,.92,7.27,1.22,9.57.13,1.1.24,2,.32,2.61l.07.68A1,1,0,0,1,371.2,368Z"
style="fill: #263238"
/>
style="fill: #263238" />
<g style="opacity: 0.30000000000000004">
<path
d="M385,412.91c-2.86-7.31-4-14.28-6.88-21.6.95,13.95,7.3,26.9,13.91,39.22a59.82,59.82,0,0,0,7.51,11.62c3.06,3.46,7,6.29,11.58,7.17a3.32,3.32,0,0,0,2.45-.23c1.45-.95.87-3.19,0-4.7s-2.46-7.75-2.46-7.75c7.4,5.18,18,11.37,26.95,12.31q-3.57-5.71-7.12-11.44A21.26,21.26,0,0,0,448,438.67c-11.35-4.39-24.85-9.4-36.19-13.79a85.89,85.89,0,0,1,12.87,16.29c-8.68-4-19.56-11.31-25.22-20.21,3.33,7.44,6.86,15.49,7.57,18.53-10.37-8-17.9-15.51-22.5-27.74"
/>
d="M385,412.91c-2.86-7.31-4-14.28-6.88-21.6.95,13.95,7.3,26.9,13.91,39.22a59.82,59.82,0,0,0,7.51,11.62c3.06,3.46,7,6.29,11.58,7.17a3.32,3.32,0,0,0,2.45-.23c1.45-.95.87-3.19,0-4.7s-2.46-7.75-2.46-7.75c7.4,5.18,18,11.37,26.95,12.31q-3.57-5.71-7.12-11.44A21.26,21.26,0,0,0,448,438.67c-11.35-4.39-24.85-9.4-36.19-13.79a85.89,85.89,0,0,1,12.87,16.29c-8.68-4-19.56-11.31-25.22-20.21,3.33,7.44,6.86,15.49,7.57,18.53-10.37-8-17.9-15.51-22.5-27.74" />
</g>
<path
d="M355.05,242.71a77.08,77.08,0,0,0,1.84,16.71c5.86,26.32,16.05,106,16.88,107,1,1.2,64.83,3.33,64.83,3.33l-10.44-13.39,9.16,3s-1.68-2.59-9.16-9.25c-10-8.9-24.15-117.66-24.15-117.66h0c1.82-14.85,3.64-29.74,3.5-44.69s-2.31-30-8.2-43.87a40.44,40.44,0,0,0-7.57-12.32c-3.37-3.53-7.47-3.38-12.21-4.89-8.5-2.7-13.93,1.18-18.3,6.1-3,3.35-3.22,7.28-5,11.37a12.3,12.3,0,0,0-4.13,5.83c-2.58,6.85-4.62,14-4.91,21.27s1.42,14.84,6,20.63l-4.35-2.4,7.93,8.7-2,3.81a12.17,12.17,0,0,0-1.41,7.31l3.28-3.48c-2,4.17-2.24,8.17-2.91,14.47-.31,2.82-.47,5.66-.51,8.49l-.14,9.87,1.91-1.6Z"
style="fill: #ff725e"
/>
style="fill: #ff725e" />
<g style="opacity: 0.5">
<path
d="M379.7,251.3c6.66-.15,13.8,2.78,17.72,8,2.14,2.86,2.86,6.46,3.53,9.94q4.8,25.14,9.61,50.27c3.2,16.76,6.4,33.54,8.52,50.46,1.06,8.43,1.76,17.37-2,25.06-1.43,2.94-3.71,5.76-6.93,6.67-3.57,1-7.49-.63-10.08-3.22s-4.11-6-5.51-9.33a374.43,374.43,0,0,1-17-52.06c-7.17-28.09-6.61-42.58-9.42-71.38C368.22,265.72,367.84,251.56,379.7,251.3Z"
style="fill: #fff"
/>
style="fill: #fff" />
</g>
<path
d="M374,133.46c-1.89-1.72-5.06-1.55-7.18-.1a10.57,10.57,0,0,0-3.92,6.32,12,12,0,0,0-.1,6,7.44,7.44,0,0,0,3.67,4.74,5.64,5.64,0,0,0,5.92-.41c1.48-1.18,2.09-3.09,2.49-4.91.78-3.56,1.88-9.29-.88-11.69"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M357.38,151.11c-.32,0-4.31.7-5.75,5.89s-2.06,11.68,2.05,12.18,7.81.29,8.32-5.09S360.67,151,357.38,151.11Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M386.67,135.33c-.24,0-4.07-.77-5.82,2.65s-4.25,9.36-2.31,13.13,6.49,8.14,10.07,2.9,4.12-10.73,3.4-13.44S386.67,135.33,386.67,135.33Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M396.83,159c-.52.08-10.08,5-11.77,9.68s-.46,5.48,3.34,7.88a7.92,7.92,0,0,0,10.89-2.4C401.86,170.57,403.3,157.9,396.83,159Z"
style="fill: #263238"
/>
style="fill: #263238" />
<g style="opacity: 0.5">
<path
d="M381,188.14c-.71-1.3-2.15-1.83-3.47-2.26l-8.4-2.74c-1.68-.55-3.69-1-5,.27l-2,.55a46.81,46.81,0,0,0,1.25,9.25,14.35,14.35,0,0,0,4.63,7.62,7.08,7.08,0,0,0,8,.75c2.59-1.61,3.8-5,4.82-8.08C381.32,191.76,381.87,189.73,381,188.14Z"
style="fill: #fff"
/>
style="fill: #fff" />
</g>
<path
d="M370.71,167.85c-1.64,2.05-4.36,2.91-6.9,3.75s-5.23,1.89-6.61,4.12a7.91,7.91,0,0,0-.39,6.63,6.83,6.83,0,0,0,2.85,3.88c2.65,1.52,6.07.26,9.09.85,4.38.86,7.17,5.43,11.53,6.43,3.74.86,7.74-1.34,9.72-4.55a7,7,0,0,0,1.05-5.53c-.71-2.39-3-3.92-5.26-5.14s-4.64-2.48-5.8-4.69a21.13,21.13,0,0,1-1.19-3.92,5.08,5.08,0,0,0-2.33-3.28c-1.86-.91-4.13.15-5.6,1.58"
style="fill: #263238"
/>
style="fill: #263238" />
<g style="opacity: 0.30000000000000004">
<path
d="M382.94,238.18q-2.64-3.09-5.49-6L368.71,237a16.49,16.49,0,0,0,5.11,5.92,9.2,9.2,0,0,0,7.62,1.34c1.52-.47,3-1.69,2.95-3.23A4.74,4.74,0,0,0,382.94,238.18Z"
/>
d="M382.94,238.18q-2.64-3.09-5.49-6L368.71,237a16.49,16.49,0,0,0,5.11,5.92,9.2,9.2,0,0,0,7.62,1.34c1.52-.47,3-1.69,2.95-3.23A4.74,4.74,0,0,0,382.94,238.18Z" />
</g>
<path
d="M376.75,231.94a6.48,6.48,0,0,0-5.65.38,4.82,4.82,0,0,0-2.31,4.88,6.33,6.33,0,0,0,2.84,3.78,11.66,11.66,0,0,0,8.87,1.69c1.58-.34,3.26-1.24,3.53-2.78a5.85,5.85,0,0,0-1.23-3.6,14.41,14.41,0,0,0-6.05-4.35"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M381.69,224.48s-.13-.07-.33-.24-.52-.42-.89-.77a32.55,32.55,0,0,1-3-3.15,36.5,36.5,0,0,1-6.76-12.53l.51-.07v0c0,1.39-.07,2.75-.11,4.06,0,.66,0,1.3-.06,1.93l0,.94a2.44,2.44,0,0,1-.17,1,1.19,1.19,0,0,1-.33.46.79.79,0,0,1-.61.14,1.29,1.29,0,0,1-.79-.65c-.31-.49-.61-1-.86-1.45a19.26,19.26,0,0,1-1.2-2.76,17.64,17.64,0,0,1-.88-4.26,10.85,10.85,0,0,1,0-1.18,1.2,1.2,0,0,1,0-.41,24.27,24.27,0,0,0,1.23,5.72,19.62,19.62,0,0,0,1.23,2.69c.26.46.55.92.86,1.4s.72.63.91.12a6.31,6.31,0,0,0,.15-1.75c0-.63,0-1.28,0-1.93,0-1.32.06-2.68.1-4.07v0l0-1.6.47,1.53a38.24,38.24,0,0,0,6.55,12.46c1.12,1.42,2.12,2.5,2.82,3.24A10.58,10.58,0,0,1,381.69,224.48Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M382.53,162.85a10.17,10.17,0,0,1-1.21-1.49l-3.07-4.15.37-.11c0,1.46-.07,3.09-.11,4.83v.61l-.41-.45a11.4,11.4,0,0,1-2.4-4.17l.48,0c-.32.73-.66,1.49-1,2.27l-.92,2.05-.17.38-.26-.32a5,5,0,0,1-.77-5l.37.28a29.66,29.66,0,0,1-5.34,3.32l-.46.23.21-.46a11.81,11.81,0,0,1,2.36-3.42,7.51,7.51,0,0,1,.84-.75c.2-.16.31-.23.33-.22s-.39.39-1,1.11a12.56,12.56,0,0,0-2.17,3.42l-.25-.23a32.84,32.84,0,0,0,5.2-3.38l.72-.57-.34.85a4.53,4.53,0,0,0,.71,4.47l-.43.06.91-2.05,1-2.27.28-.62.2.64a11.22,11.22,0,0,0,2.27,4l-.42.15c.07-1.75.13-3.37.19-4.83l0-.61.34.49,2.93,4.26A13.85,13.85,0,0,1,382.53,162.85Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M373.76,127.74a1.74,1.74,0,0,0-2.06,0,2.4,2.4,0,0,0-1.14,1.58.92.92,0,0,0,.26.91,1.68,1.68,0,0,0,1.27.36,2.34,2.34,0,0,0,1.8-.92A1.48,1.48,0,0,0,373.76,127.74Z"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
<path
d="M389.7,132.9a3.9,3.9,0,0,0-1.6-1.9.7.7,0,0,0-.57-.13c-.16.06-.52.18-.61.32a1.68,1.68,0,0,0-.23,1.39,2.34,2.34,0,0,0,2.4,1.44.9.9,0,0,0,.62-.3A.85.85,0,0,0,389.7,132.9Z"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
<g style="opacity: 0.30000000000000004">
<path d="M365.28,316.82A98.72,98.72,0,0,0,371.21,365c-1.15-16.59-4-32.17-5.4-49.22" />
</g>
<g style="opacity: 0.30000000000000004">
<path
d="M380.37,223.62A56.65,56.65,0,0,1,371,208.3a23.25,23.25,0,0,1-.33,6.33c-.06.43,0,1.31-.45,1.39s-1-.67-1.19-1a18.18,18.18,0,0,1-2.89-7.91l-.21.92a11.78,11.78,0,0,0,2.89,9.41,2.5,2.5,0,0,0,1.9,1,1.84,1.84,0,0,0,1.49-1.37,5.17,5.17,0,0,0,0-2.11A13.69,13.69,0,0,0,380.37,223.62Z"
/>
d="M380.37,223.62A56.65,56.65,0,0,1,371,208.3a23.25,23.25,0,0,1-.33,6.33c-.06.43,0,1.31-.45,1.39s-1-.67-1.19-1a18.18,18.18,0,0,1-2.89-7.91l-.21.92a11.78,11.78,0,0,0,2.89,9.41,2.5,2.5,0,0,0,1.9,1,1.84,1.84,0,0,0,1.49-1.37,5.17,5.17,0,0,0,0-2.11A13.69,13.69,0,0,0,380.37,223.62Z" />
</g>
<path
d="M395.78,310.27a2.39,2.39,0,0,1-.44-.34c-.27-.23-.69-.57-1.18-1.05a42.57,42.57,0,0,1-4-4.3,46.31,46.31,0,0,1-8.88-17.43l.51-.09c.07.85.14,1.76.22,2.67a112.93,112.93,0,0,1,.18,11.81l0,.71-.4-.58A38.75,38.75,0,0,1,376,289.62a33.36,33.36,0,0,1-.82-3.73c-.07-.44-.1-.78-.13-1a1.82,1.82,0,0,1,0-.35,9.77,9.77,0,0,1,.31,1.33c.18.87.47,2.13.94,3.68a40.59,40.59,0,0,0,5.82,11.85l-.44.13c.11-3.61.06-7.59-.22-11.75-.08-.91-.15-1.81-.21-2.66l.5-.09a47.69,47.69,0,0,0,8.66,17.34,48.91,48.91,0,0,0,3.86,4.38c.47.5.87.86,1.12,1.12A3,3,0,0,1,395.78,310.27Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M437.9,390.59a6.31,6.31,0,0,1,.22,1.3c.11.85.2,2.07.27,3.58A64,64,0,0,1,435,418.82c-.49,1.43-.94,2.58-1.28,3.35a5.93,5.93,0,0,1-.58,1.19,6.87,6.87,0,0,1,.39-1.26c.28-.8.67-2,1.12-3.4a75.22,75.22,0,0,0,2.62-11.47,76.46,76.46,0,0,0,.76-11.75c0-1.5-.07-2.73-.12-3.57A7.11,7.11,0,0,1,437.9,390.59Z"
style="fill: #263238"
/>
style="fill: #263238" />
</g>
</svg>
</template>

View File

@@ -3,190 +3,143 @@
<g id="freepik--background-simple--inject-24">
<path
d="M267.69,52.19c37.37,7.52,79.84,28.31,97.2,64.35,26.24,54.46,73.44,53.91,85.57,157a209.06,209.06,0,0,1,.59,45.34,173,173,0,0,1-3.59,21.93c-14.65,63.73-63,103.49-118.41,115C256.18,471.05,213,425.43,187.16,395.42S75.52,338,62.8,236.71a202.32,202.32,0,0,1-.64-46.6c3.74-35.37,18.51-73.07,45-97.85q3-2.79,6.15-5.4C154.45,52.78,216.74,41.94,267.69,52.19Z"
style="fill: #92e3a9"
/>
style="fill: #92e3a9" />
<path
d="M267.69,52.19c37.37,7.52,79.84,28.31,97.2,64.35,26.24,54.46,73.44,53.91,85.57,157a209.06,209.06,0,0,1,.59,45.34,173,173,0,0,1-3.59,21.93c-14.65,63.73-63,103.49-118.41,115C256.18,471.05,213,425.43,187.16,395.42S75.52,338,62.8,236.71a202.32,202.32,0,0,1-.64-46.6c3.74-35.37,18.51-73.07,45-97.85q3-2.79,6.15-5.4C154.45,52.78,216.74,41.94,267.69,52.19Z"
style="fill: #fff; opacity: 0.7000000000000001"
/>
style="fill: #fff; opacity: 0.7000000000000001" />
</g>
<g id="freepik--paw-prints--inject-24">
<g style="opacity: 0.30000000000000004">
<path
d="M363.29,46.88a120.86,120.86,0,0,1-20.83,9c-11.6,3.72-21.36,14-15,27.73s12.68,27,18.06,35.31,19,13.36,28.94,5.38,6.72-15.48,11.39-30,13.61-20.38,14.73-29-5.25-22.44-17.26-23.77A28.33,28.33,0,0,0,363.29,46.88Z"
/>
d="M363.29,46.88a120.86,120.86,0,0,1-20.83,9c-11.6,3.72-21.36,14-15,27.73s12.68,27,18.06,35.31,19,13.36,28.94,5.38,6.72-15.48,11.39-30,13.61-20.38,14.73-29-5.25-22.44-17.26-23.77A28.33,28.33,0,0,0,363.29,46.88Z" />
<path
d="M307.71,101.31s-9.95,1.12-15.11,7.37S296,123.34,304.33,128s22.37,1.83,28-5,.93-17.78-4.43-19.93S307.71,101.31,307.71,101.31Z"
/>
d="M307.71,101.31s-9.95,1.12-15.11,7.37S296,123.34,304.33,128s22.37,1.83,28-5,.93-17.78-4.43-19.93S307.71,101.31,307.71,101.31Z" />
<path
d="M272.5,73.62S279.24,87,288.68,92.84s20.39,6,26.68-2,.14-18.31-6.9-24-21.28-9-29-7.87S271.61,70.61,272.5,73.62Z"
/>
d="M272.5,73.62S279.24,87,288.68,92.84s20.39,6,26.68-2,.14-18.31-6.9-24-21.28-9-29-7.87S271.61,70.61,272.5,73.62Z" />
<path
d="M282.44,42.88s4.64,5.56,16.28,10.68,21.37,4.66,27.35.91,8.51-13.63,3-21.47-21.23-11.22-28.49-9.39-16.92,7-19,10.86S279.86,40.49,282.44,42.88Z"
/>
d="M282.44,42.88s4.64,5.56,16.28,10.68,21.37,4.66,27.35.91,8.51-13.63,3-21.47-21.23-11.22-28.49-9.39-16.92,7-19,10.86S279.86,40.49,282.44,42.88Z" />
<path
d="M327.9,21.08s8.26,14,17.36,18.66,19.49-.42,21.42-5.85.88-14.87-9.76-22.82-26.48-4-28.67-.63S327.9,21.08,327.9,21.08Z"
/>
d="M327.9,21.08s8.26,14,17.36,18.66,19.49-.42,21.42-5.85.88-14.87-9.76-22.82-26.48-4-28.67-.63S327.9,21.08,327.9,21.08Z" />
</g>
<g style="opacity: 0.30000000000000004">
<path
d="M450.14,367.06a120.54,120.54,0,0,1-9.24-20.73c-3.84-11.56-14.19-21.21-27.88-14.69s-26.89,13-35.11,18.45-13.15,19.14-5.07,29,15.56,6.55,30.11,11.06,20.53,13.38,29.2,14.41,22.38-5.5,23.58-17.53A28.34,28.34,0,0,0,450.14,367.06Z"
/>
d="M450.14,367.06a120.54,120.54,0,0,1-9.24-20.73c-3.84-11.56-14.19-21.21-27.88-14.69s-26.89,13-35.11,18.45-13.15,19.14-5.07,29,15.56,6.55,30.11,11.06,20.53,13.38,29.2,14.41,22.38-5.5,23.58-17.53A28.34,28.34,0,0,0,450.14,367.06Z" />
<path
d="M395.09,312.08s-1.23-9.94-7.53-15-14.62,3.52-19.22,11.94-1.58,22.38,5.3,27.92,17.8.73,19.89-4.65S395.09,312.08,395.09,312.08Z"
/>
d="M395.09,312.08s-1.23-9.94-7.53-15-14.62,3.52-19.22,11.94-1.58,22.38,5.3,27.92,17.8.73,19.89-4.65S395.09,312.08,395.09,312.08Z" />
<path
d="M422.39,276.57s-13.33,6.88-19,16.39-5.8,20.45,2.32,26.65,18.31-.06,23.92-7.16,8.79-21.37,7.55-29.12S425.39,275.64,422.39,276.57Z"
/>
d="M422.39,276.57s-13.33,6.88-19,16.39-5.8,20.45,2.32,26.65,18.31-.06,23.92-7.16,8.79-21.37,7.55-29.12S425.39,275.64,422.39,276.57Z" />
<path
d="M453.24,286.17s-5.51,4.7-10.5,16.4-4.41,21.41-.6,27.35,13.72,8.37,21.5,2.74,11-21.35,9.08-28.59-7.15-16.84-11.08-18.92S455.6,283.57,453.24,286.17Z"
/>
d="M453.24,286.17s-5.51,4.7-10.5,16.4-4.41,21.41-.6,27.35,13.72,8.37,21.5,2.74,11-21.35,9.08-28.59-7.15-16.84-11.08-18.92S455.6,283.57,453.24,286.17Z" />
<path
d="M475.54,331.38S461.68,339.8,457.08,349s.63,19.48,6.09,21.36,14.87.71,22.7-10,3.73-26.53.32-28.67S475.54,331.38,475.54,331.38Z"
/>
d="M475.54,331.38S461.68,339.8,457.08,349s.63,19.48,6.09,21.36,14.87.71,22.7-10,3.73-26.53.32-28.67S475.54,331.38,475.54,331.38Z" />
</g>
<g style="opacity: 0.30000000000000004">
<path
d="M138.05,372.16a120.85,120.85,0,0,0-9.14,20.77c-3.78,11.58-14.09,21.27-27.82,14.81S74.15,394.89,65.9,389.45s-13.23-19.09-5.19-29,15.53-6.63,30.06-11.19,20.47-13.48,29.14-14.54,22.4,5.4,23.65,17.42A28.32,28.32,0,0,1,138.05,372.16Z"
/>
d="M138.05,372.16a120.85,120.85,0,0,0-9.14,20.77c-3.78,11.58-14.09,21.27-27.82,14.81S74.15,394.89,65.9,389.45s-13.23-19.09-5.19-29,15.53-6.63,30.06-11.19,20.47-13.48,29.14-14.54,22.4,5.4,23.65,17.42A28.32,28.32,0,0,1,138.05,372.16Z" />
<path
d="M83.25,427.38s-1.18,9.94-7.46,15.06S61.15,439,56.52,430.58s-1.68-22.38,5.18-27.94,17.79-.82,19.9,4.55S83.25,427.38,83.25,427.38Z"
/>
d="M83.25,427.38s-1.18,9.94-7.46,15.06S61.15,439,56.52,430.58s-1.68-22.38,5.18-27.94,17.79-.82,19.9,4.55S83.25,427.38,83.25,427.38Z" />
<path
d="M110.71,462.77s-13.37-6.83-19.11-16.31S85.72,426,93.81,419.8s18.31,0,24,7.06,8.89,21.33,7.67,29.08S113.71,463.68,110.71,462.77Z"
/>
d="M110.71,462.77s-13.37-6.83-19.11-16.31S85.72,426,93.81,419.8s18.31,0,24,7.06,8.89,21.33,7.67,29.08S113.71,463.68,110.71,462.77Z" />
<path
d="M141.52,453S136,448.36,131,436.68s-4.52-21.39-.73-27.35,13.68-8.42,21.49-2.84,11.08,21.31,9.2,28.56-7.07,16.87-11,19S143.89,455.63,141.52,453Z"
/>
d="M141.52,453S136,448.36,131,436.68s-4.52-21.39-.73-27.35,13.68-8.42,21.49-2.84,11.08,21.31,9.2,28.56-7.07,16.87-11,19S143.89,455.63,141.52,453Z" />
<path
d="M163.62,407.72s-13.9-8.35-18.54-17.48.54-19.49,6-21.39,14.88-.77,22.75,9.92,3.85,26.51.45,28.67S163.62,407.72,163.62,407.72Z"
/>
d="M163.62,407.72s-13.9-8.35-18.54-17.48.54-19.49,6-21.39,14.88-.77,22.75,9.92,3.85,26.51.45,28.67S163.62,407.72,163.62,407.72Z" />
</g>
</g>
<g id="freepik--paw-2--inject-24">
<path
d="M235.41,195.61s-.1-14.37,3.12-15.45,7.88,7.16,8.95,9.67S235.41,195.61,235.41,195.61Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M234.92,196.25v-.64c0-2.46.07-14.79,3.47-15.92,3.83-1.28,8.75,8.05,9.56,9.94a1.29,1.29,0,0,1-.05,1.13c-1.24,2.5-11.22,5.05-12.36,5.34Zm4.22-15.69a1.42,1.42,0,0,0-.45.08c-2,.67-2.76,8.88-2.78,14.33,4.14-1.08,10.34-3.16,11.09-4.66a.32.32,0,0,0,0-.28C245.84,187.26,241.79,180.56,239.14,180.56Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M280.38,162.92s3.1-14,6.48-14.37,6.09,8.73,6.57,11.42S280.38,162.92,280.38,162.92Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M279.76,163.43l.13-.62c.53-2.4,3.36-14.41,6.92-14.76,4-.38,6.75,9.8,7.12,11.83a1.33,1.33,0,0,1-.3,1.08c-1.78,2.17-12.07,2.43-13.24,2.46ZM287,149h-.13c-2.12.2-4.67,8-5.9,13.35,4.28-.13,10.78-.78,11.84-2.07a.32.32,0,0,0,.09-.27C292.38,157,289.74,149,287,149Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M349.48,196.93s3.1-14,6.48-14.37,6.09,8.74,6.58,11.42S349.48,196.93,349.48,196.93Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M348.86,197.44l.13-.62c.53-2.4,3.36-14.41,6.92-14.75,4-.4,6.75,9.8,7.12,11.82a1.32,1.32,0,0,1-.3,1.08c-1.78,2.17-12.07,2.44-13.24,2.46Zm7.28-14.39H356c-2.12.21-4.67,8.05-5.9,13.35,4.28-.13,10.78-.77,11.84-2.07a.32.32,0,0,0,.09-.27C361.48,191,358.84,183.05,356.14,183.05Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M312.6,159.34s3.1-14,6.48-14.37,6.09,8.73,6.58,11.42S312.6,159.34,312.6,159.34Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M312,159.85l.13-.62c.53-2.4,3.36-14.41,6.92-14.76,4-.39,6.75,9.8,7.12,11.83a1.33,1.33,0,0,1-.3,1.08c-1.77,2.17-12.07,2.43-13.24,2.46Zm7.28-14.39h-.13c-2.11.2-4.67,8-5.9,13.35,4.28-.13,10.78-.78,11.84-2.07a.34.34,0,0,0,.1-.27C324.6,153.39,322,145.46,319.26,145.46Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M255.71,487.47s7.08-82.5,7.08-92.72S258.07,361,258.07,361s-3.93-13.35-5.5-17.28-7.86-14.93-4.71-19.65,7.07,1.57,7.07,1.57a79.71,79.71,0,0,0-1.57-14.92c-1.58-7.08-2-18-2-18-3.86-11.59-4.83-34.28-5.8-36.7s-9.65-11.59-14-26.56,3.86-33.8,3.86-33.8-.48-4.83,6.28-7.24S260,197.06,260,197.06s6.74-29,20.74-37.66,19.25,6.72,20.7,10.1c0,0,11.2-16.87,19.89-14.45s19.32,18.35,22.21,25.11,1.94,16.42,1.94,16.42,8.69-11.11,16.41-3.38,11.59,26.07,9.18,40.56-16.9,25.11-16.9,25.11,2.9,26.08-4.35,37.67q-1.29,2.07-2.34,3.85s-2.23,18.93-3,29.14,1.58,50.29,1.58,67.58,9.42,88.79,9.42,88.79"
style="fill: #92e3a9"
/>
style="fill: #92e3a9" />
<path
d="M256.21,487.51l-1-.08c.07-.83,7.07-82.6,7.07-92.68s-4.66-33.45-4.71-33.69c0-.09-3.93-13.34-5.47-17.2-.28-.69-.71-1.62-1.21-2.7-2.47-5.3-6.19-13.3-3.46-17.4a3.8,3.8,0,0,1,3.11-2c1.56,0,3,1.28,3.85,2.29a78.07,78.07,0,0,0-1.53-13.29c-1.5-6.73-2-17.06-2-18-2.54-7.68-3.83-20.16-4.69-28.42a66.18,66.18,0,0,0-1.07-8.18,23,23,0,0,0-2-3.08c-3.06-4.3-8.76-12.32-12-23.53-4.17-14.37,3.17-32.43,3.84-34,0-.85.12-5.31,6.61-7.62,6.13-2.2,15.68,5.9,18.24,8.21,1.23-4.9,7.91-29.16,20.76-37.14,4.11-2.55,7.87-3.29,11.2-2.22,5.75,1.87,8.61,8.64,9.87,11.71,2.36-3.35,12-16.1,19.92-13.9,8.56,2.38,19.37,18,22.53,25.4,2.27,5.28,2.23,12.17,2.08,15.17,1.65-1.74,5.19-4.9,9.3-5.15a8.75,8.75,0,0,1,6.87,2.86c7.63,7.63,11.81,26,9.31,41-2.25,13.51-15,23.8-16.86,25.26.31,3,2.48,26.61-4.45,37.7-.85,1.35-1.6,2.59-2.28,3.75-.18,1.53-2.26,19.33-3,29-.45,5.83.14,21.72.72,37.08.42,11.35.86,23.08.86,30.46,0,17.06,9.33,88,9.42,88.72l-1,.13c-.1-.71-9.43-71.73-9.43-88.85,0-7.36-.44-19.08-.86-30.42-.58-15.39-1.17-31.31-.71-37.19.77-10.11,3-29,3-29.17l.07-.2c.7-1.19,1.48-2.47,2.35-3.86,7.07-11.31,4.3-37.09,4.27-37.34l0-.29.23-.17c.15-.11,14.35-10.68,16.71-24.79,2.45-14.7-1.61-32.7-9-40.13a7.79,7.79,0,0,0-6.1-2.57c-5.12.3-9.53,5.85-9.57,5.9l-1.06,1.36.17-1.71c0-.1.92-9.61-1.9-16.18-3.09-7.22-13.62-22.53-21.88-24.82S302,169.61,301.9,169.78l-.52.77-.36-.85-.29-.7c-1.17-2.86-3.91-9.54-9.32-11.3-3-1-6.52-.26-10.36,2.12-13.67,8.48-20.45,37.06-20.52,37.35l-.2.86-.63-.61c-.12-.11-11.44-10.86-17.84-8.58s-6,6.54-6,6.72v.13l0,.12c-.08.19-8.08,18.84-3.84,33.46,3.21,11,8.84,19,11.87,23.23a22.14,22.14,0,0,1,2.12,3.29c.34.85.62,3.48,1.14,8.45.85,8.24,2.14,20.7,4.66,28.28l0,.13c0,.11.45,11,2,17.92a80.75,80.75,0,0,1,1.59,15v1.74l-.93-1.47s-1.94-3.06-4-3.09h0a2.81,2.81,0,0,0-2.24,1.53c-2.42,3.63,1.31,11.64,3.53,16.43.51,1.09.95,2,1.23,2.75,1.57,3.91,5.36,16.79,5.52,17.33.06.28,4.74,23.78,4.74,33.93S256.28,486.69,256.21,487.51Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M260.33,309.27a.87.87,0,0,1-.28,0c-1.15-.38-4.39-7.29-6.22-11.38l.91-.41c2.15,4.8,4.75,10,5.57,10.78a11.06,11.06,0,0,0,.51-3.91v-1l2.79,2.1-.36-2.54,3.86,2.71v-3.12h1v5L264.57,305l.38,2.65-3.15-2.36c-.06,1.39-.27,3.3-1,3.81A.83.83,0,0,1,260.33,309.27Z"
style="fill: #263238"
/>
style="fill: #263238" />
<polygon
points="326.63 327.15 327.05 320.95 321.91 322.79 321.91 314.3 322.91 314.3 322.91 321.37 328.15 319.5 327.82 324.41 332.08 319.82 334.13 322.55 337.67 313.91 338.69 317.34 340.45 311.2 341.41 311.48 338.72 320.89 337.52 316.91 334.39 324.56 332 321.38 326.63 327.15"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M333.45,245.75A120.71,120.71,0,0,1,318,229.14c-7.38-9.69-20.3-15.46-31.15-4.85s-21.22,21-27.22,28.84-6.23,22.38,4.61,29.07,16.84,1.15,32.07.69,23.76,6,32.3,4.16,19.38-12.46,16.61-24.23A28.34,28.34,0,0,0,333.45,245.75Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M263.55,211.61s-4.38-9-12-11.77-12.68,8.07-14.3,17.53,5.77,21.69,14.07,24.69,17.08-5.08,17.31-10.84S263.55,211.61,263.55,211.61Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M277.85,169.16S267.47,180,265.17,190.84s1.15,21.23,10.84,24.46,17.3-6,20.3-14.54,1.39-23.07-2.31-30S280.39,167.31,277.85,169.16Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M310.15,168.23s-3.69,6.23-4.61,18.92,2.77,21.69,8.3,26.07,15.69,3.46,21.23-4.38,3.46-23.77-.69-30-12.23-13.62-16.61-14.31S311.54,165,310.15,168.23Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M345.91,203.76s-10.38,12.46-11.76,22.61,6.92,18.23,12.69,18.23,14.3-4.16,18.22-16.85-5.07-26.3-9-27.22S345.91,203.76,345.91,203.76Z"
style="fill: #263238"
/>
style="fill: #263238" />
</g>
<g id="freepik--paw-1--inject-24">
<path
d="M112,300.56s5.16,7.29,7.9,7.29,4-7.59,4-8.81S112,300.56,112,300.56Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M161.21,319.7s5.17,7.3,7.9,7.3,3.95-7.6,3.95-8.82S161.21,319.7,161.21,319.7Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M192.2,306.33s5.17,7.3,7.9,7.3,4-7.6,4-8.82S192.2,306.33,192.2,306.33Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M215.6,264.4s5.17,7.29,7.9,7.29,3.95-7.59,3.95-8.81S215.6,264.4,215.6,264.4Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M127.6,16.28S153.92,116.76,156.19,124s21.31,50.32,27.65,55.76,27.66,33.1,35.37,43.07,10,25.85,8.61,37.63-10.43,6.35-10.43,6.35v5.89c0,2.72.46,2.72-3.17,14.06s-6.8,19-13.15,22.21-18.59-3.62-18.59-3.62-4.53,12.69-12.24,16.32-23.57-5.9-28.56-9.07-11.79-15.41-11.79-15.41-7.24,8.09-15.53,5.32-17.28-19.35-21.43-28.33,7.6-22.12,9.68-40.1-6.22-47.69-6.22-47.69-5.94-25.21-8.66-31.56-6.8-2.72-7.25-17.23S46.28,55,43.56,50.42"
style="fill: #92e3a9"
/>
style="fill: #92e3a9" />
<path
d="M166.14,323c-8.09,0-19.56-6.66-24.73-10-4.46-2.84-10.18-12.49-11.62-15-1.78,1.77-8.22,7.43-15.59,5-9.34-3.12-19-22.68-21.72-28.6-2.37-5.14.13-11.3,3.31-19.09,2.53-6.21,5.39-13.24,6.32-21.27,2-17.67-6.12-47.21-6.21-47.5s-6-25.27-8.63-31.5a10.36,10.36,0,0,0-3-4c-2.07-1.9-4-3.7-4.33-13.43C79.53,123.36,45.75,55,43.13,50.68l.86-.52c2.68,4.47,36.52,72.62,37,87.44.29,9.31,2.1,11,4,12.72a11.37,11.37,0,0,1,3.2,4.32c2.71,6.32,8.44,30.61,8.68,31.65.08.27,8.29,30,6.23,47.86-.94,8.17-3.83,15.27-6.39,21.54-3.08,7.57-5.51,13.55-3.33,18.29,5.55,12,14,25.7,21.14,28.07,7.87,2.62,14.93-5.11,15-5.19l.47-.52.34.61c.07.13,6.8,12.17,11.62,15.24,6,3.84,20.88,12.43,28.08,9,7.43-3.5,11.94-15.92,12-16l.2-.56.52.29c.12.07,12.08,6.63,18.12,3.62,5.88-3,9.07-10,12.89-21.92,3.22-10.07,3.2-11.08,3.16-13.11,0-.25,0-.51,0-.8v-6.77l.76.45s3.53,2.08,6.28.72c1.84-.91,3-3.16,3.39-6.69,1.32-11.37-.81-27.3-8.51-37.27l-.62-.81c-7.8-10.09-28.53-36.92-34.67-42.19-6.34-5.43-25.39-48.25-27.81-56-2.24-7.18-28.33-106.75-28.6-107.75l1-.26c.26,1,26.35,100.55,28.59,107.71,2.35,7.54,21.45,50.35,27.5,55.54,6.22,5.33,26.26,31.26,34.81,42.33l.62.81c7.88,10.19,10.05,26.42,8.72,38-.45,3.89-1.78,6.41-3.95,7.48-2.42,1.19-5.17.23-6.48-.37v5.07c0,.29,0,.54,0,.78,0,2.14.07,3.21-3.2,13.43s-6.58,19.1-13.4,22.51c-5.84,2.92-16.12-2.09-18.55-3.36-1,2.51-5.31,12.78-12.29,16.06A10.13,10.13,0,0,1,166.14,323Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M112.93,183.23l-5.26-8.32-2.89,2.68-3.18-5.9c-.65.89-1.87,2.26-3.18,2.29a2.1,2.1,0,0,1-1.85-1.12c-1.92-2.87-2.4-9.29-2.42-9.56l1-.08c0,.07.48,6.44,2.25,9.09.45.68.86.67,1,.67,1.08,0,2.43-1.87,2.82-2.52l.45-.75L105,176l2.84-2.62,4.05,6.41v-3.7h1Z"
style="fill: #263238"
/>
style="fill: #263238" />
<polygon
points="148.42 125.1 144.55 124.61 144.67 123.62 147 123.91 144.29 115.4 147.74 115.78 144.52 107.03 149.02 111.54 143.76 98.72 144.68 98.34 151.83 115.77 147.03 110.96 149.24 116.95 145.71 116.56 148.42 125.1"
style="fill: #263238"
/>
style="fill: #263238" />
<path d="M125.66,245.62c-.29-3.08-.35-5.06-.35-5.08l1,0s.06,2,.34,5Z" style="fill: #263238" />
<path
d="M130.35,297.4l-.91-.4c.06-.15,6.2-14.48,1.35-27.28a87.31,87.31,0,0,1-4.56-19.09l1-.13a86.36,86.36,0,0,0,4.5,18.86C136.72,282.55,130.42,297.25,130.35,297.4Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M182,296.65a61.05,61.05,0,0,0-2.27-11.55c-2.27-7.66-6.79-17.32-10.43-25.08-2.15-4.59-3.85-8.22-4.53-10.27-1.79-5.39-6.3-20.72-6.35-20.87l1-.28c0,.15,4.55,15.46,6.34,20.83.66,2,2.44,5.78,4.49,10.17,3.65,7.79,8.19,17.48,10.48,25.21A62.38,62.38,0,0,1,183,296.56Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M183,305.44l-1-.17a33.3,33.3,0,0,0,.21-5.88l1,0A33.38,33.38,0,0,1,183,305.44Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M198.51,227.33c-1.22-1.54-2.42-2.92-3.47-4.14a34.06,34.06,0,0,1-4.84-6.47l-2.72-5.44.89-.45,2.72,5.44a34.07,34.07,0,0,0,4.71,6.27c1.06,1.22,2.25,2.61,3.5,4.16Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M216.91,266.94c0-.1-2.34-9.66-9-24.39a70.06,70.06,0,0,0-7.55-12.88l.8-.59a70.49,70.49,0,0,1,7.66,13c6.74,14.84,9.08,24.48,9.1,24.57Z"
style="fill: #263238"
/>
style="fill: #263238" />
</g>
</svg>
</template>

View File

@@ -4,8 +4,7 @@
<path
id="freepik--floor--inject-38"
d="M85.16,261.63c-91,52.56-91,137.78,0,190.34s238.65,52.56,329.68,0,91-137.78,0-190.34S176.19,209.07,85.16,261.63Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
</g>
<g id="freepik--Shadows--inject-38">
<ellipse
@@ -14,579 +13,441 @@
cy="349.53"
rx="113.81"
ry="65.71"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
<ellipse
id="freepik--shadow--inject-38"
cx="174.02"
cy="388.68"
rx="113.81"
ry="65.71"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
</g>
<g id="freepik--paw-prints--inject-38">
<g id="freepik--Paw--inject-38">
<path
d="M199,56.27c-.87,1.42-1.06,3.14-1.73,4.66-1,2.28-3.09,4-4.08,6.27a8.2,8.2,0,0,0,2,8.92,9.42,9.42,0,0,0,9.07,2c2.17-.67,4.15-1.79,6.32-2.47,2-.6,4-.6,5.91-1.57a8,8,0,0,0,3.93-4.17,5.79,5.79,0,0,0,.27-3.49c-.41-2-1.32-4.74-3-6s-3.43-1.42-5.17-2.11-3.3-2.1-4.94-3.16C204.79,53.3,201,53.1,199,56.27Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M192.53,62a9.57,9.57,0,0,0,.5-1.68,3.94,3.94,0,0,0-1.37-4.08,12.28,12.28,0,0,0-3.5-2.21,9.49,9.49,0,0,0-3-.9,2.32,2.32,0,0,0-1.89.61,3.29,3.29,0,0,0-.55,2.8,13.69,13.69,0,0,0,1.36,4.32,7.72,7.72,0,0,0,2.3,2.88,4.1,4.1,0,0,0,3.52.69,4.36,4.36,0,0,0,2.48-2.14A2.59,2.59,0,0,0,192.53,62Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M188.12,47.21c-.79-2.26-.85-4.7.94-6.44,2.09-2,5.23-.13,6.71,1.7a11.53,11.53,0,0,1,2.82,7.08c-.08,3.29-3,4.65-5.82,3.35A9.73,9.73,0,0,1,188.12,47.21Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M214.81,55a10.38,10.38,0,0,1-1.47-1,4,4,0,0,1-1.56-4A12,12,0,0,1,213,46.05a9.9,9.9,0,0,1,1.71-2.61,2.35,2.35,0,0,1,1.85-.74,3.29,3.29,0,0,1,2.22,1.79,14.11,14.11,0,0,1,1.73,4.19,7.77,7.77,0,0,1,.08,3.68,4.12,4.12,0,0,1-2.26,2.79,4.43,4.43,0,0,1-3.28,0Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M209.16,40.1c-.86-2.24-2.4-4.13-4.89-4.29-2.91-.19-4.07,3.28-4,5.64a11.55,11.55,0,0,0,2.43,7.22c2.2,2.45,5.29,1.6,6.61-1.22A9.79,9.79,0,0,0,209.16,40.1Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
</g>
<g id="freepik--paw--inject-38">
<path
d="M50,42c-1.4.25-2.6,1.13-4,1.57-2,.66-4.29.32-6.31,1A7,7,0,0,0,35.17,51a8.05,8.05,0,0,0,3.94,6.89c1.67,1,3.52,1.6,5.19,2.59,1.51.9,2.68,2.2,4.39,2.85a6.87,6.87,0,0,0,4.89.1A5,5,0,0,0,56,61.55c1-1.38,2.25-3.55,2.11-5.33s-1.07-3-1.63-4.48a25.6,25.6,0,0,1-.83-5C55.14,44,53.1,41.44,50,42Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M42.6,41.17A9.85,9.85,0,0,0,44,40.52a3.38,3.38,0,0,0,1.8-3.21,10.46,10.46,0,0,0-.6-3.49A8.6,8.6,0,0,0,44,31.41a2,2,0,0,0-1.48-.85,2.83,2.83,0,0,0-2.09,1.26,12.07,12.07,0,0,0-2,3.34,6.54,6.54,0,0,0-.5,3.11,3.49,3.49,0,0,0,1.58,2.63,3.74,3.74,0,0,0,2.78.35Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M49.44,29.89c1-1.8,2.49-3.23,4.62-3.09C56.55,27,57.15,30,56.83,32A9.89,9.89,0,0,1,54,37.88c-2.13,1.83-4.65.77-5.46-1.77A8.39,8.39,0,0,1,49.44,29.89Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M59.83,51.26a8.13,8.13,0,0,1-.22-1.48,3.35,3.35,0,0,1,1.64-3.29A10.57,10.57,0,0,1,64.47,45a8.17,8.17,0,0,1,2.64-.4,2,2,0,0,1,1.53.74,2.82,2.82,0,0,1,.14,2.43,11.88,11.88,0,0,1-1.67,3.5,6.52,6.52,0,0,1-2.29,2.17,3.51,3.51,0,0,1-3.06.17,3.77,3.77,0,0,1-1.85-2.11Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M66,39.16c.92-1.84,1.25-3.9-.08-5.57-1.55-2-4.42-.69-5.88.7A9.9,9.9,0,0,0,56.88,40c-.29,2.79,2,4.27,4.56,3.48A8.32,8.32,0,0,0,66,39.16Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
</g>
<g id="freepik--paw--inject-38">
<path
d="M401.17,51c-.5,1.52-.28,3.17-.56,4.74-.43,2.36-2,4.41-2.38,6.78a7.89,7.89,0,0,0,3.88,7.88,9,9,0,0,0,8.91-.21c1.87-1.12,3.47-2.62,5.34-3.74,1.7-1,3.61-1.48,5.16-2.82a7.72,7.72,0,0,0,2.72-4.78,5.65,5.65,0,0,0-.55-3.33c-.83-1.73-2.31-4.11-4.14-4.93s-3.53-.54-5.3-.78-3.56-1.21-5.34-1.84C405.87,46.87,402.29,47.55,401.17,51Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M396.4,57.78a10.45,10.45,0,0,0,.09-1.68,3.81,3.81,0,0,0-2.21-3.5,11.83,11.83,0,0,0-3.77-1.27,9.44,9.44,0,0,0-3-.16,2.24,2.24,0,0,0-1.62,1,3.13,3.13,0,0,0,.12,2.73,13.65,13.65,0,0,0,2.25,3.73,7.51,7.51,0,0,0,2.81,2.16,3.92,3.92,0,0,0,3.44-.16,4.24,4.24,0,0,0,1.83-2.56Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M388.92,45c-1.25-1.94-1.87-4.2-.59-6.23,1.49-2.37,4.85-1.31,6.65.06a11.18,11.18,0,0,1,4.25,6c.67,3.09-1.73,5-4.67,4.45A9.34,9.34,0,0,1,388.92,45Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M415.59,46.15a9.93,9.93,0,0,1-1.58-.57,3.79,3.79,0,0,1-2.38-3.39,11.83,11.83,0,0,1,.28-4,9.42,9.42,0,0,1,1-2.82,2.24,2.24,0,0,1,1.55-1.12A3.14,3.14,0,0,1,417,35.45,13.5,13.5,0,0,1,419.52,39a7.46,7.46,0,0,1,.91,3.42A3.92,3.92,0,0,1,419,45.5a4.17,4.17,0,0,1-3.07.7Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
<path
d="M406.94,33.56c-1.32-1.89-3.18-3.32-5.54-2.9-2.77.49-3,4-2.46,6.18A11.19,11.19,0,0,0,402.86,43c2.61,1.79,5.3.29,5.89-2.65A9.36,9.36,0,0,0,406.94,33.56Z"
style="fill: #ebebeb"
/>
style="fill: #ebebeb" />
</g>
<g id="freepik--paw--inject-38">
<path
d="M293.8,77.21c-1.89.81-3.29,2.44-5.05,3.5-2.64,1.6-5.94,1.85-8.56,3.48a10.13,10.13,0,0,0-4.29,10.45,11.61,11.61,0,0,0,7.8,8.41c2.67.85,5.47,1.11,8.15,2,2.42.77,4.49,2.22,7.1,2.57a9.93,9.93,0,0,0,6.94-1.46,7.21,7.21,0,0,0,2.73-3.36c1-2.27,2-5.72,1.23-8.19-.72-2.26-2.48-3.86-3.76-5.78s-1.86-4.46-2.78-6.7C301.74,78.26,298.05,75.38,293.8,77.21Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M283.16,78.42a12.92,12.92,0,0,0,1.7-1.35,4.88,4.88,0,0,0,1.49-5.1,15,15,0,0,0-2-4.73,12.29,12.29,0,0,0-2.4-3,2.92,2.92,0,0,0-2.35-.71A4.08,4.08,0,0,0,277.07,66a17.25,17.25,0,0,0-1.66,5.35,9.42,9.42,0,0,0,.3,4.54A5.08,5.08,0,0,0,278.79,79a5.43,5.43,0,0,0,4-.42A3.79,3.79,0,0,0,283.16,78.42Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M289.12,60.31c.8-2.85,2.45-5.37,5.5-5.87,3.56-.58,5.4,3.55,5.61,6.46s-.28,6.66-2.13,9.18c-2.41,3.28-6.31,2.61-8.27-.71C288.27,66.73,288.32,63.19,289.12,60.31Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M310.73,87a11.69,11.69,0,0,1-.8-2,4.86,4.86,0,0,1,1.23-5.17,15.32,15.32,0,0,1,4.07-3.12,12.2,12.2,0,0,1,3.58-1.43,2.92,2.92,0,0,1,2.4.55,4.11,4.11,0,0,1,1,3.38A17.22,17.22,0,0,1,321,84.69a9.65,9.65,0,0,1-2.51,3.79,5.12,5.12,0,0,1-4.26,1.24,5.43,5.43,0,0,1-3.29-2.37A3.79,3.79,0,0,1,310.73,87Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M315.49,68c.7-2.88.49-5.89-1.93-7.81-2.82-2.25-6.44.46-8,2.89s-3,6-2.63,9.06c.5,4,4.23,5.35,7.56,3.41C313.1,74,314.79,70.85,315.49,68Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
</g>
<g id="freepik--paw--inject-38">
<path
d="M464.15,140c-1.36.51-2.42,1.61-3.7,2.31-1.93,1-4.27,1.1-6.18,2.17a7.17,7.17,0,0,0-3.4,7.26,8.25,8.25,0,0,0,5.24,6.24c1.86.69,3.84,1,5.71,1.67,1.69.63,3.11,1.72,4.95,2.06a7,7,0,0,0,5-.79,5.14,5.14,0,0,0,2.06-2.29c.76-1.58,1.61-4,1.14-5.77-.43-1.63-1.62-2.82-2.46-4.23a25.81,25.81,0,0,1-1.74-4.84C469.75,141,467.23,138.83,464.15,140Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M456.57,140.47a8.42,8.42,0,0,0,1.25-.9,3.45,3.45,0,0,0,1.23-3.56,10.83,10.83,0,0,0-1.25-3.42,8.74,8.74,0,0,0-1.59-2.22,2.1,2.1,0,0,0-1.65-.59,2.9,2.9,0,0,0-1.88,1.65,12.46,12.46,0,0,0-1.37,3.74,6.91,6.91,0,0,0,.06,3.23,3.59,3.59,0,0,0,2.08,2.36,3.81,3.81,0,0,0,2.87-.16Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M461.41,127.84c.67-2,1.93-3.73,4.1-4,2.55-.29,3.71,2.71,3.76,4.77a10.13,10.13,0,0,1-1.83,6.44c-1.81,2.24-4.56,1.63-5.84-.79A8.59,8.59,0,0,1,461.41,127.84Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M475.82,147.51a9,9,0,0,1-.5-1.46,3.45,3.45,0,0,1,1.05-3.62,10.88,10.88,0,0,1,3-2.07,8.56,8.56,0,0,1,2.59-.89,2,2,0,0,1,1.68.47,2.9,2.9,0,0,1,.59,2.43,12.25,12.25,0,0,1-1.05,3.84,6.7,6.7,0,0,1-1.91,2.6,3.56,3.56,0,0,1-3.06.73,3.81,3.81,0,0,1-2.25-1.78Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M479.85,134.15c.59-2,.54-4.15-1.1-5.6-1.93-1.69-4.59.11-5.81,1.78a10.2,10.2,0,0,0-2.17,6.33c.22,2.88,2.82,3.94,5.25,2.68A8.57,8.57,0,0,0,479.85,134.15Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
</g>
<g id="freepik--paw--inject-38">
<path
d="M49.3,221.55c-.78,1.42-.87,3.11-1.45,4.63-.86,2.28-2.79,4-3.63,6.32a8,8,0,0,0,2.4,8.6,9.22,9.22,0,0,0,9,1.45c2.07-.77,3.94-2,6-2.74,1.88-.7,3.88-.81,5.67-1.86a7.85,7.85,0,0,0,3.61-4.27,5.7,5.7,0,0,0,.07-3.42c-.51-1.89-1.54-4.55-3.22-5.7s-3.42-1.2-5.15-1.77-3.33-1.87-5-2.82C54.75,218.34,51.05,218.34,49.3,221.55Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M43.26,227.47a9.24,9.24,0,0,0,.4-1.67,3.85,3.85,0,0,0-1.55-3.9,11.77,11.77,0,0,0-3.53-2,9.79,9.79,0,0,0-3-.72,2.31,2.31,0,0,0-1.82.71,3.24,3.24,0,0,0-.39,2.75A13.94,13.94,0,0,0,35,226.81a7.44,7.44,0,0,0,2.39,2.68,4,4,0,0,0,3.47.49,4.32,4.32,0,0,0,2.31-2.22C43.19,227.66,43.23,227.57,43.26,227.47Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M38.17,213.3c-.89-2.16-1.08-4.54.57-6.33,1.93-2.09,5.09-.41,6.63,1.3A11.29,11.29,0,0,1,48.51,215c.09,3.21-2.66,4.69-5.5,3.57A9.5,9.5,0,0,1,38.17,213.3Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M64.6,219.42a11,11,0,0,1-1.48-.86,3.86,3.86,0,0,1-1.74-3.82,11.89,11.89,0,0,1,1-3.92,9.48,9.48,0,0,1,1.53-2.63,2.31,2.31,0,0,1,1.76-.83A3.24,3.24,0,0,1,68,209a13.84,13.84,0,0,1,1.91,4,7.56,7.56,0,0,1,.28,3.59,4.05,4.05,0,0,1-2,2.84,4.27,4.27,0,0,1-3.2.13Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M58.3,205.24c-1-2.14-2.56-3.91-5-3.93-2.85,0-3.79,3.42-3.6,5.72a11.31,11.31,0,0,0,2.77,6.91c2.27,2.27,5.23,1.28,6.37-1.55A9.56,9.56,0,0,0,58.3,205.24Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
</g>
</g>
<g id="freepik--dog-2--inject-38">
<g id="freepik--Dog--inject-38">
<path
d="M236.1,269c-.65-2.16-1.39-4.29-2.24-6.38-2.8-6.84-6.73-13.15-10.65-19.41q-5.57-8.92-11.15-17.84c-3.29-5.27-7.32-10.35-8.74-16.48-5.4-23.16,12.38-35.21,13.79-41.93s-13.05-5.76-23.45,15.14c-7.79,15.65-6.7,31.53,1.49,47.23,6.19,11.86,15,22.23,21.31,33.92,5.57,10.31,5.33,22.71,4.17,34.37-.84,8.36-2.07,16.9-.18,25.09,1.16,5,4.83,13.57,10.42,15,6.5,1.73,10.73-5,10.57-10.61a76.38,76.38,0,0,0-1.12-8.23,91.7,91.7,0,0,1-.39-13.87C240.11,292.94,239.54,280.57,236.1,269Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path
d="M352.58,268.85a31.14,31.14,0,0,1,4.67,3.16,37.31,37.31,0,0,1,6.44,7c8,11,11.1,26.21,5.36,38.54-6.08,13-21.17,20.55-35.53,19.75,6.28,2.87,13.91.65,20.53,2.7,3.34,1,5.85,4.66,6.49,8.1s-.41,7-4.76,7c0,1.69-3.2,4.77-8.87,3.22-.29,1.24-1,3.49-10.46,1.9s-37.14-12.81-48.4-19.23a65.94,65.94,0,0,1-12.47-8.54c-6.91-6-11.48-14.68-13.56-23.68-2.62-11.38-1.71-23.27-.14-34.84,2.53-18.63,7-40.46,28.14-45.51a16.78,16.78,0,0,1,7.42-.34c3.92.85,7.13,3.76,9.32,7.13,5,7.74,5.21,17.57,4.67,26.78-.44,7.55,5.16,3.83,10,3a62.33,62.33,0,0,1,14.94-.8A40.17,40.17,0,0,1,352.58,268.85Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path
d="M355.78,355.07c.67-4,.42-8.79-3.37-10.43s-10.72-1.26-10.72-1.26,9.21-1.39,12.61.76S356.88,352,355.78,355.07Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M346.91,358.26c.67-4,.42-8.79-3.37-10.43s-10.72-1.26-10.72-1.26,9.21-1.38,12.61.76S348,355.2,346.91,358.26Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M326.75,325.58c-1.89.2-4-.73-4.64-2.54,1.65,4.15-1,9.07-4.9,11.23s-8.66,2.1-13.06,1.37c-15.71-2.61-30-14.07-34.56-29.34-2.42-8.13-2.11-16.88-.43-25.2A81,81,0,0,1,285,247.21c6-7.63,13.82-14.4,23.28-16.65s20.68,1.08,25.41,9.58a27.4,27.4,0,0,1,2.87,9.43c1.73,12.08-.61,24.3.86,36.39.94,7.69,2.85,15.58,1.36,23.33C337.53,315.57,334.34,324.77,326.75,325.58Z"
style="fill: #f0f0f0"
/>
style="fill: #f0f0f0" />
<path
d="M284.39,291.65c4.38-2.1,9.47-2.28,14.27-1.56,3.5.53,7.19,1.69,9.27,4.55.46-2.35,3.83-3,5.83-1.72s2.95,3.7,3.76,5.95c.55-3.37,1.44-7.21,4.49-8.77s7.29.57,9.4,3a18.11,18.11,0,0,1,3.5,6.88c.53-1.1,2.09-1.08,3.24-.71a8.48,8.48,0,0,1,1,.39,36.32,36.32,0,0,1-.41,9.65c-1.2,6.28-4.39,15.48-12,16.29-1.89.2-4-.73-4.64-2.54,1.65,4.15-1,9.07-4.9,11.23s-8.66,2.1-13.06,1.37a44.7,44.7,0,0,1-13.09-4.38,72,72,0,0,1-12.4-19.06c-1.36-2.94-2.6-6.08-2.43-9.32C276.48,298,280,293.75,284.39,291.65Z"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
<path
d="M373.93,198.19c.31.55.61,1.09.91,1.65,4.87,9,8,19.73,4.74,29.84-3.43,10.57-13,19.37-22,25.35-4.91,3.26-19.38,11.21-23.73,3.13-1.18-2.19-1.11-4.8-1.18-7.29-.1-3.16-.54-6.49-2.44-9s-5.67-3.89-8.35-2.21c-2.15,1.35-2.92,4.1-3.17,6.62s-.16,5.18-1.25,7.46a3,3,0,0,1-1.2,1.43c-.79.41-1.75.19-2.61.4-5.51,1.32-3.89,16.27-3.33,20.24.25,1.76.21,4.06-1.45,4.7-1.17.45-2.43-.26-3.52-.87a27.49,27.49,0,0,0-8.09-2.95c-1-.19-2.23-.17-2.59.74s.4,1.67,1,2.37a8.1,8.1,0,0,1,1.7,4.21,1.55,1.55,0,0,1-.25,1.2,1.63,1.63,0,0,1-1.1.39c-2.22.18-4.46-.11-6.69-.05-5.94.13-11.39,5.62-11.11,11.6,14.58-6.14,28.49,3.9,36.42,15.55a34.11,34.11,0,0,1,6,21.81,32,32,0,0,1-6.08,17c-4.26,6.16-16,13.32-22.89,13.12a67.08,67.08,0,0,0,9.79,2.24c10.24,1.74,13.45.67,18.56,2.26,3.35,1,5.86,4.66,6.5,8.1s-.41,7-4.76,7c-.05,1.69-3.2,4.78-8.87,3.22-.29,1.25-1,3.49-10.46,1.9S265.23,376.46,254,370.05a66.69,66.69,0,0,1-12.46-8.54c-6.91-6-11.48-14.68-13.56-23.68-2.62-11.39-1.71-23.27-.14-34.85,6.56-48.28,32.94-72.06,42.85-82.08,7.75-7.83,16.72-13.79,26.27-19.18,8.94-5.05,12.19-7.1,19.26-14.27,3.19-3.22,8.53-11.09,11.39-14.61,2.54-3.12,7.74-8.26,11-13.5,0,0,10.11,9.3,13.43,12.15A100,100,0,0,1,373.93,198.19Z"
style="fill: #455a64"
/>
style="fill: #455a64" />
<path
d="M321.7,384.19c.67-4,.41-8.79-3.37-10.43s-10.72-1.26-10.72-1.26,9.21-1.39,12.61.75S322.8,381.12,321.7,384.19Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M312.83,387.38c.67-4,.42-8.79-3.37-10.43s-10.72-1.26-10.72-1.26,9.21-1.39,12.61.76S313.93,384.31,312.83,387.38Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M422.12,252.43a31.81,31.81,0,0,1,.83,12.16,40.68,40.68,0,0,1-3,9.78,111.92,111.92,0,0,1-14.63,25.09c-.58.76,2.07,1.57,1.12,1.68s-2.81,1.12-3.65.58c-5-3.17-9.32-14.56-12.94-18.74-1.86-2.14-5.44-2.2-8.05-1.07a70.53,70.53,0,0,1-9.17,3.28c-5.15,1.55-7.06,1.51-10.75,2-2.31,10.06-3.67,23.21-4.6,36.56s-6.74,22.89-5.78,30.12,3,19.41,10,27.31c6.59,7.43,12.44,6.53,11.7,14.57-.15.76-1.1,3.86-4.44,3.72-1.09,3.34-5.6,2.75-5.6,2.75s-1.57,4.22-14.69.05c-6.94-2.21-8.22-10.9-9.55-15.22a168.88,168.88,0,0,0-7-18.49,34.87,34.87,0,0,1-3.07-12.77c-1.74-.93-5.3,1.05-5.3,1.05s-.12-4.56,3.73-6.69c-5.14-2.73-3.13-7.27-3.13-7.27s2.75,3.57,5.28.09,1.71-17.21,0-37.81-3.32-28.83-6.55-39.77c-8.62-29.15,20-101.16,39.58-100.12,13.62.88,38.21,3.53,41.18,27.17,1.08,8.55,4.19,16.59,6.76,24.75,1.23,3.93,1.65,8,3,11.94,1.44,4.3,3.33,8.44,5.06,12.62A72.92,72.92,0,0,1,422.12,252.43Z"
style="fill: #455a64"
/>
style="fill: #455a64" />
<path
d="M363.2,402.24c.65-1.73,1.24-4.59-1.27-5.81s-5.4-2.82-5.4-2.82,5.61,1.85,6.86,2.7S365.05,399.6,363.2,402.24Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path
d="M368.8,399.5c.65-1.74,1.24-4.6-1.27-5.81s-5.4-2.82-5.4-2.82,5.61,1.85,6.86,2.7S370.65,396.85,368.8,399.5Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path
d="M381.74,208.82a35.27,35.27,0,0,1-4,7.48c-3,4.19-7,7.51-10.52,11.32s-6.46,8.48-6.59,13.64c0-.35,4.62-1.9,5.13-2.08-.79,2-2.49,3.72-3.28,5.89a18.71,18.71,0,0,0-1.1,7.56,20.14,20.14,0,0,1,5.73-5.46c-.89.56-1.33,4.09-1.53,5.08a29.11,29.11,0,0,0-.58,5.51c0,3,.06,6,0,9.06-.22,6.93-.89,13.76-3.06,20.39a40.86,40.86,0,0,0,8.95-1.38,71.82,71.82,0,0,0,15-5.77c8-4.08,11.87-7.79,16.92-15.18,14.08-20.59,6.06-49.37-11.07-65.48a8.7,8.7,0,0,0-2.9-2,3.23,3.23,0,0,0-3.32.56,4.84,4.84,0,0,0-1.05,2.36A64.63,64.63,0,0,1,381.74,208.82Z"
style="fill: #f0f0f0"
/>
style="fill: #f0f0f0" />
<path
d="M416.36,98.89c3.92.9,9,2.2,11.81,5.16a15,15,0,0,1,3.18,5.83,63.73,63.73,0,0,1,2.18,9.76c1.51,9.3,2.41,19.24-1.57,27.77-1.61,3.47-4.09,2.88-7.17,1.64-6.42-2.59-10.52-9-13.05-15.39A237,237,0,0,1,403.58,110c-.39-1.44-.42-3.18-.9-4.54-.56-1.57-2-3.13-2.95-4.51-.37-.57-.73-1.38-.24-1.85a1.44,1.44,0,0,1,1-.29c5.15-.32,10.51-1.17,15.61,0Z"
/>
d="M416.36,98.89c3.92.9,9,2.2,11.81,5.16a15,15,0,0,1,3.18,5.83,63.73,63.73,0,0,1,2.18,9.76c1.51,9.3,2.41,19.24-1.57,27.77-1.61,3.47-4.09,2.88-7.17,1.64-6.42-2.59-10.52-9-13.05-15.39A237,237,0,0,1,403.58,110c-.39-1.44-.42-3.18-.9-4.54-.56-1.57-2-3.13-2.95-4.51-.37-.57-.73-1.38-.24-1.85a1.44,1.44,0,0,1,1-.29c5.15-.32,10.51-1.17,15.61,0Z" />
<path
d="M405.18,172.87c-1.37,2.77-2.23,10.7-1.52,19.19-3.64,1.66-25.09,4-39.82-2.57-18-8.07-26-16.22-31.31-22.3C344.71,147.12,344,123.94,344,123.94Z"
style="fill: #455a64"
/>
style="fill: #455a64" />
<path
d="M387.73,98.82c14-1.08,17.54,2.82,22.88,6.82s8.43,9.06,10.6,13,.16,11.76,1,14.53,7.63,9,9.47,13.9.06,9.17-1.52,15.72-6.65,7.37-6.65,7.37a17.06,17.06,0,0,1-9.89,7.27c-6.59,1.61-15.72-2.66-15.72-2.66s-3.95,4.29-13.18,1.4c-13.54-4.26-14.93-2.23-22.14-5.12C350,166,349.12,160,344.3,148.39s-4.46-23.13,9.42-36.59C364.61,101.23,376.06,99.72,387.73,98.82Z"
style="fill: #455a64"
/>
style="fill: #455a64" />
<path
d="M400.62,161.5a.62.62,0,1,1-.83-.29A.62.62,0,0,1,400.62,161.5Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path d="M406.14,160.52a.63.63,0,0,1-.29.83.62.62,0,1,1,.29-.83Z" style="fill: #37474f" />
<path
d="M404.73,165.35a.62.62,0,1,1-.83-.29A.62.62,0,0,1,404.73,165.35Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path
d="M415,166.94a8.9,8.9,0,0,1,1.89-1.26,13.92,13.92,0,0,0,1.73-1.18,1,1,0,0,1,.53-.22,1.12,1.12,0,0,1,.71.31,15.53,15.53,0,0,1,3.23,3.49.24.24,0,0,1,.05.16s-.05.06-.09.09a9.42,9.42,0,0,1-8.51,1.27c-.57-.2-1.62-.57-1.1-1.25A9.94,9.94,0,0,1,415,166.94Z"
/>
d="M415,166.94a8.9,8.9,0,0,1,1.89-1.26,13.92,13.92,0,0,0,1.73-1.18,1,1,0,0,1,.53-.22,1.12,1.12,0,0,1,.71.31,15.53,15.53,0,0,1,3.23,3.49.24.24,0,0,1,.05.16s-.05.06-.09.09a9.42,9.42,0,0,1-8.51,1.27c-.57-.2-1.62-.57-1.1-1.25A9.94,9.94,0,0,1,415,166.94Z" />
<path
d="M394.65,127.12c-.9-1.59-1.82-3.31-3.42-4.19-2.36-1.29-5.31-.33-7.64,1-3.15,1.83-6,4.51-7.15,8a2.07,2.07,0,0,0-.12,1.15,1.79,1.79,0,0,0,.65.89,8.71,8.71,0,0,0,5.6,1.64,35.9,35.9,0,0,1,6,.14c3.44.62,6.17,2.89,9,4.79,1.05.7,3,2.32,4.28,2.31,1.56,0,1.64-1.4,1.05-2.59C400.56,135.61,397.18,131.65,394.65,127.12Z"
style="opacity: 0.1"
/>
style="opacity: 0.1" />
<path
d="M422.18,133.18c-.69-2.38.05-5.18.06-7.6s-3.19-3.9-5.15-4.61c-1.29-.48-2.8-.82-4-.12a3.94,3.94,0,0,0-1.57,3.7c.25,4.22,4.22,6.65,7.55,8.56.63.36,1.26.71,1.9,1,.88.48,1.75,1,2.63,1.47A6.84,6.84,0,0,1,422.18,133.18Z"
style="opacity: 0.1"
/>
style="opacity: 0.1" />
<path
d="M410.07,146.83a7.57,7.57,0,0,0-1.78,2.8,6,6,0,0,0,.3,4.69c.91,1.77,2.56,2.48,4.39,3a.22.22,0,0,0,.16,0,.26.26,0,0,0,.13-.14,1.82,1.82,0,0,0,.05-1.53,3.55,3.55,0,0,1-.48-1.12.91.91,0,0,1,.78-.93c1.69-.18,1.44,2,1.42,3a1.45,1.45,0,0,0,.13.8,1.48,1.48,0,0,0,.56.49l3,1.84a1.82,1.82,0,0,0,.86.36,1.91,1.91,0,0,0,.81-.15,5.69,5.69,0,0,0,3.8-4.16c.13-.75.06-1.53.2-2.29a.77.77,0,0,1,.31-.55c.42-.25,1.05.17,1.22.54s0,1.66.54.94a5.8,5.8,0,0,0,.63-2.37c.39-3-.74-6.6-3.89-7.53a11.4,11.4,0,0,0-3.64-.32,30.91,30.91,0,0,0-5.08.61,10.94,10.94,0,0,0-3,1A6.8,6.8,0,0,0,410.07,146.83Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M423.26,166.6a21.07,21.07,0,0,1-2.2-1.61,4.54,4.54,0,0,1-.84-2.39c-.1-.88-.08-1.77-.14-2.65,0-.22-.06-.49-.26-.58a.46.46,0,0,0-.56.29,1.72,1.72,0,0,0-.05.68,5.19,5.19,0,0,1-.7,2.85,5,5,0,0,1-2.06,1.6c-3.67,2.06-6.18,5.43-10.57,6.21a11.81,11.81,0,0,1-11.33-4.91c-.88-1.25-1.6-2.6-2.44-3.87-.09-.13-.23-.28-.37-.21a.31.31,0,0,0-.11.31c.07,1.73,1.23,3.33,2.1,4.77a11.84,11.84,0,0,0,4.91,4.78c2.91,1.36,6.3,2.19,9.31,1.07a19,19,0,0,0,5-3.38c1.05-.85,2.14-1.65,3.27-2.41a15.06,15.06,0,0,0,2.85-1.83,4.47,4.47,0,0,0,.29-.35,6.77,6.77,0,0,0,2,2.18,5.59,5.59,0,0,1,1.58,1.67,5.27,5.27,0,0,1,.52,1.35,4.49,4.49,0,0,0,1.73-.69A7.18,7.18,0,0,0,423.26,166.6Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M367.09,102.14c-2.44-3.13-6.54-2.24-9.65-1.11-4.66,1.7-9.73,2.08-14.42,3.78-4.89,1.77-9.61,4.87-11.73,9.61-1.51,3.35-1.56,7.15-1.49,10.83A83.11,83.11,0,0,0,332,144.18c1.34,5.24,3.24,11.81,7.8,15,1.78,1.26,4,2.27,6.11,1.62,2.36-.75,3.59-3.28,4.42-5.6,4.58-12.67,5.46-26.69,11.86-38.55,1.21-2.25,2.84-4.56,5.31-5.19.94-.24,2.07-.28,2.63-1.08a2.7,2.7,0,0,0,0-2.46A23.49,23.49,0,0,0,367.09,102.14Z"
/>
d="M367.09,102.14c-2.44-3.13-6.54-2.24-9.65-1.11-4.66,1.7-9.73,2.08-14.42,3.78-4.89,1.77-9.61,4.87-11.73,9.61-1.51,3.35-1.56,7.15-1.49,10.83A83.11,83.11,0,0,0,332,144.18c1.34,5.24,3.24,11.81,7.8,15,1.78,1.26,4,2.27,6.11,1.62,2.36-.75,3.59-3.28,4.42-5.6,4.58-12.67,5.46-26.69,11.86-38.55,1.21-2.25,2.84-4.56,5.31-5.19.94-.24,2.07-.28,2.63-1.08a2.7,2.7,0,0,0,0-2.46A23.49,23.49,0,0,0,367.09,102.14Z" />
<path
d="M387,171.22c-2.69-1.76-5.92-2.62-9-3.49a64.75,64.75,0,0,1-9-3,19.38,19.38,0,0,1-6.77-4.82,15.29,15.29,0,0,1-2.06-3,24.52,24.52,0,0,1-1.38-4.25c-.09-.3-.78-.89-.94-.32-.72,2.47.63,5.41,1.95,7.45a17.62,17.62,0,0,0,6.67,5.8,41.51,41.51,0,0,0,9.12,3.33c1.77.46,3.56.86,5.34,1.31,2,.5,3.93,1.2,5.94,1.62C387.21,171.92,387.24,171.36,387,171.22Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M379.79,114.68c-2.46,1.35-5.15,3.5-6.17,6.21-.3.8-.8,2.24.21,2.73s2.66-.72,3.48-1.33a60,60,0,0,1,5.39-3.13,8.07,8.07,0,0,0,2.21-1.66c2.53-3-2-4.34-4.26-3.26C380.36,114.38,380.07,114.52,379.79,114.68Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path
d="M413.53,110c2.73.67,5.88,2.06,7.56,4.41.5.7,1.35,2,.5,2.69s-2.75,0-3.7-.38a58.76,58.76,0,0,0-6-1.64,8,8,0,0,1-2.56-1c-3.22-2.27.8-4.7,3.28-4.24C412.91,109.84,413.22,109.91,413.53,110Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path
d="M393.28,130.59a6.82,6.82,0,0,0-3.63-2.37,8.32,8.32,0,0,0-4.42.3,6,6,0,0,0-2.61,1.71c-.57.65-1.43,1.94-1.28,2.87.25,1.56,3.13-.56,3.78-.87a8.53,8.53,0,0,1,3.55-.84,19.52,19.52,0,0,1,3.68.62C393.52,132.21,394,131.56,393.28,130.59Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M424.41,127.22a6,6,0,0,0-3.18-2.08,7.15,7.15,0,0,0-3.86.27,5.16,5.16,0,0,0-2.29,1.49,3.87,3.87,0,0,0-1.12,2.51c.23,1.37,2.74-.49,3.31-.76a7.4,7.4,0,0,1,3.11-.74,17.08,17.08,0,0,1,3.22.55C424.62,128.64,425,128.07,424.41,127.22Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M335.75,160c7.83,10.55,30.09,20.92,48.44,20.92s20-2.43,20-2.43l-.51,13.58s-7.68,2.64-20.09,2.56-38.54-5.2-53.14-25.06Z"
style="fill: #ba68c8"
/>
style="fill: #ba68c8" />
<path
d="M399.94,297.59a11.23,11.23,0,0,1-.42-3.55c.48-12.89,3.22-26,9.77-37.26,6.77-11.59,15.18-21.48,17.13-35.31.62-4.37.61-9,2.52-12.94.86-1.77,2.06-3.36,2.87-5.15,1.34-3,1.48-6.39,2.18-9.61a13,13,0,0,1,3.27-6.55,7.62,7.62,0,0,1,5.46-2.25c.35-4.44,4.94-7.38,8.73-5.75a6.69,6.69,0,0,1,3.34-2.3,5.7,5.7,0,0,1,3.69.13c2.74.91,4.34,4.4,3.77,7.11a3.35,3.35,0,0,0-.14,1,3.13,3.13,0,0,0,.45,1.07c2.24,4,2.87,9.85-.46,13.38-1,1.08-2.32,1.88-3.26,3-2.16,2.66-1.91,6.52-3.2,9.7-1.12,2.77-3.37,4.9-5.35,7.14-7.73,8.76-10.29,19.19-12.63,30.45-1.26,6.08-2.55,13.11-3.45,19.26A106.91,106.91,0,0,1,429.56,289c-3.23,9.2-10.16,15.46-20.35,14.77a12.94,12.94,0,0,1-5.54-1.47A7.92,7.92,0,0,1,399.94,297.59Z"
style="fill: #455a64"
/>
style="fill: #455a64" />
<path
d="M427.9,292.85A19.55,19.55,0,0,1,412.27,304c-4.92.57-11.15-.87-12.66-6.26a13.61,13.61,0,0,1-.42-5.06,90,90,0,0,1,2.94-19.77c3.11-13.25,11.88-23.74,18.27-35.37a48.48,48.48,0,0,0,5.85-18.71c.37-3.28.64-6.7,2-9.86s3.61-5.53,4.2-8.91c.75-3.17.87-6.61,2.32-9.73a8.75,8.75,0,0,1,7.93-5.58l-.23.22a7,7,0,0,1,6-6.26,5.71,5.71,0,0,1,3,.44l-.11,0a6.27,6.27,0,0,1,7.1-2.11,5.69,5.69,0,0,0-3.84,0,7,7,0,0,0-3.16,2.31,5.9,5.9,0,0,0-5.71.71,6.64,6.64,0,0,0-2.83,5.15c-8,.24-8.66,8.82-9.72,15-.51,3.35-2.78,6.13-4.12,9.1-2.38,6.14-1.52,13.21-3.85,19.46-3,9.61-9.14,17.83-14.31,26.29-7.12,11.22-10.21,24.48-11,37.64-.73,5.24,1.86,9.74,7.35,10.55a19.29,19.29,0,0,0,20.57-10.4Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path
d="M455.26,198.38c-1.6-3,.46-6,2.85-7.69,1.31-.94,3.2-1.33,4.33.07a4.86,4.86,0,0,1,.93,2.62,6.72,6.72,0,0,1-1,4.51,6.63,6.63,0,0,1-1.94,1.75,4.49,4.49,0,0,1-1.55.65A3.56,3.56,0,0,1,455.26,198.38Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path
d="M455.26,198.38c-1.32-2.31-.22-5.13,1.54-6.9,1.82-2.19,5.4-3.23,6.67.15a6.76,6.76,0,0,1-1.73,7.29c-2.05,1.88-5,2.12-6.48-.54Zm0,0c1.55,2.63,4.3,2.23,6.15.19,1.72-1.72,1.87-4.47,1.17-6.6-.9-2.7-3.86-1.72-5.45-.15-1.88,1.54-3.18,4.25-1.87,6.56Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M455.89,181a3.47,3.47,0,0,0-.83.44,6.25,6.25,0,0,0-1.75,2.34,16.57,16.57,0,0,0-1.6,5.72,7.12,7.12,0,0,0,.26,3.08c1.12,3.11,5.68,1.87,7.12-.36a7.64,7.64,0,0,0,.86-2,11.34,11.34,0,0,0-.5-7.13,3.66,3.66,0,0,0-1.6-2.06A2.51,2.51,0,0,0,455.89,181Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path
d="M455.89,181c-3.24,1.28-4.83,8.93-3.38,11.78,1.45,2.42,5.58.82,6.56-1.37,1.73-2.47,1.4-11.92-3.18-10.41Zm0,0a2.74,2.74,0,0,1,3.54,1.88c1.47,3.33,2,8.17-1.11,10.79-1.83,1.47-5.31,2-6.53-.51-1.42-3.05.91-10.93,4.1-12.16Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M446.39,183.6a11,11,0,0,0-2.27,4.17,7.47,7.47,0,0,0,0,4.39c.26.79.51,1.81,1.32,2.2a5.08,5.08,0,0,0,3.8-.2,5.33,5.33,0,0,0,1.61-.82c1.77-1.42,2.06-4.54,2.26-6.63.22-2.34-.95-5.6-3.9-5A5.29,5.29,0,0,0,446.39,183.6Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path
d="M446.39,183.6c-1.87,2.18-3,5.35-2.18,8.16a6.75,6.75,0,0,0,.86,1.92c.93.95,2.6.53,3.77.12,2.22-.56,3.1-2.46,3.51-4.63a13,13,0,0,0,.37-4.3c-.59-3.85-4.1-4-6.33-1.27Zm0,0c2.28-2.85,5.9-2.72,6.8,1.17a12.83,12.83,0,0,1,0,4.54c-.25,2.32-1.46,4.79-4,5.35-2.88.9-4.85.45-5.39-2.77-.6-3,.74-6,2.64-8.29Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M457.69,200.08a8.43,8.43,0,0,0-.35-2.22c-1.15-3.77-4.95-4.83-8.46-3.81a15.16,15.16,0,0,0-8.84,7.39c-1,1.88-1.44,4.27-.26,6a3.82,3.82,0,0,0,3,1.63c1.81,0,3.49-1.25,5.3-1.08,2.43.23,4.78,2.36,7.07.21a7.48,7.48,0,0,0,1.86-3.62A15.1,15.1,0,0,0,457.69,200.08Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M439.37,199.76c1.78.85,4.93-.91,5.8-2.49a5.58,5.58,0,0,0,.43-1.14,9.11,9.11,0,0,0-.49-5.89,3,3,0,0,0-2.57-1.8c-1.39,0-2.5,1.14-3.23,2.32C438.05,192.78,436.31,198.28,439.37,199.76Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path
d="M439.37,199.76c2.32.83,5.51-1.25,6-3.57s.23-5.37-1.58-6.85c-4-2.72-8.45,8.7-4.39,10.42Zm0,0c-3.72-1.85-1.08-11.23,2.76-11.74,4.15-.26,4.65,5.35,3.66,8.3-.65,2.32-4.12,4.3-6.42,3.44Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M435.37,220.79a2.23,2.23,0,0,0-.58,2.15c.37,1,1.63,1.35,2.71,1.53l.78.14a7.16,7.16,0,0,0,2.21.14c2.67-.39,3.91-3.77,1.51-5.43-1.78-1.24-4.6-.31-6.12,1A3.51,3.51,0,0,0,435.37,220.79Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path
d="M443.62,184.39a4.81,4.81,0,0,0,.16-1.2,1,1,0,0,0-.55-.86,1.22,1.22,0,0,0-.91.1,4,4,0,0,0-2.36,2.1,1.92,1.92,0,0,0,2,2.53C442.75,187,443.35,185.56,443.62,184.39Z"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
<path
d="M429.77,211.12a8.91,8.91,0,0,0,1.07-.94c1.1-1,.06-2.72-.43-3.86a6.41,6.41,0,0,0-.73-1.67c-.38-.4-.63-.1-1,.28a3.51,3.51,0,0,0-.7,1.42,10.34,10.34,0,0,0-.38,3.13,3,3,0,0,0,.29,1.32,1.24,1.24,0,0,0,1.11.66A1.83,1.83,0,0,0,429.77,211.12Z"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
<path
d="M449.65,180.74a1.43,1.43,0,0,0,.7.18c1.07-.06,1.3-2,1.75-2.77a2,2,0,0,0,.32-.7c.32-1.47-1.57-1.21-2.34-.85a5,5,0,0,0-2.22,1.93C447.24,179.68,448.81,180.39,449.65,180.74Z"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
<path
d="M459.4,179.58a.85.85,0,0,0,.46-.12,1.4,1.4,0,0,0,.39-.48,12.8,12.8,0,0,1,.68-1.33c.45-.66,1.85-1.87.55-2.42a2,2,0,0,0-1.46,0,9.07,9.07,0,0,0-2,1.21c-.53.37-1.39,1.37-.87,2.06A3.46,3.46,0,0,0,459.4,179.58Z"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
<path
d="M465.34,186.27a1.08,1.08,0,0,1-.07.56,11.44,11.44,0,0,1-.44,1.24,1.9,1.9,0,0,1-.6.87c-1.17.8-2.91-.61-2.08-1.86C462.6,186.4,465.05,184.71,465.34,186.27Z"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
</g>
</g>
<g id="freepik--dog-1--inject-38">
<g id="freepik--dog--inject-38">
<path
d="M36.58,364.14a54.06,54.06,0,0,1-.9-41.93c3.07-7.54,8.6-14.27,16-17.74,1.94-.92,10-3.76,9.93-.3,0,1.38-2.21,2.93-3,3.93-.66.85-1.23,3.34-1.73,3.81a37.8,37.8,0,0,1,25.84-10.12c2.88,0,5.88.42,8.24,2.06s3.87,4.8,2.83,7.48c-.24.61-.58,1.17-.76,1.79-.46,1.63.46,2.33,1.17,3.56a6,6,0,0,1,.94,3.29,19.5,19.5,0,0,1-2,8.27,41.26,41.26,0,0,1-10.6,14.07c3.36,4.95.68,11.19-2.67,15.36a71.72,71.72,0,0,0-6,7.8c-1.69,2.82-2.77,6.16-2.17,9.39,1,5.69,5.6,7.4,10.07,9.84s1.32,5.75-2.55,5.72a49.54,49.54,0,0,1-35-15.07A41.44,41.44,0,0,1,36.58,364.14Z"
style="fill: #f0997a"
/>
style="fill: #f0997a" />
<path
d="M90.5,333.08c-.57,0-1.14,0-1.71,0,.67-2.47,1.2-5.29-.17-7.46-1.91-3-6.32-3-9.74-2-3.63,1.07-7.53,3.66-7.44,7.44-.49-2-3.09-3-5.1-2.36s-3.45,2.36-4.56,4.15a25.7,25.7,0,0,0-2.08,22.44c-2.06-.19-4.37-.31-5.93,1-2,1.75-1.72,5-.92,7.52,1.51,4.86,4.64,9.73,9.55,11.05-1.27,0-2.1,1.54-1.84,2.78a5.38,5.38,0,0,0,2.28,3c4.57,3.43,9.86,4.09,15.39,3.9a28.81,28.81,0,0,1,3.36.1c-4.41-2.39-8.88-4.12-9.91-9.75-.6-3.23.48-6.57,2.17-9.39a71.72,71.72,0,0,1,6-7.8c3.35-4.17,6-10.41,2.67-15.36A41.28,41.28,0,0,0,90.5,333.08Z"
style="fill: #ffbda7"
/>
style="fill: #ffbda7" />
<path
d="M197.9,307.9a31,31,0,0,1,4.6,3.11,37.08,37.08,0,0,1,6.33,6.85c7.89,10.81,10.91,25.77,5.26,37.9-6,12.82-20.81,20.2-34.93,19.41,6.18,2.82,13.68.64,20.18,2.66,3.29,1,5.76,4.58,6.39,8s-.4,6.86-4.68,6.86c-.05,1.66-3.15,4.69-8.72,3.16-.29,1.22-1,3.43-10.29,1.87s-36.52-12.6-47.6-18.9a65.64,65.64,0,0,1-12.26-8.4c-6.79-5.88-11.28-14.44-13.33-23.29-2.58-11.19-1.68-22.88-.14-34.26,2.49-18.32,6.86-39.79,27.67-44.75a16.54,16.54,0,0,1,7.3-.33c3.85.84,7,3.7,9.16,7,4.93,7.61,5.13,17.28,4.6,26.33-.43,7.42,5.07,3.77,9.79,3a61.36,61.36,0,0,1,14.7-.79A39.52,39.52,0,0,1,197.9,307.9Z"
style="fill: #f0997a"
/>
style="fill: #f0997a" />
<path
d="M197.9,307.9a31,31,0,0,1,4.6,3.11,37.08,37.08,0,0,1,6.33,6.85c7.89,10.81,10.91,25.77,5.26,37.9-6,12.82-20.81,20.2-34.93,19.41,6.18,2.82,13.68.64,20.18,2.66,3.29,1,5.76,4.58,6.39,8s-.4,6.86-4.68,6.86c-.05,1.66-3.15,4.69-8.72,3.16-.29,1.22-1,3.43-10.29,1.87s-36.52-12.6-47.6-18.9a65.64,65.64,0,0,1-12.26-8.4c-6.79-5.88-11.28-14.44-13.33-23.29-2.58-11.19-1.68-22.88-.14-34.26,2.49-18.32,6.86-39.79,27.67-44.75a16.54,16.54,0,0,1,7.3-.33c3.85.84,7,3.7,9.16,7,4.93,7.61,5.13,17.28,4.6,26.33-.43,7.42,5.07,3.77,9.79,3a61.36,61.36,0,0,1,14.7-.79A39.52,39.52,0,0,1,197.9,307.9Z"
style="opacity: 0.2"
/>
style="opacity: 0.2" />
<path
d="M201.05,392.69c.66-3.93.41-8.64-3.31-10.26s-10.54-1.24-10.54-1.24,9.05-1.36,12.4.75S202.13,389.67,201.05,392.69Z"
style="opacity: 0.2"
/>
style="opacity: 0.2" />
<path
d="M192.33,395.83c.65-3.93.41-8.64-3.31-10.26s-10.55-1.24-10.55-1.24,9.06-1.36,12.41.75S193.41,392.81,192.33,395.83Z"
style="opacity: 0.2"
/>
style="opacity: 0.2" />
<path
d="M172.51,363.69c-1.87.2-4-.72-4.57-2.49,1.62,4.07-1,8.92-4.81,11s-8.52,2.06-12.85,1.34c-15.45-2.57-29.52-13.83-34-28.85-2.38-8-2.07-16.6-.41-24.77a79.69,79.69,0,0,1,15.52-33.33c5.92-7.51,13.59-14.16,22.89-16.38s20.34,1.07,25,9.43A26.91,26.91,0,0,1,182.1,289c1.71,11.87-.6,23.89.85,35.78.92,7.57,2.8,15.32,1.34,22.94C183.1,353.85,180,362.89,172.51,363.69Z"
style="fill: #f5f5f5"
/>
style="fill: #f5f5f5" />
<path
d="M130.85,330.33c4.31-2.07,9.31-2.25,14-1.54,3.44.52,7.07,1.66,9.12,4.47.45-2.3,3.76-3,5.73-1.69s2.9,3.65,3.69,5.86c.55-3.31,1.43-7.1,4.42-8.62s7.17.55,9.25,2.92a17.92,17.92,0,0,1,3.44,6.76c.51-1.07,2.05-1.06,3.19-.69.33.1.65.25,1,.38a36.38,36.38,0,0,1-.4,9.49c-1.19,6.18-4.32,15.22-11.78,16-1.87.2-4-.72-4.57-2.49,1.62,4.07-1,8.92-4.81,11s-8.52,2.06-12.85,1.34a43.88,43.88,0,0,1-12.87-4.3,71.07,71.07,0,0,1-12.2-18.74c-1.33-2.9-2.56-6-2.39-9.17C123.07,336.6,126.54,332.39,130.85,330.33Z"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
<path
d="M218.9,238.43c.3.53.6,1.07.89,1.61,4.79,8.88,7.88,19.41,4.66,29.35-3.37,10.4-12.79,19.05-21.66,24.93-4.83,3.2-19,11-23.34,3.07-1.16-2.15-1.09-4.72-1.16-7.16-.09-3.11-.52-6.38-2.39-8.87s-5.58-3.83-8.21-2.17c-2.12,1.32-2.88,4-3.12,6.51-.19,1.9.14,4.95-.78,6.67s-3.94,1.87-5.69,2.31c-4.32,1.08-8.41,4.21-9.37,8.57-.68,3.1,2.93,9.75-.75,11.59a6.4,6.4,0,0,1-2.38.53c-4.86.36-10-.67-14.42,1.4a1.86,1.86,0,0,0-1.11,1,1.4,1.4,0,0,0,.71,1.43,4.83,4.83,0,0,0,1.63.5,13.5,13.5,0,0,1,3.33,1.19c4.09,2.11-2.05,2.86-3.1,3.3a13.81,13.81,0,0,0-3.6,2.58,11.21,11.21,0,0,0-4.33,8.92c14.34-6.05,28,3.83,35.82,15.28a33.53,33.53,0,0,1,5.91,21.45,31.53,31.53,0,0,1-6,16.69c-4.19,6.06-15.78,13.09-22.51,12.9a66.8,66.8,0,0,0,9.63,2.21c10.06,1.71,13.22.65,18.25,2.21,3.29,1,5.76,4.58,6.39,8s-.4,6.86-4.68,6.86c0,1.66-3.15,4.69-8.72,3.16-.29,1.22-1,3.43-10.29,1.87s-36.52-12.6-47.6-18.9A65.64,65.64,0,0,1,88.67,399c-6.79-5.88-11.29-14.44-13.33-23.29-2.58-11.19-1.68-22.88-.14-34.26,6.45-47.48,28.25-65.53,38-75.39,7.62-7.7,20.64-16.19,32.81-23.8,8.56-5.35,15.09-10.4,21.46-18.46,2.76-3.5,5-7.38,7.83-10.84,2.5-3.08,5.76-6.7,10-6.73,4.52-.05,8.78,3.12,12,5.92A98.27,98.27,0,0,1,218.9,238.43Z"
style="fill: #f0997a"
/>
style="fill: #f0997a" />
<path
d="M88.67,399c-17.4-14.75-17-40-13.53-60.65,2.25-15.26,6.8-30.43,14.43-43.89,6.08-10.84,14.52-20,23.63-28.4-8.64,8.58-17.08,18.09-22.85,28.84C83,308.38,78.56,323.41,76.24,338.54,72.76,359.08,72,383.8,88.67,399Z"
style="fill: #b16668"
/>
style="fill: #b16668" />
<path
d="M167.54,421.32c.65-3.93.4-8.64-3.32-10.26s-10.54-1.24-10.54-1.24,9.06-1.36,12.4.75S168.62,418.3,167.54,421.32Z"
style="opacity: 0.2"
/>
style="opacity: 0.2" />
<path
d="M158.81,424.46c.66-3.93.41-8.64-3.31-10.26S145,413,145,413s9.06-1.36,12.4.75S159.89,421.44,158.81,424.46Z"
style="opacity: 0.2"
/>
style="opacity: 0.2" />
<path
d="M258.7,296.22c-1.45,25.42-9.9,44.29-12.57,57.77-2.07,10.45-3.37,13.48-3.45,18.28A38.83,38.83,0,0,0,245.16,388a30.61,30.61,0,0,0,8.42,12.2c7.27,5.81,11.26,6.51,11.16,11.14-.15.75-.84,4.25-4.13,4.12-1.07,3.29-5.52,2.71-5.52,2.71s-2,5.43-14.48,0c-5-2.14-7.27-4.62-9.43-13.72-1-4.34-2.14-10.84-4.86-19.86-2.35-7.8-2.56-11.68-2.56-11.68s-2-.4-2.86,2.69c-1-2-.74-5.86.14-8.22s2.13-9.31,1.28-16.21a232.29,232.29,0,0,0-4.54-24.65c.13.49-7.29.82-7.8.86a29.14,29.14,0,0,0-10.1,2.12c-4.42,1.95-7.91,5.47-11.49,8.71a27.61,27.61,0,0,1-4.67,3.61,26,26,0,0,1-7.22,2.45c-2.14.51-3.78,1-5.8-.4a9.92,9.92,0,0,1-2.47-2.73c-4.64-7-6-15.7-6-24.09a94.33,94.33,0,0,1,1.4-17c.38-2.16.83-4.31,1.36-6.43s1.44-4.21,1.81-6.33c.53-3,.66-6.16,1.19-9.21a155.42,155.42,0,0,1,4.84-19.49c3.84-12.18,8.87-24.27,15.87-35,3.75-5.75,10.26-15.4,18.24-15,13.42.87,37.66,3.49,40.59,26.79C249.85,254.09,260.45,265.69,258.7,296.22Z"
style="fill: #f0997a"
/>
style="fill: #f0997a" />
<path
d="M193.29,300.22a4.33,4.33,0,0,0-4.22.84,12.84,12.84,0,0,0-1.63-3,8.88,8.88,0,0,0-3.38-3,4.81,4.81,0,0,0-3.74,0c-1.22.49-2.7,1.65-2.71,3.1,0,.24.41.67.62.38a5.36,5.36,0,0,1,2.64-2.2,3.56,3.56,0,0,1,3,.37,10.68,10.68,0,0,1,4.16,6.15c.18.65,1.17.5,1.41,0a3.27,3.27,0,0,1,3.91-1.43,5.24,5.24,0,0,1,3.13,3.42c.06.16.25.11.23-.06A5.57,5.57,0,0,0,193.29,300.22Z"
style="fill: #b16668"
/>
style="fill: #b16668" />
<path
d="M253.58,400.21a30.61,30.61,0,0,1-8.42-12.2,38.83,38.83,0,0,1-2.48-15.74c.08-4.8,1.38-7.83,3.45-18.28,1-5.14,2.88-11.06,4.87-17.83a5,5,0,0,1-3.12-.42c-.41,3.44-3.84,6.53-7.2,5.69s-4.22-5.71-1.57-7.77c-8.93,5.53-7.39-3.51-6.93-9.19.38-4.63.61-11.66-2.38-15.62-3.36-4.45-7.89-3.05-11.46.72-4.54,4.78-5.05,11.54-4.79,17.92,1.58-.31,3-.62,4.23-.92a233.34,233.34,0,0,1,4.54,24.65c.85,6.9-.4,13.85-1.28,16.21s-1.09,6.19-.14,8.22c.86-3.09,2.86-2.69,2.86-2.69s.21,3.88,2.56,11.68c2.72,9,3.83,15.52,4.86,19.86,2.16,9.1,4.47,11.58,9.43,13.72,12.46,5.39,14.48,0,14.48,0s4.45.58,5.52-2.71c3.29.13,4-3.37,4.13-4.12C264.84,406.72,260.85,406,253.58,400.21Z"
style="fill: #f0f0f0"
/>
style="fill: #f0f0f0" />
<path
d="M255.28,412.34c-1.23-.84-6.76-2.66-6.76-2.66s2.85,1.58,5.32,2.77,1.9,4,1.25,5.73C256.91,415.57,256.51,413.17,255.28,412.34Zm5.52-2.71C259.57,408.79,254,407,254,407s2.85,1.58,5.32,2.78,1.89,4,1.25,5.72C262.43,412.86,262,410.47,260.8,409.63Z"
style="opacity: 0.2"
/>
style="opacity: 0.2" />
<path
d="M225.9,251.55a35,35,0,0,1-4,7.37c-3,4.13-6.95,7.4-10.37,11.16s-6.37,8.35-6.49,13.43c0-.33,4.56-1.87,5.05-2-.78,2-2.45,3.66-3.23,5.8a18.37,18.37,0,0,0-1.08,7.45,19.94,19.94,0,0,1,5.64-5.38c-.87.55-1.31,4-1.51,5a28.26,28.26,0,0,0-.56,5.43c0,3,.06,5.93,0,8.93-.21,6.83-.87,13.56-3,20.09,0,0,7.29-1.27,8.53-1.52,5.66-1.1,10.47-3.66,14.53-5.74,7.86-4,12.25-7.46,17.23-14.74,13.87-20.3,6-48.65-10.92-64.54a8.46,8.46,0,0,0-2.85-2,3.18,3.18,0,0,0-3.27.55,4.81,4.81,0,0,0-1,2.33A63.23,63.23,0,0,1,225.9,251.55Z"
style="fill: #fafafa"
/>
style="fill: #fafafa" />
<path
d="M266.72,254.31c1.3,3.41.35,7.5-.73,11.11a97.32,97.32,0,0,1-7.86,19.71,44,44,0,0,1-14.06,15.66c-1.14.73-2.62,1.4-3.78.71a3.84,3.84,0,0,1-1.42-2.82c-.65-3.6-1.21-7.29-3-10.49-1.86-3.38-4.9-5.91-7.8-8.46-6.49-5.7-12.38-11.94-18.6-17.88A115.92,115.92,0,0,1,193,242.12c-4-6-8.14-13.71-6.66-21.16,7.09,1.85,13.95,5.1,21.08,7.07a191.24,191.24,0,0,0,22.34,4.75,180,180,0,0,0,21.36,2c3.62.11,10.25-.71,12.75,2.69s-.49,5.57-1.32,8.53c-.71,2.54,2,4.59,3.41,6.81A8,8,0,0,1,266.72,254.31Z"
style="fill: #ba68c8"
/>
style="fill: #ba68c8" />
<path
d="M266.72,254.31c1.3,3.41.35,7.5-.73,11.11a97.32,97.32,0,0,1-7.86,19.71,44,44,0,0,1-14.06,15.66c-1.14.73-2.62,1.4-3.78.71a3.84,3.84,0,0,1-1.42-2.82c-.65-3.6-1.21-7.29-3-10.49-1.86-3.38-4.9-5.91-7.8-8.46-6.49-5.7-12.38-11.94-18.6-17.88A115.92,115.92,0,0,1,193,242.12c-4-6-8.14-13.71-6.66-21.16,7.09,1.85,13.95,5.1,21.08,7.07a191.24,191.24,0,0,0,22.34,4.75,180,180,0,0,0,21.36,2c3.62.11,10.25-.71,12.75,2.69s-.49,5.57-1.32,8.53c-.71,2.54,2,4.59,3.41,6.81A8,8,0,0,1,266.72,254.31Z"
style="fill: #fff; opacity: 0.30000000000000004"
/>
style="fill: #fff; opacity: 0.30000000000000004" />
<path
d="M249.39,260.2a11.37,11.37,0,0,1-5.86,1.81,23.24,23.24,0,0,1-6.89-1.23Q231,259.13,225.56,257a6.06,6.06,0,0,0-3-.62,2,2,0,0,0-1.86,2c.14.92,1,1.51,1.54,2.23a12,12,0,0,0,2.18,2.34q3.21,2.72,6.4,5.45l7.65,6.52c1.31,1.11,2.66,2.18,3.92,3.34s2,1.94,3.68,1.61a7.58,7.58,0,0,0,3.91-2.49,37.23,37.23,0,0,0,6.9-11.23,29.74,29.74,0,0,0,2.15-5.94c.41-2.13,1.47-4,1.61-6.26.11-1.64-1-3.17-2.63-1.66C255.3,254.9,252.66,258.19,249.39,260.2Z"
style="fill: #ba68c8; opacity: 0.30000000000000004"
/>
style="fill: #ba68c8; opacity: 0.30000000000000004" />
<path
d="M240.2,257.7c1.67.06,3.5.19,5-.62.8-.43,2.8-1.66,1.36-2.53-.9-.54-2.34-.26-3.34-.32-1.27-.08-2.54-.24-3.79-.44-2.51-.4-5-1-7.49-1.46-.81-.17-1.93-.12-2.14.68a1.59,1.59,0,0,0,.67,1.42C233.06,256.8,236.72,257.57,240.2,257.7Z"
style="fill: #ba68c8; opacity: 0.30000000000000004"
/>
style="fill: #ba68c8; opacity: 0.30000000000000004" />
<path
d="M240.62,149.35c-1-.83-2.68-1.12-3-2.4a2.9,2.9,0,0,1,0-.93,16.39,16.39,0,0,1,1.35-5.36,21.79,21.79,0,0,1,2.66-4.48,39.13,39.13,0,0,1,7.82-7.38c3.14-2.37,6.65-4.59,10.58-4.85a3,3,0,0,1,2.46.7c.71.78.53,2,.31,3-.72,3.35-1.64,6.54-2.52,9.86-1.15,4.33-.54,8.74-1.06,13.16a6.74,6.74,0,0,1-1,3.18,5.8,5.8,0,0,1-2.74,1.91,10.87,10.87,0,0,1-8.14-.27,11.31,11.31,0,0,1-1.14-.46,10.14,10.14,0,0,1-3.11-2.13C242.05,151.86,241.79,150.3,240.62,149.35Z"
style="fill: #f0997a"
/>
style="fill: #f0997a" />
<path
d="M244.14,147.72c.53,1.37,1.94,2.16,3.26,2.8a67.65,67.65,0,0,0,7.26,3,1.09,1.09,0,0,0,.47.09.78.78,0,0,0,.62-.61,2.37,2.37,0,0,0,0-.92,36.2,36.2,0,0,1,2.34-18,34.1,34.1,0,0,0,1.58-4.18c.4-1.53-.37-2.86-2-2.25A14.27,14.27,0,0,0,252.9,131a42.54,42.54,0,0,0-7.31,9.37C244.33,142.6,243.17,145.2,244.14,147.72Z"
style="fill: #ffbda7"
/>
style="fill: #ffbda7" />
<path
d="M249.69,144.59a17.13,17.13,0,0,1,2-6.12c.28-.53.57-1.05.88-1.57a16.75,16.75,0,0,0,1.13-1.86c.07-.15-.05-.52-.27-.39a10.81,10.81,0,0,0-3,3.6,16.27,16.27,0,0,0-1.87,4.69,14.13,14.13,0,0,0-.22,4.85c.21,1.6.61,3.52,1.93,4.56.16.13.64.26.64-.11,0-1.33-.79-2.58-1-3.9v0a3.52,3.52,0,0,0,2.33-1.24,4.25,4.25,0,0,0,.79-1.52,5,5,0,0,0,.16-.64,2.51,2.51,0,0,0-.05-1.09c0-.11-.17-.26-.28-.16a4.16,4.16,0,0,0-.84,1.46,5.36,5.36,0,0,1-.79,1.19l-.06.06-.11.1a2.25,2.25,0,0,1-.3.24l-.06,0-.13.08-.14.08-.1,0-.28.1s-.2,0-.05,0l-.14,0h-.11A13.91,13.91,0,0,1,249.69,144.59Z"
style="fill: #f0997a"
/>
style="fill: #f0997a" />
<path
d="M280.47,199.55l2.29-.24c-.61-3.74-3.13-6.83-5.36-9.9a82.71,82.71,0,0,1-5-7.68,34.17,34.17,0,0,1-2.88-7.72l-.24-.72a18.49,18.49,0,0,0-1.7-6c-2.19-4-5.31-9.11-10.7-13.14s-8.92-8-23.11-6.88c-11.77.91-23.34,2.43-34.33,13.1a45.67,45.67,0,0,0-9.54,12.52c-1,2.07-2.39,4-3.07,6.23s-.92,4.68-2.1,6.76c-2.22,3.9-7.43,5.72-8.77,10a1.12,1.12,0,0,0,0,.88c.22.35.72.36,1.14.34l4.69-.3a8.83,8.83,0,0,0-1.79,2.63,3,3,0,0,0,.4,3c.89,1,2.39.95,3.7.86-1.29.09,0,11,.22,12.15a23.06,23.06,0,0,0,3.79,8.27,26.36,26.36,0,0,0,5.23,5.9,91,91,0,0,0,16.32,9.15c14.87,6.67,36.52,4.28,40.2,2.6-.42-5-2.63-12.23,3.41-14.16,2.32-.74,4.68-.22,7-.69a14.25,14.25,0,0,0,5.5-2.78c.79-.62,3.34-4.34,4.09-4.47,0,0,5.13-.83,6.72-7.44.17-.72.35-1.42.53-2.1a2.73,2.73,0,0,1,1.38-.53c1.18-.08,2.27.67,3.45.74a16.11,16.11,0,0,0-.91-8A5.28,5.28,0,0,1,280.47,199.55Z"
style="fill: #f0997a"
/>
style="fill: #f0997a" />
<path
d="M281,202a5.28,5.28,0,0,1-.57-2.46l2.29-.24c-.61-3.74-3.13-6.83-5.36-9.9-.87-1.18-1.7-2.4-2.51-3.63-3.25.75-6.75,2.34-11.57-.87-2.87-1.92-4.12-6.21-4.85-9.41-.51-2.22-.57-4.51-1.17-6.72-.66-2.46-2.73-5.86-5.81-4.82-1.17.4-2,1.47-3,2.11-1.84,1.11-4.17.82-6.28.43s-4.4-.8-6.33.15a5,5,0,0,0-2.75,4.38,7.65,7.65,0,0,0,2,4.71c1.1,1.35,2.41,2.53,3.41,4,2.16,3.05,2.9,8.09.08,11a8,8,0,0,1-5.38,2.39,5.48,5.48,0,0,1-5-2.81c-.66-1.21-.93-2.74-2.08-3.49-1.85-1.2-4.16.52-5.72,2.09A121.19,121.19,0,0,1,198,206.62c-1.84,1.13-3.92,2.56-4,4.71-.06,1.57,1,2.93,2.11,4a27.78,27.78,0,0,0,10.72,6.68,9.76,9.76,0,0,0-4.3,1.7c-7.1,5.95,11.47,8.69,14.4,8.22-.35,1.21.7,2.33,1.66,3.15,2.45,2.1,5.66,4.13,7.54,6.77a9.16,9.16,0,0,1,.63,1c10.78,1,20.75-.4,23.14-1.49,4.33-1.58,7.44-3.46,8.34-6.52,1.07-3.6-8.92-6.36-4.93-7.64,2.32-.74,4.68-.22,7-.69a14.25,14.25,0,0,0,5.5-2.78c.79-.62,3.34-4.34,4.09-4.47,0,0,5.13-.83,6.72-7.44.17-.72.35-1.42.53-2.1a2.73,2.73,0,0,1,1.38-.53c1.18-.08,2.27.67,3.45.74A16.11,16.11,0,0,0,281,202Z"
style="fill: #fafafa"
/>
style="fill: #fafafa" />
<path
d="M282.76,199.31c-.61-3.74-3.13-6.83-5.36-9.9-.87-1.18-1.7-2.4-2.51-3.63-3.25.75-6.75,2.34-11.57-.87a7.58,7.58,0,0,1-1.83-1.79,10.23,10.23,0,0,0,2.38,4.63c1.86,2.17,4,4.1,5.78,6.33a26.07,26.07,0,0,1,5.48,13.38l-1.86.6a4.62,4.62,0,0,1,1.6,3.29c-.07,1.26-1.4,2.45-2.56,2,.33,1,.63,2.3-.06,3.15-.33.4-.83.64-1.14,1.06a1.75,1.75,0,0,0-.18,1.5c1.59-.63,4.53-2.4,5.66-7.12.17-.72.35-1.42.53-2.1a2.73,2.73,0,0,1,1.38-.53c1.18-.08,2.27.67,3.45.74a16.11,16.11,0,0,0-.91-8,5.28,5.28,0,0,1-.57-2.46Z"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
<path
d="M246.8,210.58a.63.63,0,1,1-.84-.29A.63.63,0,0,1,246.8,210.58Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path
d="M252.36,209.6a.62.62,0,0,1-.29.83.63.63,0,1,1-.54-1.13A.62.62,0,0,1,252.36,209.6Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path d="M251,214.47a.63.63,0,0,1-1.13.54.63.63,0,1,1,1.13-.54Z" style="fill: #37474f" />
<path
d="M261.27,216.08a8.7,8.7,0,0,1,1.91-1.27,13.47,13.47,0,0,0,1.74-1.2,1,1,0,0,1,.54-.22,1.14,1.14,0,0,1,.72.31,15.57,15.57,0,0,1,3.25,3.53.18.18,0,0,1,.06.15.28.28,0,0,1-.09.1,9.5,9.5,0,0,1-8.59,1.28c-.58-.21-1.64-.58-1.11-1.26A9.64,9.64,0,0,1,261.27,216.08Z"
/>
d="M261.27,216.08a8.7,8.7,0,0,1,1.91-1.27,13.47,13.47,0,0,0,1.74-1.2,1,1,0,0,1,.54-.22,1.14,1.14,0,0,1,.72.31,15.57,15.57,0,0,1,3.25,3.53.18.18,0,0,1,.06.15.28.28,0,0,1-.09.1,9.5,9.5,0,0,1-8.59,1.28c-.58-.21-1.64-.58-1.11-1.26A9.64,9.64,0,0,1,261.27,216.08Z" />
<path
d="M256.34,195.78a7.37,7.37,0,0,0-1.8,2.82,6.08,6.08,0,0,0,.3,4.73c.92,1.79,2.59,2.51,4.43,3a.25.25,0,0,0,.17,0,.26.26,0,0,0,.13-.14,1.84,1.84,0,0,0,.05-1.54,3.41,3.41,0,0,1-.49-1.13.93.93,0,0,1,.79-.94c1.71-.19,1.45,2,1.43,3a1.15,1.15,0,0,0,.7,1.31c1,.61,2,1.23,3.05,1.86a2.19,2.19,0,0,0,.88.36,1.78,1.78,0,0,0,.81-.16,5.71,5.71,0,0,0,3.84-4.19c.14-.76.06-1.55.2-2.31a.81.81,0,0,1,.31-.56c.43-.25,1.06.17,1.24.55s0,1.67.54,1a5.63,5.63,0,0,0,.63-2.4c.4-3-.74-6.66-3.92-7.59a11.35,11.35,0,0,0-3.68-.33,30.35,30.35,0,0,0-5.12.62,10.43,10.43,0,0,0-3.05,1A6.27,6.27,0,0,0,256.34,195.78Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M269.65,215.74a20.54,20.54,0,0,1-2.22-1.64,4.67,4.67,0,0,1-.85-2.41c-.1-.89-.08-1.78-.14-2.67a.64.64,0,0,0-.27-.59.46.46,0,0,0-.55.29,1.61,1.61,0,0,0-.06.69,5.29,5.29,0,0,1-.7,2.88,5,5,0,0,1-2.09,1.62c-3.7,2.07-6.23,5.47-10.66,6.26a11.9,11.9,0,0,1-11.44-5c-.89-1.26-1.62-2.62-2.47-3.9-.08-.13-.23-.28-.37-.21s-.11.19-.11.31c.07,1.75,1.25,3.37,2.13,4.81a11.82,11.82,0,0,0,5,4.83c2.93,1.37,6.36,2.22,9.39,1.08a19.07,19.07,0,0,0,5-3.41c1.06-.86,2.17-1.67,3.3-2.43a15.38,15.38,0,0,0,2.88-1.85,3,3,0,0,0,.29-.35,6.92,6.92,0,0,0,2.08,2.2,5.79,5.79,0,0,1,1.59,1.68,5.49,5.49,0,0,1,.52,1.36,4.58,4.58,0,0,0,1.75-.69A7.22,7.22,0,0,0,269.65,215.74Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M226.62,165.26c-2.5,1.36-5.21,3.53-6.24,6.26-.3.81-.81,2.26.21,2.76s2.69-.72,3.52-1.34a61.14,61.14,0,0,1,5.44-3.16,8,8,0,0,0,2.23-1.67c2.55-3.06-2-4.39-4.3-3.29C227.19,165,226.9,165.1,226.62,165.26Z"
style="fill: #fafafa"
/>
style="fill: #fafafa" />
<path
d="M261.17,160.25c2.76.68,5.94,2.08,7.63,4.46.5.7,1.37,2,.51,2.72s-2.78,0-3.74-.39a60.48,60.48,0,0,0-6.07-1.66,8.14,8.14,0,0,1-2.59-1c-3.25-2.3.8-4.75,3.31-4.29Z"
style="fill: #fafafa"
/>
style="fill: #fafafa" />
<path
d="M236.6,183.49a6.76,6.76,0,0,0-3.63-2.37,8.12,8.12,0,0,0-4.42.3,5.93,5.93,0,0,0-2.61,1.71c-.57.64-1.43,1.94-1.28,2.86.26,1.57,3.13-.55,3.78-.87a8.53,8.53,0,0,1,3.55-.84,20.36,20.36,0,0,1,3.68.62C236.84,185.11,237.28,184.46,236.6,183.49Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M269.61,180.14a5.92,5.92,0,0,0-3.17-2.07,7.09,7.09,0,0,0-3.87.26,5.22,5.22,0,0,0-2.29,1.49,3.9,3.9,0,0,0-1.11,2.51c.22,1.37,2.74-.49,3.3-.76a7.48,7.48,0,0,1,3.11-.74,17.08,17.08,0,0,1,3.22.55C269.82,181.56,270.21,181,269.61,180.14Z"
style="fill: #263238"
/>
style="fill: #263238" />
<path
d="M221.71,223c.13,2,2.33,3.07,4.28,3.32a12.63,12.63,0,0,0,7.6-1.44A4.1,4.1,0,0,0,241,227c.61,1.35,2.24,1.93,3.72,2,3.25.14,6.55-1.67,9.77-2.08s6.41.09,9.12-1.67c.18-.12.53-.32.73-.44,0,0,.27,1,.34,1.17a16.83,16.83,0,0,1,.7,3.86,3.77,3.77,0,0,1-.15,1.53,3,3,0,0,1-2.34,1.63,17.42,17.42,0,0,1-3,0,1.57,1.57,0,0,0-.83.17,1.9,1.9,0,0,0-.59,1.05,6.27,6.27,0,0,1-9.22,3.28,3.06,3.06,0,0,0-1.55-.67,2.69,2.69,0,0,0-1.46.72,12,12,0,0,1-9.54,2.25,10,10,0,0,1-7.32-6.29c-.11-.33-.25-.71-.58-.81a1.06,1.06,0,0,0-.73.14,8.09,8.09,0,0,1-3.78.9,3.45,3.45,0,0,1-3.07-2.08c-.4-1.18.08-2.48,0-3.72a4.49,4.49,0,0,1-4.42-6.77c1.31-2.19,4.67-3.21,7.09-2.94C223.47,220,221.59,221,221.71,223Z"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
<path
d="M213,149.43c-1.75-7.53-10.16-14.31-16.68-17.72a12.68,12.68,0,0,0-4.5-1.58,3.16,3.16,0,0,0-1.8.22,3.67,3.67,0,0,0-1.39,1.55,27.8,27.8,0,0,0-2.73,9.49,123.29,123.29,0,0,0-1.28,19.3,17.28,17.28,0,0,0,1,6.67,9.19,9.19,0,0,0,2.15,3c1.13,1.07,2.53,1.84,3.59,3a8.41,8.41,0,0,0,3.12,2.61c3.55,1.52,7.51.23,10.76-1.45,4.09-2.12,10.5-7.1,10.54-12.32,0-1.68-1.72-2.47-2.33-3.88-.93-2.15-.24-4.52-.24-6.75A9.91,9.91,0,0,0,213,149.43Z"
style="fill: #f0997a"
/>
style="fill: #f0997a" />
<path
d="M191.73,165.35c1.29,2.71,3.81,4.25,3.18,7.59-.34,1.8-1.24,3.45-1.68,5.22s-.62,4.2.15,5.81a1.2,1.2,0,0,0,.76.73c.71.14,1.11-.79,1.29-1.5a12.47,12.47,0,0,1,4.46-6.77,2.92,2.92,0,0,0,3.84,1.71,4.77,4.77,0,0,0,2.66-3.7,13.92,13.92,0,0,0-.27-4.72,12.36,12.36,0,0,1,5.21.83,1,1,0,0,0,.59.09.81.81,0,0,0,.43-.55,5.53,5.53,0,0,0-.53-4.5,9.21,9.21,0,0,0-3.32-3.21c1.81-.16,3.62-.25,5.44-.29a3.83,3.83,0,0,0-1.58-2.59A10.42,10.42,0,0,1,210,158c-.9-1.09-.55-2.68-.52-4.09.09-3.57-2.48-7.13-4.77-9.65a50.52,50.52,0,0,0-7.38-6.73c-1.33-1-3.8-2.58-5.34-1.42-1.72,1.29-1.39,4.7-1.62,6.62a68.21,68.21,0,0,0-.72,13.9A25.92,25.92,0,0,0,191.73,165.35Z"
style="fill: #ffbda7"
/>
style="fill: #ffbda7" />
<path
d="M203,152a15.05,15.05,0,0,0-2.38-6.13,10.53,10.53,0,0,0-1.92-2.13,10.07,10.07,0,0,0-2.85-1.92c-.1,0-.1.14-.05.19a22.48,22.48,0,0,1,2.24,2.43,28.25,28.25,0,0,1,1.63,2.55,16.45,16.45,0,0,1,1.85,5.74c.22,1.61.3,3.44-.83,4.72a2.43,2.43,0,0,1-.52.49,4.27,4.27,0,0,1-.73.46,5,5,0,0,1-1.72.52,5.34,5.34,0,0,1-.8,0,6,6,0,0,0-1.38-.15c-.19,0-.19.28-.11.41a2.44,2.44,0,0,0,1.5.8,5.54,5.54,0,0,0,1.41.15,4.79,4.79,0,0,0,2.73-.75c.13-.08.25-.17.37-.26a10.42,10.42,0,0,1-2.36,5c-.42.49.51,1,.93.8,2-1.12,2.77-3.85,3.1-6A21.51,21.51,0,0,0,203,152Z"
style="fill: #f0997a"
/>
style="fill: #f0997a" />
<path
d="M116.67,290.07a8.07,8.07,0,0,1,.22-3.94c1.28-4.47,4.45-8.13,7.74-11.4,1.53-1.53,3.26-3.08,5.4-3.38a2.2,2.2,0,0,1-.87,1.58,61.78,61.78,0,0,0-6.15,7.26c-1.58,2.19-3.49,4.65-3.56,7.45a3.11,3.11,0,0,0,.58,2.09,3,3,0,0,0,1.24.76,8,8,0,0,0,3.93.42c.57-.09,1.3-.16,1.55.36s-.15,1-.45,1.36a3.38,3.38,0,0,0-.5,3.73,2.93,2.93,0,0,0,2.53,1.19,7.09,7.09,0,0,0,2.79-.79,1.21,1.21,0,0,1,1.17-.12c.76.5-.4,2-.87,2.42a6.36,6.36,0,0,1-4,1.16,5.06,5.06,0,0,1-4-2.12,3.82,3.82,0,0,1,.11-4.39,9.64,9.64,0,0,1-4.26-.62A4.3,4.3,0,0,1,116.67,290.07Z"
style="fill: #b16668"
/>
style="fill: #b16668" />
<path
d="M171.59,233.67a3.32,3.32,0,0,1-.47-1.59c.07-1,.89-1.76,1.2-2.71a1.49,1.49,0,0,1,.29-.64c.31-.31.68,0,.83.28,1,2,.54,4.22-.15,6.25-.07.22-.18.47-.41.54s-.5-.14-.65-.35a4.11,4.11,0,0,1-.5-1.41C171.69,233.91,171.64,233.79,171.59,233.67Z"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
<path
d="M165.58,345.32a11.45,11.45,0,0,1-2.24-3.08C157.06,330,152.76,316.31,153,302.42c.26-14.33,2.94-27.93-2.46-41.83-1.7-4.4-4.1-8.67-4.4-13.38-.13-2.09.17-4.2,0-6.29-.31-3.5-2-6.73-3-10.09a13.86,13.86,0,0,1-.38-7.81,8.2,8.2,0,0,1,3.92-5c-2-4.31.75-9.45,5.13-9.91a7.27,7.27,0,0,1,1.92-3.89,6.14,6.14,0,0,1,3.5-1.8c3-.58,6.34,1.84,7.22,4.66a3.39,3.39,0,0,0,.42,1,3.06,3.06,0,0,0,1,.77c4.16,2.54,7.81,7.68,6.55,12.71-.38,1.54-1.18,3-1.45,4.52-.62,3.62,1.63,7.07,2.08,10.71.4,3.17-.58,6.33-1.26,9.45-4.07,18.83,2.84,38.28,11.57,55.45,3.58,7,9.89,15.89,8.49,24.25s-6.5,16.47-14.4,20.21a13.51,13.51,0,0,1-5.92,1.52A8.45,8.45,0,0,1,165.58,345.32Z"
style="fill: #f0997a"
/>
style="fill: #f0997a" />
<path
d="M191.83,326c1.4-8.36-4.91-17.21-8.49-24.25-8.73-17.17-15.64-36.62-11.57-55.45.68-3.12,1.66-6.28,1.26-9.45-.45-3.64-2.7-7.09-2.08-10.71.27-1.56,1.07-3,1.45-4.52,1.26-5-2.39-10.17-6.55-12.72a2.9,2.9,0,0,1-1-.76,3.39,3.39,0,0,1-.42-1c-.88-2.82-4.19-5.24-7.22-4.66a6.14,6.14,0,0,0-3.5,1.8,7.2,7.2,0,0,0-1.92,3.89c-4.38.46-7.12,5.6-5.13,9.91a8.2,8.2,0,0,0-3.92,5,13.86,13.86,0,0,0,.38,7.81c1,3.36,2.66,6.59,3,10.09.19,2.09-.11,4.2,0,6.29.28,4.44,2.42,8.49,4.1,12.62l.24.29c4.52,5.1,9.93,10.48,10,17.3,0,1.79-.39,3.57-.23,5.35.34,3.72,3,6.78,4.47,10.2s1.35,8.35-2.08,9.83a15.9,15.9,0,0,1,3.34,8.73c0,3.17-1.51,6.49-4.37,7.86a6.16,6.16,0,0,1-7-1.41,97.23,97.23,0,0,0,8.81,24.26,11.45,11.45,0,0,0,2.24,3.08,8.44,8.44,0,0,0,5.93,2.44,13.51,13.51,0,0,0,5.92-1.52C185.33,342.5,190.42,334.49,191.83,326Z"
style="fill: #f0f0f0"
/>
style="fill: #f0f0f0" />
<path
d="M191.83,326a28.2,28.2,0,0,1-10.54,18.19c-4.17,3.19-10.54,5.73-15.19,2a11.89,11.89,0,0,1-3.37-4.32,97.05,97.05,0,0,1-7.8-20,73,73,0,0,1-2.44-21.37c.19-7.17.93-14.29.82-21.39a51.8,51.8,0,0,0-4.19-20.67c-1.38-3.27-2.94-6.61-3.37-10.28s.48-7.1-.71-10.59c-.95-3.37-2.66-6.65-3-10.34a9.36,9.36,0,0,1,4.47-9.41l-.1.32a7.46,7.46,0,0,1,2.31-9,6.19,6.19,0,0,1,3.05-1.17l-.09.08a7.63,7.63,0,0,1,1.85-3.76,6.14,6.14,0,0,1,3.67-1.91,6.1,6.1,0,0,0-3.6,2,7.49,7.49,0,0,0-1.73,3.8,6.32,6.32,0,0,0-4.95,3.64,7.11,7.11,0,0,0,0,6.28c-7.44,4.51-3.4,12.79-1.17,19.21,1.25,3.42.51,7.22.87,10.7,1.1,7,5.58,13.13,6.63,20.3,2.12,10.62.64,21.54.28,32.19-.66,14.27,3.55,28.31,9.85,41,2.28,5.35,7.65,7.22,12.91,4.81,8.33-3.4,13.9-11.64,15.45-20.35Z"
style="fill: #b16668"
/>
style="fill: #b16668" />
<path
d="M165.37,224c-3-1.94-2.69-5.81-1.35-8.65.72-1.56,2.28-2.91,4.06-2.2a5.17,5.17,0,0,1,2.24,2,7.13,7.13,0,0,1,1.38,4.74,7,7,0,0,1-.9,2.65,4.88,4.88,0,0,1-1.1,1.41A3.81,3.81,0,0,1,165.37,224Z"
style="fill: #455a64"
/>
style="fill: #455a64" />
<path
d="M165.37,224c-4.19-2.21-3.23-12.17,2.13-12,3.92.69,5.91,5.78,4.42,9.18-1.13,2.83-3.72,4.53-6.55,2.8Zm0,0c4.29,2.5,6.86-3.19,5.17-6.6-.8-1.67-2.5-4.35-4.54-3.2-2.82,2-4.12,7.69-.63,9.8Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path
d="M156.9,207.52a3.6,3.6,0,0,0-.54.85,6.63,6.63,0,0,0-.42,3.1,17.74,17.74,0,0,0,1.5,6.15,7.6,7.6,0,0,0,1.85,2.74c2.66,2.31,6.27-1.22,6.44-4.06a8.52,8.52,0,0,0-.23-2.3,12.11,12.11,0,0,0-4.19-6.37,3.83,3.83,0,0,0-2.57-1.09A2.66,2.66,0,0,0,156.9,207.52Z"
style="fill: #455a64"
/>
style="fill: #455a64" />
<path
d="M156.9,207.52c-1.88,2.61-.51,6.37.63,9,1.83,4.08,4.54,5.13,6.92.93,1.36-3.48-.81-7.48-3.41-9.88-1.19-1.16-3-1.46-4.14-.07Zm0,0c1-1.42,3.06-1.18,4.31-.15,2.68,1.9,5,4.72,5.38,8.11.59,3.68-3.8,8.31-7.4,5.87-3-2.07-4.6-11.15-2.29-13.83Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path
d="M149.4,214.88a11.46,11.46,0,0,0,.06,5.08,7.92,7.92,0,0,0,2.25,4.11c.66.6,1.41,1.42,2.37,1.35a5.35,5.35,0,0,0,3.44-2.16,5.9,5.9,0,0,0,1.07-1.6c.91-2.25-.45-5.31-1.36-7.36-1-2.29-3.79-4.72-6.21-2.59A5.66,5.66,0,0,0,149.4,214.88Z"
style="fill: #455a64"
/>
style="fill: #455a64" />
<path
d="M149.4,214.88c-.61,3,.08,6.56,2.39,8.58a7,7,0,0,0,1.77,1.18c1.14.24,2.33-.95,3.09-1.85a4.77,4.77,0,0,0,1.06-1.65,7.11,7.11,0,0,0-.26-4,15.33,15.33,0,0,0-1.68-4.18c-2.33-3.36-5.75-1.62-6.37,2Zm0,0c.63-3.93,4.09-5.69,7.13-2.61a13.4,13.4,0,0,1,2.55,4.27,7.66,7.66,0,0,1,.52,5.25c-1,2.33-3.92,5.22-6.59,4.13-3.65-2.3-4.44-7.13-3.61-11Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path
d="M168.52,224.34a9.22,9.22,0,0,0-1.48-1.88c-3-2.92-7.14-1.92-9.87.86a16.18,16.18,0,0,0-4.39,11.5c.09,2.25.89,4.73,2.9,5.73a4,4,0,0,0,3.67-.06c1.7-.91,2.6-3,4.37-3.77,2.39-1.06,5.69-.29,6.7-3.49a8.06,8.06,0,0,0-.16-4.35A16.23,16.23,0,0,0,168.52,224.34Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path
d="M151.28,233.6c2.1-.13,4.12-3.41,4.1-5.34a5.08,5.08,0,0,0-.19-1.28,9.76,9.76,0,0,0-3.52-5.24,3.26,3.26,0,0,0-3.34-.34c-1.3.72-1.73,2.37-1.8,3.85C146.41,227.79,147.66,233.82,151.28,233.6Z"
style="fill: #455a64"
/>
style="fill: #455a64" />
<path
d="M151.28,233.6c2.1-.31,3.34-2.59,3.69-4.49.32-2.51-2.62-6.59-5.08-7-2.51-.21-2.83,3.27-2.71,5.28.14,2.47,1,6.23,4.1,6.22Zm0,0c-3.08,0-4.37-3.56-5.09-6.06-1-2.92-.18-7.86,3.91-7.43,3.24.51,5.08,3.95,5.61,6.88.48,2.59-1.8,6.18-4.43,6.61Z"
style="fill: #37474f"
/>
style="fill: #37474f" />
<path
d="M158.22,255.55a1.18,1.18,0,0,0,.37.6,1.6,1.6,0,0,0,.6.29,8.15,8.15,0,0,0,6.33-.79c2.78-1.64.77-5.35-2-5.2C161.34,250.56,157.44,253,158.22,255.55Z"
style="fill: #455a64"
/>
style="fill: #455a64" />
<path
d="M147.23,217.06a4.85,4.85,0,0,0-.49-1.19,1,1,0,0,0-1-.52,1.25,1.25,0,0,0-.79.57,4.22,4.22,0,0,0-1.1,3.19,2.05,2.05,0,0,0,3.17,1.32C147.78,220,147.59,218.3,147.23,217.06Z"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
<path
d="M150.94,210.53a1.7,1.7,0,0,0,.74-.2c1-.62.16-2.57.19-3.5a2.49,2.49,0,0,0-.06-.82c-.48-1.53-2.1-.31-2.63.43a5.39,5.39,0,0,0-1.07,3C148.14,210.79,150,210.63,150.94,210.53Z"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
<path
d="M159.42,204.36a1,1,0,0,0,.36-.36,1.32,1.32,0,0,0,.11-.65c0-.53-.11-1.06-.06-1.59.09-.85.75-2.7-.75-2.55a2.17,2.17,0,0,0-1.35.77,9.28,9.28,0,0,0-1.21,2.15c-.3.62-.58,2,.26,2.37A3.69,3.69,0,0,0,159.42,204.36Z"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
<path
d="M168.44,207.48a1.19,1.19,0,0,1,.23.57,12.41,12.41,0,0,1,.23,1.38,1.93,1.93,0,0,1-.1,1.12c-.67,1.36-3,.95-2.91-.65C166,209,167.36,206.19,168.44,207.48Z"
style="fill: #e0e0e0"
/>
style="fill: #e0e0e0" />
</g>
</g>
<g id="freepik--speech-bubble--inject-38">
@@ -594,38 +455,30 @@
<g id="freepik--speech-bubble--inject-38">
<path
d="M146.1,114.52a45.55,45.55,0,0,1,7.48,33.22L152.44,153a47.82,47.82,0,0,1-18.86,26.5c-21.43,14.87-50.69,9.95-65.22-11a45.43,45.43,0,0,1-7.78-31l.89-5.28a47.71,47.71,0,0,1,19.41-28.68C102.31,88.67,131.57,93.59,146.1,114.52Z"
style="fill: #fff"
/>
style="fill: #fff" />
<path
d="M78.64,100.32c-23.25,16.14-29.34,47.75-13.57,70.44,14.14,20.37,41.14,26.75,63.32,16.2l13,8.65a3,3,0,0,0,4.57-3.17l-3.55-15.22c17.65-17.1,21.11-44.61,7-65C133.63,89.54,101.89,84.19,78.64,100.32Zm67.46,14.2a45.55,45.55,0,0,1,7.48,33.22L152.44,153a47.82,47.82,0,0,1-18.86,26.5c-21.43,14.87-50.69,9.95-65.22-11a45.43,45.43,0,0,1-7.78-31l.89-5.28a47.71,47.71,0,0,1,19.41-28.68C102.31,88.67,131.57,93.59,146.1,114.52Z"
style="fill: #455a64"
/>
style="fill: #455a64" />
<path
d="M146.1,114.52a45.55,45.55,0,0,1,7.48,33.22L152.44,153a47.82,47.82,0,0,1-18.86,26.5c-21.43,14.87-50.69,9.95-65.22-11a45.43,45.43,0,0,1-7.78-31l.89-5.28a47.71,47.71,0,0,1,19.41-28.68C102.31,88.67,131.57,93.59,146.1,114.52Z"
style="fill: #fff; opacity: 0.7000000000000001"
/>
style="fill: #fff; opacity: 0.7000000000000001" />
</g>
<g id="freepik--paw--inject-38">
<path
d="M102.4,137.24c-1.82,1.48-2.86,3.71-4.46,5.43-2.41,2.58-6,3.88-8.33,6.49A11.58,11.58,0,0,0,88.15,162a13.27,13.27,0,0,0,11.2,6.82c3.2.1,6.37-.49,9.58-.39,2.91.1,5.64,1,8.62.62a11.43,11.43,0,0,0,7.17-3.77,8.28,8.28,0,0,0,2-4.55c.35-2.8.42-6.92-1.21-9.39-1.5-2.27-3.93-3.47-5.94-5.19s-3.43-4.32-5.14-6.5C111.46,135.91,106.5,133.9,102.4,137.24Z"
style="fill: #ba68c8"
/>
style="fill: #ba68c8" />
<path
d="M91,142.08a14.22,14.22,0,0,0,1.42-2c1.28-2.08,1.1-3.93,0-6.08a17.19,17.19,0,0,0-3.71-4.53A13.68,13.68,0,0,0,85,126.91a3.31,3.31,0,0,0-2.82,0c-1.23.64-1.74,2.14-2,3.51a19.64,19.64,0,0,0-.09,6.4A10.83,10.83,0,0,0,82,141.68a5.77,5.77,0,0,0,4.41,2.5,6.25,6.25,0,0,0,4.28-1.77Z"
style="fill: #ba68c8"
/>
style="fill: #ba68c8" />
<path
d="M91.6,120.29c0-3.39.94-6.68,4.12-8.22,3.71-1.8,7.07,2.14,8.24,5.26s1.86,7.39.65,10.75C103,132.46,98.55,133,95.32,130,92.76,127.61,91.66,123.71,91.6,120.29Z"
style="fill: #ba68c8"
/>
style="fill: #ba68c8" />
<path
d="M124,142.54a14.44,14.44,0,0,1-1.53-1.95c-1.39-2-1.32-3.85-.32-6.07a17.18,17.18,0,0,1,3.44-4.74,13.86,13.86,0,0,1,3.46-2.73,3.31,3.31,0,0,1,2.81-.18c1.27.57,1.86,2,2.18,3.39a19.89,19.89,0,0,1,.46,6.39,10.84,10.84,0,0,1-1.53,5,5.8,5.8,0,0,1-4.26,2.75,6.26,6.26,0,0,1-4.38-1.52Z"
style="fill: #ba68c8"
/>
style="fill: #ba68c8" />
<path
d="M123,120.09c-.17-3.39-1.38-6.61-4.65-7.94-3.83-1.54-6.92,2.61-7.88,5.8-1,3.34-1.37,7.49.06,10.77,1.86,4.27,6.38,4.5,9.4,1.29C122.32,127.46,123.16,123.5,123,120.09Z"
style="fill: #ba68c8"
/>
style="fill: #ba68c8" />
</g>
</g>
</g>

View File

@@ -2,17 +2,14 @@
<svg width="66" height="31" viewBox="0 0 66 31" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M0 2C0 0.89543 0.895431 0 2 0H64C65.1046 0 66 0.89543 66 2V29C66 30.1046 65.1046 31 64 31H2C0.895429 31 0 30.1046 0 29V2Z"
fill="#E5E5E5"
/>
fill="#E5E5E5" />
<path
d="M15.912 19V10.24H18.684C19.268 10.24 19.772 10.348 20.196 10.564C20.628 10.78 20.964 11.084 21.204 11.476C21.444 11.86 21.564 12.316 21.564 12.844C21.564 13.42 21.416 13.928 21.12 14.368C20.832 14.808 20.44 15.12 19.944 15.304L21.684 19H20.004L18.48 15.52H17.412V19H15.912ZM17.412 14.2H18.684C19.108 14.2 19.44 14.084 19.68 13.852C19.92 13.62 20.04 13.3 20.04 12.892C20.04 12.476 19.92 12.152 19.68 11.92C19.44 11.68 19.108 11.56 18.684 11.56H17.412V14.2ZM23.1073 19V17.632H25.4113V13.756H23.4073V12.4H26.8513V17.632H28.8913V19H23.1073ZM26.0113 11.296C25.7073 11.296 25.4673 11.22 25.2913 11.068C25.1153 10.908 25.0273 10.696 25.0273 10.432C25.0273 10.168 25.1153 9.96 25.2913 9.808C25.4673 9.648 25.7073 9.568 26.0113 9.568C26.3153 9.568 26.5553 9.648 26.7313 9.808C26.9073 9.96 26.9953 10.168 26.9953 10.432C26.9953 10.696 26.9073 10.908 26.7313 11.068C26.5553 11.22 26.3153 11.296 26.0113 11.296ZM31.3826 21.16L32.3066 18.64L29.8466 12.4H31.4906L32.7146 15.772C32.7786 15.956 32.8426 16.18 32.9066 16.444C32.9706 16.7 33.0186 16.912 33.0506 17.08C33.0906 16.912 33.1426 16.7 33.2066 16.444C33.2706 16.18 33.3346 15.956 33.3986 15.772L34.5506 12.4H36.1346L32.9546 21.16H31.3826ZM39.4539 19.12C38.7739 19.12 38.2379 18.94 37.8459 18.58C37.4539 18.22 37.2579 17.736 37.2579 17.128C37.2579 16.48 37.4739 15.98 37.9059 15.628C38.3379 15.276 38.9499 15.1 39.7419 15.1H41.3859V14.536C41.3859 14.216 41.2819 13.968 41.0739 13.792C40.8659 13.608 40.5819 13.516 40.2219 13.516C39.8939 13.516 39.6219 13.588 39.4059 13.732C39.1899 13.876 39.0619 14.072 39.0219 14.32H37.5579C37.6299 13.696 37.9099 13.2 38.3979 12.832C38.8859 12.464 39.5099 12.28 40.2699 12.28C41.0779 12.28 41.7139 12.484 42.1779 12.892C42.6499 13.292 42.8859 13.836 42.8859 14.524V19H41.4339V17.848H41.1939L41.4339 17.524C41.4339 18.012 41.2539 18.4 40.8939 18.688C40.5339 18.976 40.0539 19.12 39.4539 19.12ZM39.9459 17.992C40.3699 17.992 40.7139 17.884 40.9779 17.668C41.2499 17.452 41.3859 17.172 41.3859 16.828V16.024H39.7659C39.4619 16.024 39.2179 16.112 39.0339 16.288C38.8499 16.464 38.7579 16.696 38.7579 16.984C38.7579 17.296 38.8619 17.544 39.0699 17.728C39.2859 17.904 39.5779 17.992 39.9459 17.992ZM46.8173 19.12C46.1613 19.12 45.6293 18.892 45.2213 18.436C44.8213 17.98 44.6213 17.368 44.6213 16.6V14.812C44.6213 14.036 44.8213 13.42 45.2213 12.964C45.6213 12.508 46.1533 12.28 46.8173 12.28C47.3613 12.28 47.7933 12.436 48.1133 12.748C48.4333 13.052 48.5933 13.472 48.5933 14.008L48.2573 13.66H48.6053L48.5573 12.088V10.24H50.0573V19H48.5933V17.74H48.2573L48.5933 17.392C48.5933 17.928 48.4333 18.352 48.1133 18.664C47.7933 18.968 47.3613 19.12 46.8173 19.12ZM47.3453 17.824C47.7293 17.824 48.0253 17.712 48.2333 17.488C48.4493 17.256 48.5573 16.936 48.5573 16.528V14.872C48.5573 14.464 48.4493 14.148 48.2333 13.924C48.0253 13.692 47.7293 13.576 47.3453 13.576C46.9613 13.576 46.6613 13.688 46.4453 13.912C46.2293 14.136 46.1213 14.456 46.1213 14.872V16.528C46.1213 16.944 46.2293 17.264 46.4453 17.488C46.6613 17.712 46.9613 17.824 47.3453 17.824Z"
fill="black"
/>
fill="black" />
<circle cx="25.5" cy="10.5" r="1.5" fill="#00C8C8" />
<path
d="M2 1H64V-1H2V1ZM65 2V29H67V2H65ZM64 30H2V32H64V30ZM1 29V2H-1V29H1ZM2 30C1.44771 30 1 29.5523 1 29H-1C-1 30.6569 0.343143 32 2 32V30ZM65 29C65 29.5523 64.5523 30 64 30V32C65.6569 32 67 30.6569 67 29H65ZM64 1C64.5523 1 65 1.44771 65 2H67C67 0.343147 65.6569 -1 64 -1V1ZM2 -1C0.343146 -1 -1 0.343146 -1 2H1C1 1.44772 1.44772 1 2 1V-1Z"
fill="black"
fill-opacity="0.1"
/>
fill-opacity="0.1" />
</svg>
</template>

View File

@@ -4,13 +4,11 @@
stroke="currentColor"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
class="w-4 h-4"
>
class="w-4 h-4">
<path
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A1.994 1.994 0 013 12V7a4 4 0 014-4z"
/>
d="M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A1.994 1.994 0 013 12V7a4 4 0 014-4z" />
</svg>
</template>

View File

@@ -0,0 +1,74 @@
<template>
<section class="flex flex-col gap-2.5">
<div class="flex flex-wrap gap-2.5">
<template v-for="link in links" :key="link.url">
<NuxtLink
:to="link.url"
class="inline-flex items-center gap-2 px-4 py-2 rounded-full bg-white/40 backdrop-blur-md border border-white/40 text-zinc-700 text-sm font-semibold transition-all duration-300 hover:bg-white/60 hover:border-white/60 hover:text-violet-600 hover:-translate-y-1 hover:shadow-lg dark:bg-slate-800/40 dark:border-white/10 dark:text-zinc-300 dark:hover:bg-slate-800/60 dark:hover:text-white">
<span v-if="iconFor(link)" class="inline-flex items-center justify-center w-5 h-5">
<Icon
v-if="iconFor(link).name"
:name="iconFor(link).name"
size="16"
class="text-current" />
<NuxtImg
v-else
:src="iconFor(link).src"
:alt="link.name"
loading="lazy"
class="w-full h-full" />
</span>
<span>{{ link.name }}</span>
</NuxtLink>
</template>
</div>
</section>
</template>
<script setup>
import siteConfig from "~/config";
import { onMounted } from "vue";
const links = siteConfig.socialLinks;
const iconMap = {
bilibili: "simple-icons:bilibili",
github: "fa-brands:github",
blog: "fa-solid:rss",
email: "fa-solid:envelope",
mail: "fa-solid:envelope",
telegram: "fa-brands:telegram",
twitter: "fa-brands:twitter",
x: "fa-brands:twitter",
linkedin: "fa-brands:linkedin",
youtube: "fa-brands:youtube",
facebook: "fa-brands:facebook",
instagram: "fa-brands:instagram",
reddit: "fa-brands:reddit",
discord: "fa-brands:discord",
weibo: "fa-brands:weibo",
zhihu: "fa-brands:zhihu",
wechat: "fa-brands:weixin",
weixin: "fa-brands:weixin",
qq: "fa-brands:qq",
};
const iconFor = (link) => {
const key = (link.name || "").toLowerCase();
if (iconMap[key]) return { name: iconMap[key] };
if (link.icon) return { src: link.icon };
return null;
};
onMounted(() => {
const id = "fa-cdn";
if (document.getElementById(id)) return;
const link = document.createElement("link");
link.id = id;
link.rel = "stylesheet";
link.href =
"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css?font-display=swap";
link.crossOrigin = "anonymous";
link.referrerPolicy = "no-referrer";
document.head.appendChild(link);
});
</script>

View File

@@ -0,0 +1,104 @@
<script setup lang="ts">
import { ref } from "vue";
import siteConfig from "~/config";
const showMore = ref(false);
const { data: sysInfo } = await useFetch("/sys-info");
const techStack = computed(() => {
const platform = sysInfo.value?.platform || {
name: "Detecting...",
icon: "heroicons:arrow-path",
};
return [
{ label: "构建平台", value: platform.name, icon: platform.icon },
{ label: "图片存储", value: "去图图床", icon: "heroicons:photo" },
{ label: "软件协议", value: "MIT", icon: "heroicons:document-text" },
{ label: "文章许可", value: "CC BY-NC-SA 4.0", icon: "heroicons:creative-commons" },
{
label: "规范域名",
value: siteConfig.siteMeta.url.replace("https://", ""),
icon: "heroicons:globe-alt",
},
];
});
const versions = computed(() => {
if (!sysInfo.value) return [];
const v = sysInfo.value.versions;
return [
{ label: "Vue", value: v.vue },
{ label: "Nuxt", value: v.nuxt },
{ label: "Content", value: v.content },
{ label: "Node", value: v.node },
{ label: "OS", value: v.os },
{ label: "Arch", value: v.arch },
];
});
</script>
<template>
<section class="py-12 px-4">
<div class="max-w-xl mx-auto">
<div class="flex items-center gap-3 mb-6">
<div class="p-2 bg-violet-500/10 rounded-lg">
<Icon
name="heroicons:cpu-chip"
size="1.5em"
class="text-violet-600 dark:text-violet-400" />
</div>
<h2 class="text-2xl font-bold text-zinc-800 dark:text-zinc-100 tracking-tight">技术信息</h2>
</div>
<div
class="bg-white/40 dark:bg-slate-900/40 backdrop-blur-md border border-white/20 dark:border-white/5 rounded-3xl p-6 shadow-sm">
<!-- 基础信息列表 -->
<div class="space-y-4">
<div
v-for="item in techStack"
:key="item.label"
class="flex items-center justify-between group">
<span class="text-zinc-500 dark:text-zinc-400 text-sm font-medium">{{
item.label
}}</span>
<div class="flex items-center gap-2">
<Icon
v-if="item.icon"
:name="item.icon"
class="w-4 h-4 text-zinc-400 group-hover:text-violet-500 transition-colors" />
<span class="text-zinc-800 dark:text-zinc-200 text-sm font-bold">{{
item.value
}}</span>
</div>
</div>
</div>
<!-- 展开/收起按钮 -->
<button
class="w-full mt-8 py-2 flex items-center justify-center gap-2 text-xs font-bold text-zinc-400 hover:text-violet-500 transition-colors border-t border-white/10 dark:border-white/5 pt-6"
@click="showMore = !showMore">
<Icon
:name="showMore ? 'heroicons:chevron-double-up' : 'heroicons:chevron-double-down'"
class="w-3 h-3" />
{{ showMore ? "收起构建信息" : "展开构建信息" }}
</button>
<!-- 详细版本信息网格 -->
<div
v-show="showMore"
class="grid grid-cols-2 sm:grid-cols-4 gap-6 mt-6 animate-in fade-in slide-in-from-top-2 duration-500">
<div v-for="v in versions" :key="v.label" class="text-center">
<div
class="text-[10px] uppercase tracking-widest text-zinc-500 dark:text-zinc-500 font-bold mb-1">
{{ v.label }}
</div>
<div class="text-xs font-mono font-bold text-zinc-700 dark:text-zinc-300">
{{ v.value }}
</div>
</div>
</div>
</div>
</div>
</section>
</template>

View File

@@ -1,44 +1,146 @@
<script setup lang="ts">
const route = useRoute()
const path = computed(() => route.fullPath.replace('/', ''))
</script>
<template>
<div class="py-5 border-t dark:border-gray-800 mt-5 text-zinc-700 dark:text-zinc-300">
<div class="px-6 container max-w-5xl mx-auto">
<div class="grid grid-cols-1 md:grid-cols-3">
<FooterSite v-if="path === 'about'" />
<FooterDeveloper v-else />
<FooterLink />
<FooterConnect />
</div>
<footer
class="text-center mt-auto w-full flex flex-col gap-2 py-8 px-4 border-t border-white/10 dark:border-white/5">
<!-- 一言 -->
<p v-if="showHitokoto && quote" class="text-text-muted text-sm m-0 italic">
{{ quote }}<span v-if="from" class="ml-1.5"> {{ from }}</span>
</p>
<div class="border-t dark:border-gray-800 mt-5 text-center p-2">
© 2020-2024 No Right is reserved. Who cares 🤷? It's
<a href="https://github.com/nurriyad/blog" target="_blank" rel="nofollow" class="underline"
>open source</a
>
anyway.
<!-- 访问统计 -->
<p v-if="showStats && !statsError" class="text-text-muted text-xs m-0">
👁 {{ visitors }} · 📊 {{ pageviews }}
</p>
<a href="/rss.xml" aria-label="Website RSS Feed">
<span class="px-3"><Icon name="bi:rss-fill" class="-translate-y-[-20%]" /></span
></a>
</div>
</div>
</div>
<!-- 备案信息 -->
<p v-if="contact?.beian" class="text-text-muted text-xs m-0">
<NuxtLink
:to="contact.beianLink || '/'"
class="opacity-85 transition-all duration-200 hover:text-primary hover:opacity-100">
{{ contact.beian }}
</NuxtLink>
</p>
<!-- 框架与技术栈信息 -->
<p class="text-text-muted text-xs m-0">
Powered by
<a
href="https://nuxt.com"
target="_blank"
rel="noreferrer"
class="text-primary hover:text-accent transition-colors"
>Nuxt 4</a
>
·
<a
href="https://tailwindcss.com"
target="_blank"
rel="noreferrer"
class="text-primary hover:text-accent transition-colors"
>Tailwind CSS</a
>
·
<a
href="https://vuejs.org"
target="_blank"
rel="noreferrer"
class="text-primary hover:text-accent transition-colors"
>Vue 3</a
>
</p>
<!-- eslint-disable-next-line vue/no-v-html -->
<div v-if="contact?.customHtml" v-html="contact.customHtml" />
</footer>
</template>
<style>
/* we will explain what these classes do next! */
.v-enter-active,
.v-leave-active {
transition: all 0.4s;
}
<script setup>
import { onMounted, ref } from "vue";
import { useRuntimeConfig } from "#imports";
import siteConfig from "~/config";
const contact = siteConfig.footer || {};
const config = useRuntimeConfig();
const quote = ref("");
const from = ref("");
const pageviews = ref(0);
const visitors = ref(0);
const statsError = ref(true);
const showHitokoto = siteConfig.footer?.hitokoto?.enable;
const showStats = ref(siteConfig.umami?.enable);
.v-enter-from,
.v-leave-to {
opacity: 0;
filter: blur(1rem);
}
</style>
const buildHitokotoUrl = () => {
const type = siteConfig.footer?.hitokoto?.type;
const url = new URL("https://v1.hitokoto.cn/");
if (Array.isArray(type)) {
type.filter(Boolean).forEach((t) => url.searchParams.append("c", t));
} else if (typeof type === "string") {
type
.split("&")
.map((t) => t.trim())
.filter(Boolean)
.forEach((t) => url.searchParams.append("c", t));
}
return url.toString();
};
const fetchHitokoto = async () => {
try {
const resp = await fetch(buildHitokotoUrl());
const data = await resp.json();
quote.value = data.hitokoto || "";
from.value = data.from || "";
} catch (e) {
console.warn("Hitokoto fetch failed", e);
}
};
const fetchStats = async () => {
try {
if (!siteConfig.umami?.apiBase || !siteConfig.umami?.websiteId) {
return;
}
const apiBase = siteConfig.umami.apiBase;
const websiteId = siteConfig.umami.websiteId;
const apiKey = config.public.umamiApiKey;
if (!apiKey) return;
// 获取统计数据
const endAt = Date.now();
const startAt = new Date(siteConfig.siteMeta.startDate).getTime();
const resp = await fetch(
`${apiBase}/v1/websites/${websiteId}/stats?startAt=${startAt}&endAt=${endAt}`,
{
headers: {
Authorization: `Bearer ${apiKey}`,
},
},
);
if (!resp.ok) {
console.warn(`Stats API returned ${resp.status}`);
statsError.value = true;
return;
}
const data = await resp.json();
if (data) {
statsError.value = false;
pageviews.value = data.pageviews;
visitors.value = data.visitors;
}
if (pageviews.value === 0 && visitors.value === 0) {
showStats.value = false;
}
} catch (e) {
statsError.value = true;
console.debug("Stats fetch failed (this is normal if blocked by ad blocker):", e.message);
}
};
onMounted(() => {
if (showHitokoto) fetchHitokoto();
if (showStats.value) fetchStats();
});
</script>

View File

@@ -1,72 +1,111 @@
<script setup lang="ts">
import { navbarData } from '../../data'
import siteConfig from "~/config";
const colorMode = useColorMode()
const colorMode = useColorMode();
function onClick(val: string) {
colorMode.preference = val
colorMode.preference = val;
}
const route = useRoute()
const route = useRoute();
function isActive(path: string) {
return route.path.startsWith(path)
return route.path === path || route.path.startsWith(path + "/");
}
</script>
<template>
<div class="py-5 border-b dark:border-gray-800 font-semibold">
<div class="flex px-6 container max-w-5xl justify-between mx-auto items-baseline">
<ul class="flex items-baseline space-x-5">
<li class="text-base sm:text-2xl font-bold">
<NuxtLink to="/" :class="{ underline: $route.path === '/' }">
{{ navbarData.homeTitle }}
</NuxtLink>
</li>
</ul>
<ul class="flex items-center space-x-3 sm:space-x-6 text-sm sm:text-lg">
<li>
<NuxtLink to="/blogs" :class="{ underline: isActive('/blogs') }"> Blogs </NuxtLink>
</li>
<li>
<NuxtLink to="/categories" :class="{ underline: isActive('/categories') }">
Categories
</NuxtLink>
</li>
<li title="About Me">
<NuxtLink
to="/about"
aria-label="About me"
:class="{ underline: $route.path === '/about' }"
>
About
</NuxtLink>
</li>
<li>
<ClientOnly>
<button
v-if="colorMode.value === 'light'"
name="light-mode"
title="Light"
class="hover:scale-110 transition-all ease-out hover:cursor-pointer"
@click="onClick('dark')"
>
<Icon name="icon-park:moon" size="20" class="-translate-y-[-20%]" />
</button>
<button
v-if="colorMode.value === 'dark'"
name="dark-mode"
title="Dark"
class="hover:scale-110 transition-all ease-out hover:cursor-pointer"
@click="onClick('light')"
>
<Icon name="noto:sun" size="20" class="-translate-y-[-20%]" />
</button>
<template #fallback>
<!-- this will be rendered on server side -->
<Icon name="svg-spinners:180-ring" size="20" class="-translate-y-[-20%]" />
</template>
</ClientOnly>
</li>
</ul>
<header class="fixed top-0 left-0 right-0 z-50 h-16 backdrop-blur-sm font-semibold">
<div class="flex justify-center px-6 container max-w-5xl mx-auto items-center h-full">
<nav class="items-center">
<div
class="inline-flex items-center gap-3 bg-white/50 dark:bg-slate-900/50 backdrop-blur-xl shadow-[0_4px_20px_-2px_rgba(0,0,0,0.1)] border border-white/40 dark:border-white/5 rounded-full px-3 py-2 transition-all duration-300 hover:shadow-xl">
<div class="hidden sm:flex items-center justify-center h-8 w-8 rounded-full bg-white/0">
<NuxtLink
to="/"
class="relative rounded-full hover:bg-violet-400/40 dark:hover:bg-violet-200/40 p-1">
<Icon name="fa-solid:cat" size="16" class="text-zinc-700 dark:text-zinc-200" />
</NuxtLink>
</div>
<ul class="flex items-center space-x-3 sm:space-x-6 text-sm sm:text-lg">
<li v-for="link in siteConfig.navbar.links" :key="link.path">
<NuxtLink
:to="link.path"
class="relative px-2 py-1 rounded-full transition-all duration-200 flex items-center"
:class="{
'bg-gradient-to-r from-violet-500/80 to-fuchsia-500/80 text-white shadow-md scale-105':
isActive(link.path),
'hover:bg-white/50 dark:hover:bg-white/10': !isActive(link.path),
}">
<Icon
v-if="link.icon"
:name="link.icon"
size="16"
class="text-zinc-700 dark:text-zinc-200 mr-2" />
<span class="hidden sm:inline-block px-auto">{{ link.name }}</span>
<span class="sm:hidden">{{ link.name }}</span>
</NuxtLink>
</li>
</ul>
<div class="ml-2 flex items-center">
<ClientOnly>
<button
:title="colorMode.value === 'light' ? '切换到深色模式' : '切换到浅色模式'"
class="relative h-9 w-9 rounded-full bg-white/20 dark:bg-white/5 flex items-center justify-center transition-all duration-300 hover:scale-110 hover:bg-white/40 dark:hover:bg-white/10 focus:outline-none shadow-sm border border-white/20"
@click="onClick(colorMode.value === 'light' ? 'dark' : 'light')">
<Icon
name="fa-regular:sun"
size="18"
class="icon-svg transition-all duration-300 text-yellow-400"
:class="
colorMode.value === 'light'
? 'opacity-100 scale-100'
: 'opacity-0 scale-75 -translate-y-1'
" />
<Icon
name="fa-regular:moon"
size="18"
class="icon-svg absolute transition-all duration-300 text-indigo-200"
:class="
colorMode.value === 'dark'
? 'opacity-100 scale-100'
: 'opacity-0 scale-75 translate-y-1'
" />
</button>
<template #fallback>
<Icon name="fa-solid:spinner" size="18" class="icon-svg text-zinc-400" />
</template>
</ClientOnly>
</div>
</div>
</nav>
</div>
</div>
</header>
<!-- Spacer to prevent page content being hidden under fixed header -->
<div class="h-16" aria-hidden="true"></div>
</template>
<style scoped>
.icon-svg {
display: inline-block;
width: 1.125rem;
/* 18px */
height: 1.125rem;
}
.icon-svg svg {
width: 100%;
height: 100%;
transition:
transform 0.25s ease,
opacity 0.25s ease,
fill 0.25s ease;
}
.icon-svg.opacity-0 {
pointer-events: none;
}
</style>

View File

@@ -1,23 +1,57 @@
<script setup lang="ts">
import { homePage } from '~/data'
import siteConfig from "~/config";
import SocialLinks from "./SocialLinks.vue";
</script>
<template>
<div class="container mx-auto">
<div class="grid grid-cols-1 sm:grid-cols-2 items-center">
<div class="px-6">
<h1
class="text-black dark:text-zinc-300 font-semibold leading-tight text-4xl md:text-5xl my-5"
>
{{ homePage.title }}
</h1>
<p class="dark:text-zinc-300">
{{ homePage.description }}
</p>
</div>
<div class="px-6 justify-self-center">
<LogoDog />
<section class="relative w-full min-h-[calc(100vh-4rem)] overflow-hidden bg-transparent">
<div
class="container max-w-5xl mx-auto px-6 min-h-[calc(100vh-4rem)] flex items-center justify-center">
<div class="relative z-10 flex flex-col items-center text-center">
<div class="mb-8">
<div class="relative h-32 w-32 group">
<div
class="absolute inset-0 bg-gradient-to-tr from-violet-500 to-fuchsia-500 rounded-full blur-xl opacity-30 group-hover:opacity-50 transition-opacity duration-500"></div>
<NuxtImg
:src="siteConfig.profile.avatar"
alt="avatar"
class="relative h-full w-full object-cover rounded-full border-4 border-white/80 dark:border-slate-800/80 shadow-2xl transition-transform duration-500 group-hover:scale-105"
loading="eager" />
</div>
</div>
<div
class="group rounded-3xl bg-white/40 dark:bg-slate-900/40 backdrop-blur-2xl border border-white/30 dark:border-white/10 p-8 shadow-[0_8px_32px_0_rgba(31,38,135,0.07)] transition-all duration-500 hover:shadow-[0_8px_32px_0_rgba(31,38,135,0.15)] hover:-translate-y-1">
<h1
class="max-w-2xl text-4xl sm:text-5xl md:text-6xl font-extrabold leading-tight text-zinc-800 dark:text-white drop-shadow-sm relative tracking-tight">
{{ siteConfig.hero.title }}
</h1>
<div class="mt-4 flex justify-center">
<div
class="h-1 w-12 bg-gradient-to-r from-violet-500 to-fuchsia-500 rounded-full opacity-60"></div>
</div>
<p
class="mt-4 max-w-2xl text-base sm:text-lg text-zinc-600 dark:text-zinc-300 relative font-medium leading-relaxed">
{{ siteConfig.hero.description }}
</p>
</div>
<div class="mt-6 w-full flex items-center justify-center">
<SocialLinks />
</div>
</div>
</div>
</div>
<!-- Decorative wave -->
<!-- <div class="pointer-events-none absolute inset-x-0 bottom-0 -mb-1">
<svg viewBox="0 0 1440 120" class="w-full h-20" preserveAspectRatio="none">
<path
d="M0,32L48,42.7C96,53,192,75,288,90.7C384,107,480,117,576,117.3C672,117,768,107,864,101.3C960,96,1056,96,1152,80C1248,64,1344,32,1392,16L1440,0L1440,120L1392,120C1344,120,1248,120,1152,120C1056,120,960,120,864,120C768,120,672,120,576,120C480,120,384,120,288,120C192,120,96,120,48,120L0,120Z"
fill="rgba(255,255,255,0.14)"
/>
</svg>
</div> -->
</section>
</template>

View File

@@ -1,82 +1,101 @@
<script lang="ts" setup>
import type { BlogPost } from '~/types/blog'
import type { BlogPost } from "~/types/blog";
// Function to parse dates in the format "1st Mar 2023"
function parseCustomDate(dateStr: string): Date {
// Remove ordinal indicators (st, nd, rd, th)
const cleanDateStr = dateStr.replace(/(\d+)(st|nd|rd|th)/, '$1')
const cleanDateStr = dateStr.replace(/(\d+)(st|nd|rd|th)/, "$1");
// Parse the date
return new Date(cleanDateStr)
return new Date(cleanDateStr);
}
// Get Last 6 Publish Post from the content/blog directory
const { data } = await useAsyncData('recent-post', () =>
queryCollection('content')
const { data } = await useAsyncData("recent-post", () =>
queryCollection("content")
.all()
.then((data) => {
return data
.sort((a, b) => {
const aDate = parseCustomDate(a.meta.date as string)
const bDate = parseCustomDate(b.meta.date as string)
return bDate.getTime() - aDate.getTime()
const aDate = parseCustomDate(a.meta.date as string);
const bDate = parseCustomDate(b.meta.date as string);
return bDate.getTime() - aDate.getTime();
})
.slice(0, 3)
.slice(0, 3);
}),
)
);
const formattedData = computed(() => {
return data.value?.map((articles) => {
const meta = articles.meta as unknown as BlogPost
const meta = articles.meta as unknown as BlogPost;
return {
path: articles.path,
title: articles.title || 'no-title available',
description: articles.description || 'no-description available',
image: meta.image || '/not-found.jpg',
alt: meta.alt || 'no alter data available',
ogImage: meta.ogImage || '/not-found.jpg',
date: meta.date || 'not-date-available',
title: articles.title || "no-title available",
description: articles.description || "no-description available",
image: meta.image || "/not-found.jpg",
alt: meta.alt || "no alter data available",
ogImage: meta.ogImage || "/not-found.jpg",
date: meta.date || "not-date-available",
tags: meta.tags || [],
published: meta.published || false,
}
})
})
};
});
});
useHead({
title: 'Home',
title: "Home",
meta: [
{
name: 'description',
name: "description",
content:
'Welcome To My Blog Site. Get Web Development, Javascript, Typescript, NodeJs, Vue, and Nuxt, Related Articles, Tips, Learning resources and more.',
"Welcome To My Blog Site. Get Web Development, Javascript, Typescript, NodeJs, Vue, and Nuxt, Related Articles, Tips, Learning resources and more.",
},
],
})
});
</script>
<template>
<div class="pb-10 px-4">
<div class="flex flex-row items-center space-x-3 pt-5 pb-3">
<Icon name="mdi:star-three-points-outline" size="2em" class="text-black dark:text-zinc-300" />
<h2 class="text-4xl font-semibold text-black dark:text-zinc-300">Recent Post</h2>
<section class="pb-10 px-4">
<div class="flex flex-row items-center justify-between pt-10 pb-6">
<div class="flex items-center space-x-3">
<div class="p-2 bg-violet-500/10 rounded-lg">
<Icon
name="mdi:star-three-points-outline"
size="1.5em"
class="text-violet-600 dark:text-violet-400" />
</div>
<h2 class="text-3xl font-bold text-zinc-800 dark:text-zinc-100 tracking-tight">
Recent Posts
</h2>
</div>
<NuxtLink
to="/blogs"
class="group flex items-center gap-1 text-sm font-semibold text-violet-600 dark:text-violet-400 hover:text-violet-700 transition-colors">
查看全部文章
<Icon
name="heroicons:arrow-right-20-solid"
class="transition-transform group-hover:translate-x-1" />
</NuxtLink>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3">
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<template v-for="post in formattedData" :key="post.title">
<BlogCard
:path="post.path"
:title="post.title"
:date="post.date"
:description="post.description"
:image="post.image"
:alt="post.alt"
:og-image="post.ogImage"
:tags="post.tags"
:published="post.published"
/>
<div
class="transition-transform transform hover:scale-[1.02] hover:shadow-lg rounded-lg overflow-hidden">
<BlogCard
:path="post.path"
:title="post.title"
:date="post.date"
:description="post.description"
:image="post.image"
:alt="post.alt"
:og-image="post.ogImage"
:tags="post.tags"
:published="post.published" />
</div>
</template>
<template v-if="data?.length === 0">
<BlogEmpty />
</template>
</div>
</div>
</section>
</template>

View File

@@ -1,62 +0,0 @@
<script lang="ts" setup>
import type { BlogPost } from '~/types/blog'
const { data } = await useAsyncData('trending-post', () =>
queryCollection('content').limit(3).all(),
)
const formattedData = computed(() => {
return data.value?.map((articles) => {
const meta = articles.meta as unknown as BlogPost
return {
path: articles.path,
title: articles.title || 'no-title available',
description: articles.description || 'no-description available',
image: meta.image || '/not-found.jpg',
alt: meta.alt || 'no alter data available',
ogImage: meta.ogImage || '/not-found.jpg',
date: meta.date || 'not-date-available',
tags: meta.tags || [],
published: meta.published || false,
}
})
})
useHead({
title: 'Home',
meta: [
{
name: 'description',
content:
'Welcome To My Blog Site. Get Web Development, Javascript, Typescript, NodeJs, Vue, and Nuxt, Related Articles, Tips, Learning resources and more.',
},
],
})
</script>
<template>
<div class="px-4">
<div class="flex flex-row items-center space-x-3 pt-5 pb-3">
<Icon name="mdi:star-three-points-outline" size="2em" class="text-black dark:text-zinc-300" />
<h2 class="text-4xl font-semibold text-black dark:text-zinc-300">Trending Post</h2>
</div>
<div class="grid grid-cols-1">
<template v-for="post in formattedData" :key="post.title">
<ArchiveCard
:path="post.path"
:title="post.title"
:date="post.date"
:description="post.description"
:image="post.image"
:alt="post.alt"
:og-image="post.ogImage"
:tags="post.tags"
:published="post.published"
/>
</template>
<template v-if="data?.length === 0">
<BlogEmpty />
</template>
</div>
</div>
</template>

63
app/config/index.ts Normal file
View File

@@ -0,0 +1,63 @@
const siteConfig = {
siteMeta: {
title: "RhenCloud's Blog",
description:
"Welcome To My Blog Site. Get Web Development, Javascript, Typescript, NodeJs, Vue, and Nuxt, Related Articles, Tips, Learning resources and more.",
author: "RhenCloud",
url: "https://blog.rhen.cloud",
},
hero: {
title: "RhenCloud's Blog",
description: "Your Solution Answer Exists And Only.",
},
profile: {
avatar: "/avatar.webp",
bio: "",
email: "i@rhen.cloud",
birthday: "2010-03-28",
},
socialLinks: [
{ name: "GitHub", url: "https://github.com/RhenCloud" },
{ name: "Email", url: "mailto:i@rhen.cloud" },
{ name: "Telegram", url: "https://t.me/RhenCloud" },
{ name: "Bilibili", url: "https://space.bilibili.com/1502883335" },
{ name: "Blog", url: "https://blog.rhen.cloud" },
],
navbar: {
links: [
// { name: "Home", path: "/", icon: "fa6-solid:house" },
{ name: "Blogs", path: "/blogs", icon: "fa-solid:newspaper" },
{ name: "Categories", path: "/categories", icon: "fa-solid:folder" },
{ name: "Tags", path: "/tags", icon: "fa-solid:tags" },
{ name: "About", path: "/about", icon: "fa-solid:user" },
],
},
theme: {
background: "/background.webp",
backgroundMobile: "",
},
footer: {
beian: "津ICP备2025039003号-1",
beianLink: "https://beian.miit.gov.cn/",
customHtml: '<span style="opacity:.8">© 2025 <a href="https://rhen.cloud">RhenCloud</a></span>',
hitokoto: {
enable: true,
type: "a&b&c&d&j",
},
},
umami: {
enable: false,
url: "https://cloud.umami.is/script.js",
websiteId: "ddcd51c3-ccc7-45e4-81e6-11567027f69b",
apiBase: "https://api.umami.is",
},
};
export default siteConfig;

View File

@@ -1,40 +1,47 @@
export const navbarData = {
homeTitle: "Riyad's Blog",
}
// export const navbarData = {
// homeTitle: "Riyad's Blog",
// };
// export const navItems = [
// { label: "Home", path: "/" },
// { label: "Blogs", path: "/blogs" },
// { label: "Categories", path: "/categories" },
// { label: "About", path: "/about" },
// ];
export const footerData = {
author: 'Al Asad Nur Riyad',
author: "Al Asad Nur Riyad",
aboutAuthor:
'Hi! I am Riyad, a Tech enthusiast, problem solver and software engineer. Currently working at FieldNation LLC.',
"Hi! I am Riyad, a Tech enthusiast, problem solver and software engineer. Currently working at FieldNation LLC.",
authorInterest:
"I have a fair amount of knowledge of Javascript, Typescript, VueJs, and Nuxt. If you have an interesting idea, either open source or paid let's connect.",
aboutTheSite:
"This is a personal blog site built with Nuxt3, TailwindCSS, NuxtContent, Nuxt Icon. Currently it's deployed in Vercel.",
}
};
export const homePage = {
title: 'Welcome To My Blog Site',
description:
'Get Web Development, Javascript, Typescript, NodeJs, Vue, and Nuxt, Related Articles, Tips, Learning resources and more.',
}
// export const homePage = {
// title: "Welcome To My Blog Site",
// description:
// "Get Web Development, Javascript, Typescript, NodeJs, Vue, and Nuxt, Related Articles, Tips, Learning resources and more.",
// };
export const blogsPage = {
title: 'All Blogs',
description: 'Here you will find all the blog posts I have written & published on this site.',
}
title: "All Blogs",
description: "Here you will find all the blog posts I have written & published on this site.",
};
export const categoryPage = {
title: 'Categories',
title: "Categories",
description:
'Blow this category is generated from all the tags are mentioned in the different blog post',
}
"Blow this category is generated from all the tags are mentioned in the different blog post",
};
export const aboutPage = {
title: 'Al Asad Nur Riyad',
description: 'Software Engineer, Problem Solver, Web Enthusiast.',
title: "Al Asad Nur Riyad",
description: "Software Engineer, Problem Solver, Web Enthusiast.",
aboutMe:
"Hello, fellow human! I'm a software wizard who spends most of his day crafting code spells at @FieldNation in the Workplace Operation team. When I'm not crafting code, you can find me summoning solutions to problems on online judges. Just don't ask me to cast any love spells, my magic only works on machines!",
}
};
export const seoData = {
title: `Riyad's Blog | Riyads Blog`,
@@ -42,60 +49,60 @@ export const seoData = {
description: `Hi I am Riyad. A Software Engineer at FieldNation, with over 3.5+ years experience in software development. - Riyads Blog | Riyad's Blog`,
twitterDescription: `Riyad's Blog, where I play around with Nuxt, Vue, and more and showcase my blog, resources, etc - Riyads Blog | Riyad's Blog`,
image:
'https://res.cloudinary.com/dmecmyphj/image/upload/v1673548905/nuxt-blog/cover_ntgs6u.webp',
mySite: 'https://blog-nurriyad.vercel.app',
twitterHandle: '@qdnvubp',
mailAddress: 'asadnurriyad@gmail.com',
}
"https://res.cloudinary.com/dmecmyphj/image/upload/v1673548905/nuxt-blog/cover_ntgs6u.webp",
mySite: "https://blog-nurriyad.vercel.app",
twitterHandle: "@qdnvubp",
mailAddress: "asadnurriyad@gmail.com",
};
export const socialLinks = {
githubLink: 'https://github.com/nurRiyad',
linkedinLink: 'https://www.linkedin.com/in/nur-riyad/',
twitterLink: 'https://twitter.com/qdnvubp',
stackoverflowLink: 'https://stackoverflow.com/users/16781395/nur-riyad',
}
// export const socialLinks = {
// githubLink: "https://github.com/nurRiyad",
// linkedinLink: "https://www.linkedin.com/in/nur-riyad/",
// twitterLink: "https://twitter.com/qdnvubp",
// stackoverflowLink: "https://stackoverflow.com/users/16781395/nur-riyad",
// };
export const siteMetaData = [
{
name: 'description',
name: "description",
content: seoData.description,
},
// Test on: https://developers.facebook.com/tools/debug/ or https://socialsharepreview.com/
{ property: 'og:site_name', content: seoData.mySite },
{ property: 'og:type', content: 'website' },
{ property: "og:site_name", content: seoData.mySite },
{ property: "og:type", content: "website" },
{
property: 'og:url',
property: "og:url",
content: seoData.mySite,
},
{
property: 'og:title',
property: "og:title",
content: seoData.ogTitle,
},
{
property: 'og:description',
property: "og:description",
content: seoData.description,
},
{
property: 'og:image',
property: "og:image",
content: seoData.image,
},
// Test on: https://cards-dev.twitter.com/validator or https://socialsharepreview.com/
{ name: 'twitter:site', content: seoData.twitterHandle },
{ name: 'twitter:card', content: 'summary_large_image' },
{ name: "twitter:site", content: seoData.twitterHandle },
{ name: "twitter:card", content: "summary_large_image" },
{
name: 'twitter:url',
name: "twitter:url",
content: seoData.mySite,
},
{
name: 'twitter:title',
name: "twitter:title",
content: seoData.ogTitle,
},
{
name: 'twitter:description',
name: "twitter:description",
content: seoData.twitterDescription,
},
{
name: 'twitter:image',
name: "twitter:image",
content: seoData.image,
},
]
];

View File

@@ -1,15 +1,27 @@
<script setup lang="ts">
const route = useRoute();
</script>
<template>
<div class="gd-container font-spacegrotesk">
<header class="fixed w-full bg-[#F1F2F4] dark:bg-slate-950 z-10">
<MainHeader />
</header>
<div class="gd-container font-spacegrotesk relative">
<MainHeader />
<main>
<div class="p-9" />
<slot />
</main>
<footer>
<MainFooter />
</footer>
<!-- 全局遮罩 -->
<div
class="absolute inset-0 pointer-events-none -z-10 transition-all duration-700 ease-in-out"
:style="route.path === '/' ? { clipPath: 'inset(100vh 0 0 0)' } : {}">
<!-- 基础渐变层 -->
<div
class="absolute inset-0 bg-gradient-to-b from-white/70 via-white/50 to-white/80 dark:from-slate-900/80 dark:via-slate-900/70 dark:to-slate-900/90 backdrop-blur-xl"></div>
<!-- 纹理层增加质感 -->
<div class="absolute inset-0 opacity-[0.03] dark:opacity-[0.05] mix-blend-overlay"></div>
</div>
</div>
</template>

View File

@@ -1,19 +1,19 @@
<script setup lang="ts">
useHead({
title: '404',
title: "404",
meta: [
{
name: 'description',
content: 'Page not found',
name: "description",
content: "Page not found",
},
],
})
});
defineOgImageComponent('About', {
headline: 'Wrong Path',
title: '404',
description: 'Page Not Found',
})
defineOgImageComponent("About", {
headline: "Wrong Path",
title: "404",
description: "Page Not Found",
});
</script>
<template>

View File

@@ -1,22 +1,15 @@
<script setup lang="ts">
import { aboutPage, footerData, navbarData, socialLinks } from '~/data'
import { aboutPage, footerData, navbarData, socialLinks } from "~/data";
useHead({
title: 'About',
title: "About",
meta: [
{
name: 'description',
name: "description",
content: footerData.aboutAuthor,
},
],
})
defineOgImageComponent('About', {
headline: 'Greetings 👋',
title: navbarData.homeTitle,
description: 'Dive into web development with me and learn Js, Ts, Vue, Nuxt, Docker, k8s',
link: '/riyad.jpg',
})
});
</script>
<template>
@@ -34,32 +27,28 @@ defineOgImageComponent('About', {
:to="socialLinks.githubLink"
target="_blank"
class="px-2 py-1 lg:px-3 lg:py-2 bg-gray-300 text-gray-800 rounded-md dark:bg-slate-700 dark:text-[#F1F2F4]"
aria-label="Github"
>
aria-label="Github">
<Icon name="fa:github" size="1em" class="-translate-y-[-10%]" />
</NuxtLink>
<NuxtLink
:to="socialLinks.linkedinLink"
target="_blank"
class="px-2 py-1 lg:px-3 lg:py-2 bg-gray-300 text-gray-800 rounded-md dark:bg-slate-700 dark:text-[#F1F2F4]"
aria-label="LinkedIn"
>
aria-label="LinkedIn">
<Icon name="fa:linkedin-square" size="1em" class="-translate-y-[-10%]" />
</NuxtLink>
<NuxtLink
:to="socialLinks.twitterLink"
target="_blank"
class="px-2 py-1 lg:px-3 lg:py-2 bg-gray-300 text-gray-800 rounded-md dark:bg-slate-700 dark:text-[#F1F2F4]"
aria-label="Twitter"
>
aria-label="Twitter">
<Icon name="fa:twitter-square" size="1em" class="-translate-y-[-10%]" />
</NuxtLink>
<NuxtLink
:to="socialLinks.stackoverflowLink"
target="_blank"
class="px-2 py-1 lg:px-3 lg:py-2 bg-gray-300 text-gray-800 rounded-md dark:bg-slate-700 dark:text-[#F1F2F4]"
aria-label="StackOverflow"
>
aria-label="StackOverflow">
<Icon name="fa:stack-overflow" size="1em" class="-translate-y-[-10%]" />
</NuxtLink>
</div>

View File

@@ -1,128 +1,88 @@
<script setup lang="ts">
import type { BlogPost } from '@/types/blog'
import { navbarData, seoData } from '~/data'
import type { BlogPost } from "@/types/blog";
import { seoData } from "~/data";
const { path } = useRoute()
const { path } = useRoute();
const { data: articles, error } = await useAsyncData(`blog-post-${path}`, () =>
queryCollection('content').path(path).first(),
)
queryCollection("content").path(path).first(),
);
if (error.value) navigateTo('/404')
if (error.value) navigateTo("/404");
const data = computed<BlogPost>(() => {
const meta = articles?.value?.meta as unknown as BlogPost
const meta = articles?.value?.meta as unknown as BlogPost;
return {
title: articles.value?.title || 'no-title available',
description: articles.value?.description || 'no-description available',
image: meta?.image || '/not-found.jpg',
alt: meta?.alt || 'no alter data available',
ogImage: (articles?.value?.ogImage as unknown as string) || '/not-found.jpg',
date: meta?.date || 'not-date-available',
title: articles.value?.title || "no-title available",
description: articles.value?.description || "no-description available",
image: meta?.image || "/not-found.jpg",
alt: meta?.alt || "no alter data available",
ogImage: (articles?.value?.ogImage as unknown as string) || "/not-found.jpg",
date: meta?.date || "not-date-available",
tags: meta?.tags || [],
published: meta?.published || false,
}
})
};
});
useHead({
title: data.value.title || '',
title: data.value.title || "",
meta: [
{ name: 'description', content: data.value.description },
{ name: "description", content: data.value.description },
{
name: 'description',
name: "description",
content: data.value.description,
},
// Test on: https://developers.facebook.com/tools/debug/ or https://socialsharepreview.com/
{ property: 'og:site_name', content: navbarData.homeTitle },
{ property: 'og:type', content: 'website' },
{
property: 'og:url',
content: `${seoData.mySite}/${path}`,
},
{
property: 'og:title',
content: data.value.title,
},
{
property: 'og:description',
content: data.value.description,
},
{
property: 'og:image',
content: data.value.ogImage || data.value.image,
},
// Test on: https://cards-dev.twitter.com/validator or https://socialsharepreview.com/
{ name: 'twitter:site', content: '@qdnvubp' },
{ name: 'twitter:card', content: 'summary_large_image' },
{
name: 'twitter:url',
content: `${seoData.mySite}/${path}`,
},
{
name: 'twitter:title',
content: data.value.title,
},
{
name: 'twitter:description',
content: data.value.description,
},
{
name: 'twitter:image',
content: data.value.ogImage || data.value.image,
},
],
link: [
{
rel: 'canonical',
rel: "canonical",
href: `${seoData.mySite}/${path}`,
},
],
})
});
// console.log(articles.value)
// Generate OG Image
defineOgImageComponent('Test', {
headline: 'Riyads Blog 👋',
title: articles.value?.seo.title || '',
description: articles.value?.seo.description || '',
link: data.value.ogImage,
})
</script>
<template>
<div class="px-6 container max-w-5xl mx-auto sm:grid grid-cols-12 gap-x-12">
<div class="col-span-12 lg:col-span-9">
<div class="px-6 container max-w-6xl mx-auto sm:grid grid-cols-12 gap-x-12">
<div class="col-span-12 lg:col-span-8">
<BlogHeader
:title="data.title"
:image="data.image"
:alt="data.alt"
:date="data.date"
:description="data.description"
:tags="data.tags"
/>
:tags="data.tags" />
<div
class="prose prose-pre:max-w-xs sm:prose-pre:max-w-full prose-sm sm:prose-base md:prose-lg prose-h1:no-underline max-w-5xl mx-auto prose-zinc dark:prose-invert prose-img:rounded-lg"
>
class="prose prose-zinc dark:prose-invert max-w-none prose-headings:scroll-mt-28 prose-headings:tracking-tight prose-headings:font-bold prose-h1:text-4xl prose-h2:text-3xl prose-h3:text-2xl prose-p:leading-relaxed prose-p:text-zinc-600 dark:prose-p:text-zinc-400 prose-a:text-violet-600 dark:prose-a:text-violet-400 prose-a:no-underline hover:prose-a:underline prose-blockquote:border-l-4 prose-blockquote:border-violet-500 prose-blockquote:bg-violet-500/5 prose-blockquote:py-1 prose-blockquote:px-6 prose-blockquote:rounded-r-xl prose-blockquote:italic prose-img:rounded-3xl prose-img:shadow-xl prose-code:text-violet-600 dark:prose-code:text-violet-400 prose-code:bg-violet-500/10 prose-code:px-1.5 prose-code:py-0.5 prose-code:rounded-md prose-code:before:content-none prose-code:after:content-none prose-pre:bg-slate-900 dark:prose-pre:bg-slate-950 prose-pre:rounded-2xl prose-pre:shadow-2xl prose-pre:border prose-pre:border-white/5">
<ContentRenderer v-if="articles" :value="articles">
<template #empty>
<p>No content found.</p>
</template>
</ContentRenderer>
</div>
</div>
<BlogToc />
<div class="flex flex-row flex-wrap md:flex-nowrap mt-10 gap-2">
<SocialShare
v-for="network in ['facebook', 'twitter', 'linkedin', 'email']"
:key="network"
:network="network"
:styled="true"
:label="true"
class="p-1"
aria-label="Share with {network}"
/>
<!-- 分享区域 -->
<div class="mt-16 pt-8 border-t border-white/10 dark:border-white/5">
<h3 class="text-lg font-bold text-zinc-800 dark:text-zinc-100 mb-6 flex items-center gap-2">
<Icon name="heroicons:share" class="w-5 h-5 text-violet-500" />
Share this post
</h3>
<div class="flex flex-wrap gap-3">
<SocialShare
v-for="network in ['facebook', 'twitter', 'linkedin', 'email']"
:key="network"
:network="network"
:styled="true"
:label="true"
class="!rounded-xl !bg-white/40 dark:!bg-slate-800/40 !backdrop-blur-md !border !border-white/20 dark:!border-white/5 !text-zinc-700 dark:!text-zinc-300 hover:!bg-violet-500/10 hover:!text-violet-600 transition-all duration-300"
aria-label="Share with {network}" />
</div>
</div>
</div>
<!-- 侧边目录 -->
<BlogToc />
</div>
</template>

View File

@@ -1,88 +1,88 @@
<script lang="ts" setup>
import Fuse from 'fuse.js'
import type { BlogPost } from '~/types/blog'
import Fuse from "fuse.js";
import type { BlogPost } from "~/types/blog";
const { data } = await useAsyncData('all-blog-post', () => queryCollection('content').all())
const { data } = await useAsyncData("all-blog-post", () => queryCollection("content").all());
const elementPerPage = ref(5)
const pageNumber = ref(1)
const searchTest = ref('')
const elementPerPage = ref(5);
const pageNumber = ref(1);
const searchTest = ref("");
const formattedData = computed(() => {
return (
data.value?.map((articles) => {
const meta = articles.meta as unknown as BlogPost
const meta = articles.meta as unknown as BlogPost;
return {
path: articles.path,
title: articles.title || 'no-title available',
description: articles.description || 'no-description available',
image: meta.image || '/not-found.jpg',
alt: meta.alt || 'no alter data available',
ogImage: meta.ogImage || '/not-found.jpg',
date: meta.date || 'not-date-available',
title: articles.title || "no-title available",
description: articles.description || "no-description available",
image: meta.image || "/not-found.jpg",
alt: meta.alt || "no alter data available",
ogImage: meta.ogImage || "/not-found.jpg",
date: meta.date || "not-date-available",
tags: meta.tags || [],
published: meta.published || false,
}
};
}) || []
)
})
);
});
const fuse = computed(() => {
return new Fuse(formattedData.value, {
keys: ['title', 'description'],
keys: ["title", "description"],
threshold: 0.4,
includeScore: false,
})
})
});
});
const searchData = computed(() => {
if (!searchTest.value.trim()) {
return formattedData.value
return formattedData.value;
}
const results = fuse.value.search(searchTest.value)
return results.map((result) => result.item)
})
const results = fuse.value.search(searchTest.value);
return results.map((result) => result.item);
});
const paginatedData = computed(() => {
const startInd = (pageNumber.value - 1) * elementPerPage.value
const endInd = pageNumber.value * elementPerPage.value
const startInd = (pageNumber.value - 1) * elementPerPage.value;
const endInd = pageNumber.value * elementPerPage.value;
return searchData.value.slice(startInd, endInd)
})
return searchData.value.slice(startInd, endInd);
});
function onPreviousPageClick() {
if (pageNumber.value > 1) pageNumber.value -= 1
if (pageNumber.value > 1) pageNumber.value -= 1;
}
const totalPage = computed(() => {
const ttlContent = searchData.value.length || 0
return Math.ceil(ttlContent / elementPerPage.value)
})
const ttlContent = searchData.value.length || 0;
return Math.ceil(ttlContent / elementPerPage.value);
});
function onNextPageClick() {
if (pageNumber.value < totalPage.value) pageNumber.value += 1
if (pageNumber.value < totalPage.value) pageNumber.value += 1;
}
useHead({
title: 'Archive',
title: "Archive",
meta: [
{
name: 'description',
content: 'Here you will find all the blog posts I have written & published on this site.',
name: "description",
content: "Here you will find all the blog posts I have written & published on this site.",
},
],
})
});
// Generate OG Image
const siteData = useSiteConfig()
const siteData = useSiteConfig();
defineOgImage({
props: {
title: 'Archive',
description: 'Here you will find all the blog posts I have written & published on this site.',
title: "Archive",
description: "Here you will find all the blog posts I have written & published on this site.",
siteName: siteData.url,
},
})
});
</script>
<template>
@@ -94,8 +94,7 @@ defineOgImage({
v-model="searchTest"
placeholder="Search"
type="text"
class="block w-full bg-[#F1F2F4] dark:bg-slate-900 dark:placeholder-zinc-500 text-zinc-300 rounded-md border-gray-300 dark:border-gray-800 shadow-sm focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50"
/>
class="block w-full bg-[#F1F2F4] dark:bg-slate-900 dark:placeholder-zinc-500 text-zinc-300 rounded-md border-gray-300 dark:border-gray-800 shadow-sm focus:border-indigo-300 focus:ring focus:ring-indigo-200 focus:ring-opacity-50" />
</div>
<div v-auto-animate class="space-y-5 my-5 px-4">
@@ -109,8 +108,7 @@ defineOgImage({
:alt="post.alt"
:og-image="post.ogImage"
:tags="post.tags"
:published="post.published"
/>
:published="post.published" />
</template>
<ArchiveCard v-if="paginatedData.length <= 0" title="No Post Found" image="/not-found.jpg" />
@@ -121,16 +119,14 @@ defineOgImage({
<Icon
name="mdi:code-less-than"
size="30"
:class="{ 'text-sky-700 dark:text-sky-400': pageNumber > 1 }"
/>
:class="{ 'text-sky-700 dark:text-sky-400': pageNumber > 1 }" />
</button>
<p>{{ pageNumber }} / {{ totalPage }}</p>
<button :disabled="pageNumber >= totalPage" @click="onNextPageClick">
<Icon
name="mdi:code-greater-than"
size="30"
:class="{ 'text-sky-700 dark:text-sky-400': pageNumber < totalPage }"
/>
:class="{ 'text-sky-700 dark:text-sky-400': pageNumber < totalPage }" />
</button>
</div>
</main>

View File

@@ -1,64 +1,64 @@
<script lang="ts" setup>
import type { BlogPost } from '@/types/blog'
const route = useRoute()
import type { BlogPost } from "@/types/blog";
const route = useRoute();
// take category from route params & make first char upper
const category = computed(() => {
const name = route.params.category || ''
let strName = ''
const name = route.params.category || "";
let strName = "";
if (Array.isArray(name)) strName = name.at(0) || ''
else strName = name
return strName
})
if (Array.isArray(name)) strName = name.at(0) || "";
else strName = name;
return strName;
});
const { data } = await useAsyncData(`category-data-${category.value}`, () =>
queryCollection('content')
queryCollection("content")
.all()
.then((articles) =>
articles.filter((article) => {
const meta = article.meta as unknown as BlogPost
return meta.tags.includes(category.value)
const meta = article.meta as unknown as BlogPost;
return meta.tags.includes(category.value);
}),
),
)
);
const formattedData = computed(() => {
return data.value?.map((articles) => {
const meta = articles.meta as unknown as BlogPost
const meta = articles.meta as unknown as BlogPost;
return {
path: articles.path,
title: articles.title || 'no-title available',
description: articles.description || 'no-description available',
image: meta.image || '/blogs-img/blog.jpg',
alt: meta.alt || 'no alter data available',
ogImage: meta.ogImage || '/blogs-img/blog.jpg',
date: meta.date || 'not-date-available',
title: articles.title || "no-title available",
description: articles.description || "no-description available",
image: meta.image || "/blogs-img/blog.jpg",
alt: meta.alt || "no alter data available",
ogImage: meta.ogImage || "/blogs-img/blog.jpg",
date: meta.date || "not-date-available",
tags: meta.tags || [],
published: meta.published || false,
}
})
})
};
});
});
useHead({
title: category.value,
meta: [
{
name: 'description',
name: "description",
content: `You will find all the ${category.value} related post here`,
},
],
})
});
// Generate OG Image
const siteData = useSiteConfig()
const siteData = useSiteConfig();
defineOgImage({
props: {
title: category.value?.toUpperCase(),
description: `You will find all the ${category.value} related post here`,
siteName: siteData.url,
},
})
});
</script>
<template>
@@ -76,8 +76,7 @@ defineOgImage({
:alt="post.alt"
:og-image="post.ogImage"
:tags="post.tags"
:published="post.published"
/>
:published="post.published" />
<BlogEmpty v-if="data?.length === 0" />
</div>
</main>

View File

@@ -1,45 +1,45 @@
<script lang="ts" setup>
import { makeFirstCharUpper } from '@/utils/helper'
import { makeFirstCharUpper } from "@/utils/helper";
const { data } = await useAsyncData('all-blog-post-by-category', () =>
queryCollection('content').all(),
)
const { data } = await useAsyncData("all-blog-post-by-category", () =>
queryCollection("content").all(),
);
const allTags = new Map()
const allTags = new Map();
data.value?.forEach((blog) => {
const tags: Array<string> = (blog.meta.tags as string[]) || []
const tags: Array<string> = (blog.meta.tags as string[]) || [];
tags.forEach((tag) => {
if (allTags.has(tag)) {
const cnt = allTags.get(tag)
allTags.set(tag, cnt + 1)
const cnt = allTags.get(tag);
allTags.set(tag, cnt + 1);
} else {
allTags.set(tag, 1)
allTags.set(tag, 1);
}
})
})
});
});
useHead({
title: 'Categories',
title: "Categories",
meta: [
{
name: 'description',
name: "description",
content:
'Below All the topics are listed on which either I have written a blog or will write a blog in near future.',
"Below All the topics are listed on which either I have written a blog or will write a blog in near future.",
},
],
})
});
// Generate OG Image
const siteData = useSiteConfig()
const siteData = useSiteConfig();
defineOgImage({
props: {
title: 'Categories',
title: "Categories",
description:
'Below All the topics are listed on which either I have written a blog or will write a blog in near future.',
"Below All the topics are listed on which either I have written a blog or will write a blog in near future.",
siteName: siteData.url,
},
})
});
</script>
<template>
@@ -50,8 +50,7 @@ defineOgImage({
v-for="topic in allTags"
:key="topic[0]"
:title="makeFirstCharUpper(topic[0])"
:count="topic[1]"
/>
:count="topic[1]" />
</div>
</main>
</template>

View File

@@ -1,30 +1,16 @@
<script lang="ts" setup>
import { navbarData } from '~/data'
useHead({
title: 'Home',
meta: [
{
name: 'description',
content:
'Welcome To My Blog Site. Get Web Development, Javascript, Typescript, NodeJs, Vue, and Nuxt, Related Articles, Tips, Learning resources and more.',
},
],
})
// Generate OG Image
defineOgImageComponent('About', {
headline: 'Greetings 👋',
title: navbarData.homeTitle,
description: 'Dive into web development with me and learn Js, Ts, Vue, Nuxt, Docker, k8s',
link: '/riyad.jpg',
})
</script>
<script lang="ts" setup></script>
<template>
<main class="container max-w-5xl mx-auto text-zinc-600">
<MainHero />
<MainRecent />
<MainTrending />
</main>
<div class="relative">
<main>
<MainHero />
<div class="relative">
<div class="container max-w-5xl mx-auto text-zinc-600 px-4 py-8 relative z-10">
<MainRecent />
<MainTechInfo />
</div>
</div>
</main>
</div>
</template>

101
app/pages/tags/[tag].vue Normal file
View File

@@ -0,0 +1,101 @@
<script lang="ts" setup>
import type { BlogPost } from "@/types/blog";
import { makeFirstCharUpper } from "@/utils/helper";
const route = useRoute();
const tag = computed(() => {
const name = route.params.tag || "";
let strName = "";
if (Array.isArray(name)) strName = name.at(0) || "";
else strName = name;
return strName;
});
const { data } = await useAsyncData(`tag-data-${tag.value}`, () =>
queryCollection("content")
.all()
.then((articles) =>
articles.filter((article) => {
const meta = article.meta as unknown as BlogPost;
return meta.tags.some((t) => t.toLowerCase() === tag.value.toLowerCase());
}),
),
);
const formattedData = computed(() => {
return data.value?.map((articles) => {
const meta = articles.meta as unknown as BlogPost;
return {
path: articles.path,
title: articles.title || "no-title available",
description: articles.description || "no-description available",
image: meta.image || "/blogs-img/blog.jpg",
alt: meta.alt || "no alter data available",
ogImage: meta.ogImage || "/blogs-img/blog.jpg",
date: meta.date || "not-date-available",
tags: meta.tags || [],
published: meta.published || false,
};
});
});
useHead({
title: `Tag: ${makeFirstCharUpper(tag.value)}`,
meta: [
{
name: "description",
content: `Explore all posts tagged with ${tag.value}`,
},
],
});
// Generate OG Image
const siteData = useSiteConfig();
defineOgImage({
props: {
title: `Tag: ${tag.value?.toUpperCase()}`,
description: `Explore all posts tagged with ${tag.value}`,
siteName: siteData.url,
},
});
</script>
<template>
<main class="container max-w-5xl mx-auto text-zinc-600 px-4 py-12">
<div class="flex flex-col items-center mb-12">
<NuxtLink
to="/tags"
class="flex items-center gap-2 text-sm font-bold text-violet-600 dark:text-violet-400 hover:underline mb-4">
<Icon name="heroicons:arrow-left-20-solid" />
Back to all tags
</NuxtLink>
<div class="p-3 bg-violet-500/10 rounded-2xl mb-4">
<Icon name="fa-solid:tag" size="2.5em" class="text-violet-600 dark:text-violet-400" />
</div>
<h1
class="text-4xl md:text-5xl font-bold text-zinc-800 dark:text-zinc-100 mb-4 tracking-tight">
#{{ makeFirstCharUpper(tag) }}
</h1>
<p class="text-zinc-600 dark:text-zinc-400 text-center">
Found {{ data?.length || 0 }} posts with this tag
</p>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<BlogCard
v-for="post in formattedData"
:key="post.title"
:path="post.path"
:title="post.title"
:date="post.date"
:description="post.description"
:image="post.image"
:alt="post.alt"
:og-image="post.ogImage"
:tags="post.tags"
:published="post.published" />
<BlogEmpty v-if="data?.length === 0" />
</div>
</main>
</template>

75
app/pages/tags/index.vue Normal file
View File

@@ -0,0 +1,75 @@
<script lang="ts" setup>
import { makeFirstCharUpper } from "@/utils/helper";
const { data } = await useAsyncData("all-blog-post-by-tags", () =>
queryCollection("content").all(),
);
const allTags = new Map();
data.value?.forEach((blog) => {
const tags: Array<string> = (blog.meta.tags as string[]) || [];
tags.forEach((tag) => {
if (allTags.has(tag)) {
const cnt = allTags.get(tag);
allTags.set(tag, cnt + 1);
} else {
allTags.set(tag, 1);
}
});
});
useHead({
title: "Tags",
meta: [
{
name: "description",
content: "Explore all the tags used in the blog posts.",
},
],
});
// Generate OG Image
const siteData = useSiteConfig();
defineOgImage({
props: {
title: "Tags",
description: "Explore all the tags used in the blog posts.",
siteName: siteData.url,
},
});
</script>
<template>
<main class="container max-w-5xl mx-auto text-zinc-600 px-4 py-12">
<div class="flex flex-col items-center mb-12">
<div class="p-3 bg-violet-500/10 rounded-2xl mb-4">
<Icon name="fa-solid:tags" size="2.5em" class="text-violet-600 dark:text-violet-400" />
</div>
<h1
class="text-4xl md:text-5xl font-bold text-zinc-800 dark:text-zinc-100 mb-4 tracking-tight">
All Tags
</h1>
<p class="text-zinc-600 dark:text-zinc-400 text-center max-w-md">
Browse through all the topics and technologies I've written about.
</p>
</div>
<div class="flex flex-wrap justify-center gap-4">
<NuxtLink
v-for="[tag, count] in allTags"
:key="tag"
:to="`/tags/${tag.toLocaleLowerCase()}`"
class="group relative flex items-center gap-2 px-6 py-3 rounded-2xl bg-white/40 dark:bg-slate-900/40 backdrop-blur-md border border-white/20 dark:border-white/5 shadow-sm hover:shadow-xl hover:-translate-y-1 transition-all duration-300">
<span
class="text-lg font-bold text-zinc-700 dark:text-zinc-200 group-hover:text-violet-600 dark:group-hover:text-violet-400 transition-colors">
#{{ makeFirstCharUpper(tag) }}
</span>
<span
class="flex items-center justify-center min-w-[24px] h-6 px-1.5 rounded-full bg-violet-500/10 text-violet-600 dark:text-violet-400 text-xs font-bold border border-violet-500/20">
{{ count }}
</span>
</NuxtLink>
</div>
</main>
</template>

View File

@@ -1,4 +1,4 @@
import type { RouterConfig } from '@nuxt/schema'
import type { RouterConfig } from "@nuxt/schema";
// https://router.vuejs.org/api/#routeroptions
export default <RouterConfig>{
@@ -10,8 +10,8 @@ export default <RouterConfig>{
return {
el: to.hash,
top: 100,
behavior: 'smooth',
}
behavior: "smooth",
};
}
// The remainder is optional but maybe useful as well
@@ -21,8 +21,8 @@ export default <RouterConfig>{
return {
left: 0,
top: 0,
behavior: 'smooth',
}
behavior: "smooth",
};
}
// this will use saved scroll position on browser forward/back navigation
@@ -31,8 +31,8 @@ export default <RouterConfig>{
resolve({
left: savedPosition?.left || 0,
top: savedPosition?.top || 0,
})
}, 500)
})
});
}, 500);
});
},
}
};

View File

@@ -1,10 +1,10 @@
export interface BlogPost {
title: string
date: string
description: string
image: string
alt: string
ogImage: string
tags: string[]
published: boolean
title: string;
date: string;
description: string;
image: string;
alt: string;
ogImage: string;
tags: string[];
published: boolean;
}

View File

@@ -1,6 +1,6 @@
export function makeFirstCharUpper(val: string) {
if (val === '') return val
const firstChar = val.at(0)?.toLocaleUpperCase() || ''
const otherChar = val.slice(1)
return firstChar + otherChar
if (val === "") return val;
const firstChar = val.at(0)?.toLocaleUpperCase() || "";
const otherChar = val.slice(1);
return firstChar + otherChar;
}

View File

@@ -1,23 +1,23 @@
import { defineCollection, defineContentConfig } from '@nuxt/content'
import { asRobotsCollection } from '@nuxtjs/robots/content'
import { asSitemapCollection } from '@nuxtjs/sitemap/content'
import { asOgImageCollection } from 'nuxt-og-image/content'
import { defineCollection, defineContentConfig } from "@nuxt/content";
import { asRobotsCollection } from "@nuxtjs/robots/content";
import { asSitemapCollection } from "@nuxtjs/sitemap/content";
import { asOgImageCollection } from "nuxt-og-image/content";
export default defineContentConfig({
collections: {
content: defineCollection({
...asRobotsCollection({
type: 'page',
source: '**/*.md',
type: "page",
source: "**/*.md",
}),
...asSitemapCollection({
type: 'page',
source: '**/*.md',
type: "page",
source: "**/*.md",
}),
...asOgImageCollection({
type: 'page',
source: '**/*.md',
type: "page",
source: "**/*.md",
}),
}),
},
})
});

View File

@@ -5,7 +5,7 @@ description: Here you will lean how to connect your namecheap domain to vercel d
image: /blogs-img/blog1.jpg
alt: How To Connect You Namecheap Domain With Vercel Deployed App
ogImage: /blogs-img/blog1.jpg
tags: ['namecheap', 'vercel']
tags: ["namecheap", "vercel"]
published: true
---

View File

@@ -5,7 +5,7 @@ description: In Nuxt3 project tailwind css intellisense doesn't seems to work pr
image: /blogs-img/blog2.jpg
alt: Hwo to fix tailwind intellisense in nuxt3 project
ogImage: /blogs-img/blog2.jpg
tags: ['nuxt', 'tailwindcss']
tags: ["nuxt", "tailwindcss"]
published: true
---

View File

@@ -5,7 +5,7 @@ description: Here we will learn, How To Create Namespace Subdomain & Connect To
image: /blogs-img/blog3.jpg
alt: How To Create Namespace Subdomain & Connect To Vercel App
ogImage: /blogs-img/blog3.jpg
tags: ['nuxt', 'vercel', 'namecheap']
tags: ["nuxt", "vercel", "namecheap"]
published: true
---

View File

@@ -5,7 +5,7 @@ description: Here we will learn How To Properly Fetch Nuxt Content Data and Rend
image: /blogs-img/blog4.jpg
alt: How To Properly Fetch Nuxt Content Data and Render It in Nuxt Pages
ogImage: /blogs-img/blog4.jpg
tags: ['nuxt', 'nuxt-content']
tags: ["nuxt", "nuxt-content"]
published: true
---
@@ -43,7 +43,7 @@ Once Nuxt Content v2 is configured, you can create content files in the specifie
```md
---
title: 'Hello, world!'
title: "Hello, world!"
---
# Welcome to Nuxt Content v2
@@ -59,8 +59,8 @@ Now that we have created content files, we can display the content on a page. To
```vue
<script setup lang="ts">
const { path } = useRoute()
const articles = await queryContent(path).findOne()
const { path } = useRoute();
const articles = await queryContent(path).findOne();
</script>
<template>

View File

@@ -5,7 +5,7 @@ description: Vue.js is a popular JavaScript framework for building web applicati
image: /blogs-img/blog5.jpg
alt: Some Awesome Libraries For Vue3
ogImage: /blogs-img/blog5.jpg
tags: ['vue', 'javascript']
tags: ["vue", "javascript"]
published: true
---

View File

@@ -5,7 +5,7 @@ description: In recent vue project we see that vuex type not working properly. W
image: /blogs-img/blog6.jpg
alt: How to fix vuex type issue
ogImage: /blogs-img/blog6.jpg
tags: ['vue', 'vuex']
tags: ["vue", "vuex"]
published: true
---
@@ -19,11 +19,11 @@ In recent version of our vue project, when we try to add vuex we see type error
2. Pase this code in that file
```ts
declare module 'vuex' {
export * from 'vuex/types/index.d.ts'
export * from 'vuex/types/helpers.d.ts'
export * from 'vuex/types/logger.d.ts'
export * from 'vuex/types/vue.d.ts'
declare module "vuex" {
export * from "vuex/types/index.d.ts";
export * from "vuex/types/helpers.d.ts";
export * from "vuex/types/logger.d.ts";
export * from "vuex/types/vue.d.ts";
}
```

View File

@@ -5,7 +5,7 @@ description: Recently, I ran into an interesting Redis case that taught me a big
image: /blogs-img/blog7.png
alt: Redis TTL, Jitter, and How I Almost Crashed a Server 🚀
ogImage: /blogs-img/blog7.png
tags: ['redis', 'ttl', 'jitter']
tags: ["redis", "ttl", "jitter"]
published: true
---
@@ -35,7 +35,7 @@ One day, I got the task:
Sounds easy, right? Just add:
```js
redis.set('mykey', value, 'EX', 1209600) // 2 weeks in seconds
redis.set("mykey", value, "EX", 1209600); // 2 weeks in seconds
```
Boom. Done. Task finished. Go get coffee. ☕
@@ -67,11 +67,11 @@ Instead of setting **exactly 2 weeks**, we add a little randomness (aka _jitter_
```js
// Expire between 14 and 16 days
const baseTTL = 14 * 24 * 60 * 60 // 14 days
const jitter = Math.floor(Math.random() * (2 * 24 * 60 * 60)) // up to 2 days
const ttl = baseTTL + jitter
const baseTTL = 14 * 24 * 60 * 60; // 14 days
const jitter = Math.floor(Math.random() * (2 * 24 * 60 * 60)); // up to 2 days
const ttl = baseTTL + jitter;
redis.set('mykey', value, 'EX', ttl)
redis.set("mykey", value, "EX", ttl);
```
Now some keys expire in **14 days**, some in **15**, some in **16**.

View File

@@ -5,7 +5,7 @@ description: Recently I got a task Alter a table column from `FLOAT` to `DECIMAL
image: /blogs-img/blog8.png
alt: FLOAT Made My Dollars Float Away - FLOAT vs DECIMAL in MySQL 💸
ogImage: /blogs-img/blog8.png
tags: ['mysql', 'float', 'decimal']
tags: ["mysql", "float", "decimal"]
published: true
---

View File

@@ -1,8 +1,12 @@
// @ts-check
import withNuxt from './.nuxt/eslint.config.mjs'
import withNuxt from "./.nuxt/eslint.config.mjs";
import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended";
export default withNuxt({
rules: {
'vue/html-self-closing': 'off',
},
})
export default withNuxt([eslintPluginPrettierRecommended], {
files: ["src/**/*.ts", "src/**/*.vue"],
language: "vue",
// rules: {
// 'vue/html-self-closing': 'off',
// },
});

View File

@@ -1,69 +1,70 @@
import { seoData } from './app/data'
import siteConfig from "./app/config";
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
compatibilityDate: '2024-09-30',
compatibilityDate: "2025-12-20",
srcDir: "app",
modules: [
'@nuxt/icon',
'@nuxt/image',
'@nuxt/fonts',
'@nuxt/eslint',
'@vueuse/nuxt',
'@nuxtjs/robots',
'@nuxtjs/sitemap',
'nuxt-og-image',
'@nuxt/content',
'@nuxtjs/color-mode',
'@nuxtjs/tailwindcss',
'@formkit/auto-animate',
'@stefanobartoletti/nuxt-social-share',
"@nuxt/icon",
"@nuxt/image",
"@nuxt/fonts",
"@nuxt/eslint",
"@vueuse/nuxt",
"@nuxtjs/robots",
"@nuxtjs/sitemap",
"nuxt-og-image",
"@nuxt/content",
"@nuxtjs/color-mode",
"@nuxtjs/tailwindcss",
"@formkit/auto-animate",
// '@stefanobartoletti/nuxt-social-share',
],
app: {
head: {
charset: 'utf-16',
viewport: 'width=device-width,initial-scale=1',
title: seoData.title,
titleTemplate: `%s - ${seoData.title}`,
charset: "utf-16",
viewport: "width=device-width,initial-scale=1",
title: siteConfig.siteMeta.title,
titleTemplate: `%s - ${siteConfig.siteMeta.title}`,
},
pageTransition: { name: 'page', mode: 'out-in' },
layoutTransition: { name: 'layout', mode: 'out-in' },
pageTransition: { name: "page", mode: "out-in" },
layoutTransition: { name: "layout", mode: "out-in" },
},
sitemap: {
sources: [seoData.mySite],
sources: [siteConfig.siteMeta.url],
},
site: {
url: seoData.mySite,
name: 'Al Asad Nur Riyad',
url: siteConfig.siteMeta.url,
name: siteConfig.siteMeta.title,
},
typescript: {
strict: true,
},
nitro: {
prerender: {
crawlLinks: true,
routes: ['/', '/rss.xml'],
},
},
// nitro: {
// prerender: {
// crawlLinks: true,
// routes: ['/', '/rss.xml'],
// },
// },
colorMode: {
classSuffix: '',
preference: 'dark',
fallback: 'light',
classSuffix: "",
preference: "dark",
fallback: "light",
},
content: {
experimental: { nativeSqlite: true },
build: {
markdown: {
highlight: {
theme: 'dracula',
theme: "dracula",
},
},
},
},
})
});

639
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -16,32 +16,36 @@
},
"devDependencies": {
"@formkit/auto-animate": "^0.9.0",
"@iconify-json/bi": "^1.2.6",
"@iconify-json/bi": "^1.2.7",
"@iconify-json/fa": "^1.2.2",
"@iconify-json/mdi": "^1.2.3",
"@iconify-json/noto": "^1.2.7",
"@iconify-json/svg-spinners": "^1.2.4",
"@nuxt/content": "^3.3.0",
"@nuxt/eslint": "^1.4.1",
"@nuxt/fonts": "^0.11.4",
"@nuxt/icon": "^2.0.0",
"@nuxt/image": "^1.11.0",
"@nuxtjs/color-mode": "^3.3.2",
"@nuxtjs/robots": "^5.5.5",
"@nuxtjs/sitemap": "^7.4.7",
"@nuxtjs/tailwindcss": "^6.11.4",
"@stefanobartoletti/nuxt-social-share": "^0.6.1",
"@tailwindcss/forms": "^0.5.7",
"@tailwindcss/typography": "^0.5.18",
"@vueuse/core": "^13.9.0",
"@vueuse/nuxt": "^13.9.0",
"@nuxt/content": "^3.8.2",
"@nuxt/eslint": "^1.12.1",
"@nuxt/fonts": "^0.12.1",
"@nuxt/icon": "^2.1.1",
"@nuxt/image": "^2.0.0",
"@nuxtjs/color-mode": "^4.0.0",
"@nuxtjs/robots": "^5.6.7",
"@nuxtjs/sitemap": "^7.5.0",
"@nuxtjs/tailwindcss": "^6.14.0",
"@tailwindcss/forms": "^0.5.11",
"@tailwindcss/typography": "^0.5.19",
"@typescript-eslint/parser": "^8.50.0",
"@vueuse/core": "^14.1.0",
"@vueuse/nuxt": "^14.1.0",
"baseline-browser-mapping": "^2.9.10",
"eslint-config-prettier": "^10.1.8",
"feed": "^4.2.2",
"fuse.js": "^7.0.0",
"nuxt": "^4.1.2",
"nuxt-og-image": "^5.1.11",
"prettier": "^3.6.2",
"typescript": "^5.8.2",
"unenv": "^1.10.0"
"eslint-plugin-prettier": "^5.5.4",
"feed": "^5.1.0",
"fuse.js": "^7.1.0",
"nuxt": "^4.2.2",
"nuxt-og-image": "^5.1.13",
"prettier": "^3.7.4",
"prettier-eslint": "^16.4.2",
"typescript": "^5.9.3",
"unenv": "^1.10.0",
"vue": "^3.5.26"
}
}

13139
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

6
pnpm-workspace.yaml Normal file
View File

@@ -0,0 +1,6 @@
onlyBuiltDependencies:
- "@parcel/watcher"
- better-sqlite3
- esbuild
- sharp
- unrs-resolver

BIN
public/avatar.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 445 KiB

BIN
public/background.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

30
public/favicon.svg Normal file
View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="_图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 610.04">
<defs>
<style>
.cls-1 {
fill: #f7e9df;
}
.cls-2 {
fill: #f8b8b1;
}
</style>
</defs>
<g>
<path class="cls-2" d="M640,283.5l-53.17-23.12,38.18-43.63s-83.55-129.63-218.48-4.58C498.99,53.12,354.21,0,354.21,0l-34.21,46.81L285.79,0s-144.79,53.12-52.33,212.17c-134.93-125.06-218.48,4.58-218.48,4.58l38.18,43.63L0,283.5s15.97,121.34,143.47,108.7c-100.04,80.05-26.68,178.01-26.68,178.01l54.19-20.61,3.17,57.89s106.76,24.41,145.84-77.8c39.08,102.22,145.84,77.8,145.84,77.8l3.17-57.89,54.19,20.61s73.36-97.96-26.68-178.01c127.5,12.64,143.47-108.7,143.47-108.7ZM320,320.29h0,0Z"/>
<path class="cls-1" d="M382.12,300.84l-10.32-4.49,7.41-8.47s-16.22-25.16-42.41-.89c17.95-30.88-10.16-41.19-10.16-41.19l-6.64,9.09-6.64-9.09s-28.11,10.31-10.16,41.19c-26.2-24.28-42.41.89-42.41.89l7.41,8.47-10.32,4.49s3.1,23.55,27.85,21.1c-19.42,15.54-5.18,34.56-5.18,34.56l10.52-4,.62,11.24s20.73,4.74,28.31-15.1c7.59,19.84,28.31,15.1,28.31,15.1l.62-11.24,10.52,4s14.24-19.02-5.18-34.56c24.75,2.45,27.85-21.1,27.85-21.1ZM320,307.98h0Z"/>
<path class="cls-1" d="M53.17,260.38c86.15,12.93,173.16,28.52,258.54,45.85,0,0,8.29,1.75,8.29,1.75l-8.39-1.22c-86.11-13.26-173.14-28.72-258.45-46.38h0Z"/>
<path class="cls-1" d="M320,307.98c-2.4-83.9-2.34-169.09-.27-253.01,0,0,.27-8.16.27-8.16l.27,8.16c2.07,83.92,2.13,169.1-.27,253.01h0Z"/>
<path class="cls-1" d="M320,307.98c85.3-17.65,172.34-33.12,258.45-46.38,0,0,8.39-1.22,8.39-1.22,0,0-8.29,1.75-8.29,1.75-85.38,17.33-172.39,32.92-258.54,45.85h0Z"/>
<path class="cls-1" d="M320,307.98c49.91,76.37,98.46,155.2,144.58,233.92,0,0,4.43,7.69,4.43,7.69l-4.88-7.41c-49.64-76.56-98.29-155.32-144.13-234.21h0Z"/>
<path class="cls-1" d="M170.99,549.6c45.86-74.98,94.52-149.73,144.13-222.29,0,0,4.88-7.02,4.88-7.02,0,0-4.43,7.31-4.43,7.31-46.15,74.81-94.7,149.63-144.58,222h0Z"/>
</g>
<g>
<path class="cls-1" d="M233.47,212.17c15.24,14.76,30.27,31,44.58,46.72,14.2,15.84,28.81,32.41,41.95,49.09-15.25-14.75-30.27-30.99-44.58-46.72-14.19-15.85-28.8-32.42-41.95-49.09h0Z"/>
<path class="cls-1" d="M143.47,392.2c57.53-30.13,116.9-58.48,176.53-84.22-57.52,30.15-116.91,58.46-176.53,84.22h0Z"/>
<path class="cls-1" d="M320,529.69c-2.43-73.57-2.44-148.13,0-221.71,2.45,73.57,2.43,148.13,0,221.71h0Z"/>
<path class="cls-1" d="M406.53,212.17c-13.14,16.66-27.76,33.25-41.95,49.09-14.32,15.73-29.32,31.95-44.58,46.72,13.13-16.67,27.76-33.26,41.95-49.09,14.32-15.73,29.33-31.94,44.58-46.72h0Z"/>
<path class="cls-1" d="M496.53,392.2c-59.62-25.76-119-54.07-176.53-84.22,59.63,25.74,119,54.08,176.53,84.22h0Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -1,37 +1,37 @@
import { Feed } from 'feed'
import { Feed } from "feed";
const basePath = 'https://nurriyad.com'
const basePath = "https://nurriyad.com";
export default defineEventHandler(async (event) => {
setHeader(event, 'content-type', 'text/xml')
const docs = await queryCollection(event, 'content').all()
setHeader(event, "content-type", "text/xml");
const docs = await queryCollection(event, "content").all();
const feed = new Feed({
title: "Riyad's personal blog site",
description: "Riyad's personal blog site",
id: basePath,
link: basePath,
language: 'en',
language: "en",
favicon: `${basePath}/favicon.ico`,
copyright: 'MIT',
copyright: "MIT",
author: {
name: 'Al Asad Nur Riyad',
email: 'asadnurriyad@gmail.com',
name: "Al Asad Nur Riyad",
email: "asadnurriyad@gmail.com",
link: basePath,
},
})
});
// Add the feed items
docs.forEach((doc) => {
// console.log(doc)
feed.addItem({
title: doc.title || '',
title: doc.title || "",
id: basePath + doc.path,
link: basePath + doc.path,
description: doc.description,
content: doc.description,
date: new Date(doc.meta?.date as string),
})
})
});
});
return feed.rss2()
})
return feed.rss2();
});

View File

@@ -0,0 +1,30 @@
import { version as nuxtVersion } from "nuxt/package.json";
import pkg from "~~/package.json";
export default defineEventHandler(async () => {
let platform = { name: "Local", icon: "heroicons:computer-desktop" };
if (process.env.VERCEL) {
platform = { name: "Vercel", icon: "simple-icons:vercel" };
} else if (process.env.NETLIFY) {
platform = { name: "Netlify", icon: "simple-icons:netlify" };
} else if (process.env.CF_PAGES) {
platform = { name: "Cloudflare", icon: "simple-icons:cloudflare" };
} else if (process.env.GITHUB_ACTIONS) {
platform = { name: "GitHub Actions", icon: "simple-icons:githubactions" };
} else if (process.env.EDGEONE) {
platform = { name: "Tencent EdgeOne", icon: "simple-icons:tencentcloud" };
}
return {
platform,
versions: {
vue: pkg.devDependencies.vue,
nuxt: nuxtVersion,
content: pkg.devDependencies["@nuxt/content"],
node: process.version,
os: process.platform,
arch: process.arch,
},
};
});

View File

@@ -2,14 +2,20 @@
// https://github.com/tailwindlabs/tailwindcss-intellisense/issues/663#issuecomment-1316788128
module.exports = {
darkMode: 'class',
content: [],
darkMode: "class",
content: [
"./app/**/*.{ts,vue}",
"./app/components/**/*.vue",
"./app/pages/**/*.vue",
"./app/layouts/**/*.vue",
],
theme: {
extend: {
fontFamily: {
spacegrotesk: ['Space Grotesk', 'sans-serif'],
spacegrotesk: ["Space Grotesk", "sans-serif"],
},
},
},
plugins: [require('@tailwindcss/typography'), require('@tailwindcss/forms')],
}
plugins: [require("@tailwindcss/typography"), require("@tailwindcss/forms")],
layers: ["base", "components", "utilities"],
};

View File

@@ -1,4 +1,7 @@
{
// https://nuxt.com/docs/guide/concepts/typescript
"extends": "./.nuxt/tsconfig.json"
"extends": "./.nuxt/tsconfig.json",
"vueCompilerOptions": {
"globalTypesPath": "./node_modules/.vue-global-types"
}
}