From 397873244b7e40bf70900e3b10fb37d5b98e2887 Mon Sep 17 00:00:00 2001
From: Jonathan Miller
Date: Sat, 30 Aug 2025 19:05:26 -0500
Subject: [PATCH] dev-2.1
INIIT
---
language/en-GB/tpl_moko-cassiopeia.ini | 37 +-
language/en-GB/tpl_moko-cassiopeia.sys.ini | 73 ++-
language/en-US/tpl_moko-cassiopeia.ini | 37 +-
language/en-US/tpl_moko-cassiopeia.sys.ini | 72 +-
.../site/moko-cassiopeia/css/editor.css | 30 +
.../site/moko-cassiopeia/css/gable.css | 30 +
.../css/global/dark/colors_alternative.css | 368 +++++++++++
.../css/global/dark/colors_standard.css | 368 +++++++++++
.../css/global/dark/index.html | 118 ++++
.../css/global/light/colors_alternative.css | 568 ++++++++++++++++
.../css/global/light/colors_standard.css | 568 ++++++++++++++++
.../css/global/light/index.html | 118 ++++
.../site/moko-cassiopeia/css/template-rtl.css | 35 +-
.../site/moko-cassiopeia/css/template.css | 70 +-
.../site/moko-cassiopeia/css/vmbasic.css | 617 ++++++++++++++++++
.../site/moko-cassiopeia/images/bg.svg | 107 +++
.../site/moko-cassiopeia/images/logo.svg | 93 +++
.../images/select-bg-active-rtl.svg | 1 +
.../images/select-bg-active.svg | 1 +
.../moko-cassiopeia/images/select-bg-rtl.svg | 1 +
.../site/moko-cassiopeia/images/select-bg.svg | 1 +
.../moko-cassiopeia/images/teaser_bg_sm.png | Bin 0 -> 979 bytes
.../images/template_preview.png | Bin 0 -> 63908 bytes
.../images/template_thumbnail.png | Bin 0 -> 10747 bytes
templates/moko-cassiopeia/component.php | 108 +++
templates/moko-cassiopeia/custom.php | 42 ++
templates/moko-cassiopeia/error.php | 279 ++++++++
templates/moko-cassiopeia/favicon.ico | Bin 0 -> 15086 bytes
.../html/com_contact/contact/default.php | 177 +++++
.../html/com_contact/contact/index.html | 118 ++++
.../html/com_contact/default.php | 177 +++++
.../html/com_contact/index.html | 118 ++++
.../html/com_content/article/index.html | 118 ++++
.../html/com_content/article/toc-left.php | 173 +++++
.../html/com_content/article/toc-right.php | 175 +++++
.../html/com_content/categories/default.php | 33 +
.../com_content/categories/default_items.php | 77 +++
.../html/com_content/categories/index.html | 118 ++++
.../html/com_content/category/blog.php | 143 ++++
.../com_content/category/blog_children.php | 86 +++
.../html/com_content/category/blog_item.php | 102 +++
.../html/com_content/category/blog_links.php | 27 +
.../html/com_content/category/default.php | 25 +
.../com_content/category/default_articles.php | 349 ++++++++++
.../com_content/category/default_children.php | 85 +++
.../html/com_content/category/index.html | 118 ++++
.../html/com_content/featured/default.php | 75 +++
.../com_content/featured/default_item.php | 121 ++++
.../com_content/featured/default_links.php | 26 +
.../html/com_content/featured/index.html | 118 ++++
.../html/com_content/index.html | 118 ++++
.../html/com_engage/comments/default.php | 78 +++
.../html/com_engage/comments/default_form.php | 90 +++
.../html/com_engage/comments/default_list.php | 286 ++++++++
.../com_engage/comments/default_login.php | 45 ++
.../html/com_engage/comments/index.html | 118 ++++
.../html/com_engage/index.html | 118 ++++
.../common/accordion_plans.php | 195 ++++++
.../html/com_osmembership/common/batch.php | 35 +
.../com_osmembership/common/batch_nocheck.php | 24 +
.../com_osmembership/common/categories.php | 56 ++
.../com_osmembership/common/columns_plans.php | 219 +++++++
.../com_osmembership/common/default_plans.php | 231 +++++++
.../com_osmembership/common/group_members.php | 27 +
.../html/com_osmembership/common/index.html | 118 ++++
.../common/paymentredirect.php | 36 +
.../common/plan_custom_fields.php | 45 ++
.../common/plan_information.php | 129 ++++
.../com_osmembership/common/priceduration.php | 70 ++
.../common/pricingtable_circle_plans.php | 237 +++++++
.../common/pricingtable_flat_plans.php | 233 +++++++
.../common/pricingtable_plans.php | 261 ++++++++
.../com_osmembership/common/renew_options.php | 129 ++++
.../common/restrictionmsg.php | 31 +
.../common/subscriptions_history.php | 176 +++++
.../common/subscriptions_pdf.php | 105 +++
.../common/upgrade_options.php | 48 ++
.../html/com_osmembership/index.html | 118 ++++
.../html/com_osmembership/mplan/default.php | 141 ++++
.../mplan/default_advanced_settings.php | 173 +++++
.../mplan/default_general.php | 166 +++++
.../mplan/default_group_membership.php | 45 ++
.../mplan/default_member_card.php | 46 ++
.../mplan/default_messages.php | 194 ++++++
.../mplan/default_metadata.php | 56 ++
.../mplan/default_recurring_settings.php | 81 +++
.../mplan/default_reminder_messages.php | 75 +++
.../mplan/default_reminders_settings.php | 62 ++
.../mplan/default_renew_options.php | 34 +
.../mplan/default_renewal_discounts.php | 34 +
.../mplan/default_translation.php | 223 +++++++
.../mplan/default_upgrade_options.php | 41 ++
.../html/com_osmembership/mplan/index.html | 118 ++++
.../html/com_osmembership/mplans/default.php | 238 +++++++
.../mplans/default_search_bar.bootstrap4.php | 39 ++
.../mplans/default_search_bar.php | 38 ++
.../html/com_osmembership/mplans/index.html | 118 ++++
.../html/com_osmembership/plan/default.php | 176 +++++
.../plan/default_renew_upgrade.php | 45 ++
.../html/com_osmembership/plan/index.html | 118 ++++
.../html/com_osmembership/plans/columns.php | 84 +++
.../html/com_osmembership/plans/default.php | 83 +++
.../html/com_osmembership/plans/index.html | 118 ++++
.../com_osmembership/plans/pricingtable.php | 75 +++
.../plans/pricingtablecircle.php | 75 +++
.../plans/pricingtableflat.php | 75 +++
templates/moko-cassiopeia/html/index.html | 118 ++++
.../html/layouts/chromes/card.php | 61 ++
.../html/layouts/chromes/html5.php | 88 +++
.../html/layouts/chromes/index.html | 118 ++++
.../html/layouts/chromes/noCard.php | 55 ++
.../moko-cassiopeia/html/layouts/index.html | 118 ++++
.../html/mod_custom/banner.php | 34 +
.../moko-cassiopeia/html/mod_custom/hero.php | 34 +
.../html/mod_custom/index.html | 118 ++++
.../html/mod_gabble/default.php | 160 +++++
.../html/mod_gabble/index.html | 118 ++++
.../html/mod_membershipplans/index.html | 118 ++++
.../html/mod_menu/collapse-metismenu.php | 28 +
.../html/mod_menu/dropdown-metismenu.php | 110 ++++
.../mod_menu/dropdown-metismenu_component.php | 79 +++
.../mod_menu/dropdown-metismenu_heading.php | 61 ++
.../mod_menu/dropdown-metismenu_separator.php | 61 ++
.../html/mod_menu/dropdown-metismenu_url.php | 76 +++
.../moko-cassiopeia/html/mod_menu/index.html | 118 ++++
.../html/mod_virtuemart_cart/default.php | 99 +++
.../html/mod_virtuemart_cart/dropdown.php | 107 +++
.../html/mod_virtuemart_cart/index.html | 118 ++++
.../html/mod_virtuemart_category/all.php | 44 ++
.../html/mod_virtuemart_category/current.php | 67 ++
.../html/mod_virtuemart_category/default.php | 67 ++
.../html/mod_virtuemart_category/index.html | 118 ++++
.../html/mod_virtuemart_category/wall.php | 28 +
.../mod_virtuemart_currencies/default.php | 38 ++
.../html/mod_virtuemart_currencies/index.html | 118 ++++
.../mod_virtuemart_manufacturer/default.php | 67 ++
.../mod_virtuemart_manufacturer/index.html | 118 ++++
.../html/mod_virtuemart_product/default.php | 167 +++++
.../html/mod_virtuemart_product/index.html | 118 ++++
.../html/mod_virtuemart_search/default.php | 56 ++
.../html/mod_virtuemart_search/index.html | 118 ++++
.../moko-cassiopeia/html/tinymce/index.html | 118 ++++
templates/moko-cassiopeia/index.html | 118 ++++
templates/moko-cassiopeia/index.php | 495 ++++++++++++++
templates/moko-cassiopeia/joomla.asset.json | 180 +++++
templates/moko-cassiopeia/offline.php | 363 +++++++++++
templates/moko-cassiopeia/templateDetails.xml | 248 +++++++
147 files changed, 16996 insertions(+), 95 deletions(-)
create mode 100644 media/templates/site/moko-cassiopeia/css/global/dark/colors_alternative.css
create mode 100644 media/templates/site/moko-cassiopeia/css/global/dark/colors_standard.css
create mode 100644 media/templates/site/moko-cassiopeia/css/global/dark/index.html
create mode 100644 media/templates/site/moko-cassiopeia/css/global/light/colors_alternative.css
create mode 100644 media/templates/site/moko-cassiopeia/css/global/light/colors_standard.css
create mode 100644 media/templates/site/moko-cassiopeia/css/global/light/index.html
create mode 100644 media/templates/site/moko-cassiopeia/css/vmbasic.css
create mode 100644 media/templates/site/moko-cassiopeia/images/bg.svg
create mode 100644 media/templates/site/moko-cassiopeia/images/logo.svg
create mode 100644 media/templates/site/moko-cassiopeia/images/select-bg-active-rtl.svg
create mode 100644 media/templates/site/moko-cassiopeia/images/select-bg-active.svg
create mode 100644 media/templates/site/moko-cassiopeia/images/select-bg-rtl.svg
create mode 100644 media/templates/site/moko-cassiopeia/images/select-bg.svg
create mode 100644 media/templates/site/moko-cassiopeia/images/teaser_bg_sm.png
create mode 100644 media/templates/site/moko-cassiopeia/images/template_preview.png
create mode 100644 media/templates/site/moko-cassiopeia/images/template_thumbnail.png
create mode 100644 templates/moko-cassiopeia/component.php
create mode 100644 templates/moko-cassiopeia/custom.php
create mode 100644 templates/moko-cassiopeia/error.php
create mode 100644 templates/moko-cassiopeia/favicon.ico
create mode 100644 templates/moko-cassiopeia/html/com_contact/contact/default.php
create mode 100644 templates/moko-cassiopeia/html/com_contact/contact/index.html
create mode 100644 templates/moko-cassiopeia/html/com_contact/default.php
create mode 100644 templates/moko-cassiopeia/html/com_contact/index.html
create mode 100644 templates/moko-cassiopeia/html/com_content/article/index.html
create mode 100644 templates/moko-cassiopeia/html/com_content/article/toc-left.php
create mode 100644 templates/moko-cassiopeia/html/com_content/article/toc-right.php
create mode 100644 templates/moko-cassiopeia/html/com_content/categories/default.php
create mode 100644 templates/moko-cassiopeia/html/com_content/categories/default_items.php
create mode 100644 templates/moko-cassiopeia/html/com_content/categories/index.html
create mode 100644 templates/moko-cassiopeia/html/com_content/category/blog.php
create mode 100644 templates/moko-cassiopeia/html/com_content/category/blog_children.php
create mode 100644 templates/moko-cassiopeia/html/com_content/category/blog_item.php
create mode 100644 templates/moko-cassiopeia/html/com_content/category/blog_links.php
create mode 100644 templates/moko-cassiopeia/html/com_content/category/default.php
create mode 100644 templates/moko-cassiopeia/html/com_content/category/default_articles.php
create mode 100644 templates/moko-cassiopeia/html/com_content/category/default_children.php
create mode 100644 templates/moko-cassiopeia/html/com_content/category/index.html
create mode 100644 templates/moko-cassiopeia/html/com_content/featured/default.php
create mode 100644 templates/moko-cassiopeia/html/com_content/featured/default_item.php
create mode 100644 templates/moko-cassiopeia/html/com_content/featured/default_links.php
create mode 100644 templates/moko-cassiopeia/html/com_content/featured/index.html
create mode 100644 templates/moko-cassiopeia/html/com_content/index.html
create mode 100644 templates/moko-cassiopeia/html/com_engage/comments/default.php
create mode 100644 templates/moko-cassiopeia/html/com_engage/comments/default_form.php
create mode 100644 templates/moko-cassiopeia/html/com_engage/comments/default_list.php
create mode 100644 templates/moko-cassiopeia/html/com_engage/comments/default_login.php
create mode 100644 templates/moko-cassiopeia/html/com_engage/comments/index.html
create mode 100644 templates/moko-cassiopeia/html/com_engage/index.html
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/common/accordion_plans.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/common/batch.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/common/batch_nocheck.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/common/categories.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/common/columns_plans.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/common/default_plans.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/common/group_members.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/common/index.html
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/common/paymentredirect.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/common/plan_custom_fields.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/common/plan_information.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/common/priceduration.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/common/pricingtable_circle_plans.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/common/pricingtable_flat_plans.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/common/pricingtable_plans.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/common/renew_options.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/common/restrictionmsg.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/common/subscriptions_history.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/common/subscriptions_pdf.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/common/upgrade_options.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/index.html
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/mplan/default.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/mplan/default_advanced_settings.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/mplan/default_general.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/mplan/default_group_membership.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/mplan/default_member_card.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/mplan/default_messages.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/mplan/default_metadata.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/mplan/default_recurring_settings.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/mplan/default_reminder_messages.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/mplan/default_reminders_settings.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/mplan/default_renew_options.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/mplan/default_renewal_discounts.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/mplan/default_translation.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/mplan/default_upgrade_options.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/mplan/index.html
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/mplans/default.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/mplans/default_search_bar.bootstrap4.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/mplans/default_search_bar.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/mplans/index.html
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/plan/default.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/plan/default_renew_upgrade.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/plan/index.html
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/plans/columns.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/plans/default.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/plans/index.html
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/plans/pricingtable.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/plans/pricingtablecircle.php
create mode 100644 templates/moko-cassiopeia/html/com_osmembership/plans/pricingtableflat.php
create mode 100644 templates/moko-cassiopeia/html/index.html
create mode 100644 templates/moko-cassiopeia/html/layouts/chromes/card.php
create mode 100644 templates/moko-cassiopeia/html/layouts/chromes/html5.php
create mode 100644 templates/moko-cassiopeia/html/layouts/chromes/index.html
create mode 100644 templates/moko-cassiopeia/html/layouts/chromes/noCard.php
create mode 100644 templates/moko-cassiopeia/html/layouts/index.html
create mode 100644 templates/moko-cassiopeia/html/mod_custom/banner.php
create mode 100644 templates/moko-cassiopeia/html/mod_custom/hero.php
create mode 100644 templates/moko-cassiopeia/html/mod_custom/index.html
create mode 100644 templates/moko-cassiopeia/html/mod_gabble/default.php
create mode 100644 templates/moko-cassiopeia/html/mod_gabble/index.html
create mode 100644 templates/moko-cassiopeia/html/mod_membershipplans/index.html
create mode 100644 templates/moko-cassiopeia/html/mod_menu/collapse-metismenu.php
create mode 100644 templates/moko-cassiopeia/html/mod_menu/dropdown-metismenu.php
create mode 100644 templates/moko-cassiopeia/html/mod_menu/dropdown-metismenu_component.php
create mode 100644 templates/moko-cassiopeia/html/mod_menu/dropdown-metismenu_heading.php
create mode 100644 templates/moko-cassiopeia/html/mod_menu/dropdown-metismenu_separator.php
create mode 100644 templates/moko-cassiopeia/html/mod_menu/dropdown-metismenu_url.php
create mode 100644 templates/moko-cassiopeia/html/mod_menu/index.html
create mode 100644 templates/moko-cassiopeia/html/mod_virtuemart_cart/default.php
create mode 100644 templates/moko-cassiopeia/html/mod_virtuemart_cart/dropdown.php
create mode 100644 templates/moko-cassiopeia/html/mod_virtuemart_cart/index.html
create mode 100644 templates/moko-cassiopeia/html/mod_virtuemart_category/all.php
create mode 100644 templates/moko-cassiopeia/html/mod_virtuemart_category/current.php
create mode 100644 templates/moko-cassiopeia/html/mod_virtuemart_category/default.php
create mode 100644 templates/moko-cassiopeia/html/mod_virtuemart_category/index.html
create mode 100644 templates/moko-cassiopeia/html/mod_virtuemart_category/wall.php
create mode 100644 templates/moko-cassiopeia/html/mod_virtuemart_currencies/default.php
create mode 100644 templates/moko-cassiopeia/html/mod_virtuemart_currencies/index.html
create mode 100644 templates/moko-cassiopeia/html/mod_virtuemart_manufacturer/default.php
create mode 100644 templates/moko-cassiopeia/html/mod_virtuemart_manufacturer/index.html
create mode 100644 templates/moko-cassiopeia/html/mod_virtuemart_product/default.php
create mode 100644 templates/moko-cassiopeia/html/mod_virtuemart_product/index.html
create mode 100644 templates/moko-cassiopeia/html/mod_virtuemart_search/default.php
create mode 100644 templates/moko-cassiopeia/html/mod_virtuemart_search/index.html
create mode 100644 templates/moko-cassiopeia/html/tinymce/index.html
create mode 100644 templates/moko-cassiopeia/index.html
create mode 100644 templates/moko-cassiopeia/index.php
create mode 100644 templates/moko-cassiopeia/joomla.asset.json
create mode 100644 templates/moko-cassiopeia/offline.php
create mode 100644 templates/moko-cassiopeia/templateDetails.xml
diff --git a/language/en-GB/tpl_moko-cassiopeia.ini b/language/en-GB/tpl_moko-cassiopeia.ini
index a9662f2..183d520 100644
--- a/language/en-GB/tpl_moko-cassiopeia.ini
+++ b/language/en-GB/tpl_moko-cassiopeia.ini
@@ -1,13 +1,30 @@
-;---------------------------------------------------
-; Template: moko-cassiopeia
-; File: en-GB.tpl_moko-cassiopeia.ini
-; Version: 02.00
-; Author: Jonathan Miller
-; Copyright: (C) 2025 Moko Consulting. All rights reserved.
-; License: GNU General Public License v3 or later; see LICENSE.txt
-; Description: Language strings for the frontend template.
-; Note: All ini files must be saved as UTF-8 without BOM.
-;---------------------------------------------------
+# =========================================================================
+# Copyright (C) 2025 Moko Consulting
+#
+# This file is part of a Moko Consulting project.
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see https://www.gnu.org/licenses/ .
+# =========================================================================
+# FILE INFORMATION
+# DEFGROUP: Joomla
+# INGROUP: Moko-Cassiopeia
+# PATH: language/en-GB/tpl_moko-cassiopeia.ini
+# VERSION: 02.00
+# BRIEF: English (GB) language strings for the Moko-Cassiopeia Joomla template
+# =========================================================================
; ===== Template meta =====
MOKO-CASSIOPEIA="MOKO-CASSIOPEIA Site template"
diff --git a/language/en-GB/tpl_moko-cassiopeia.sys.ini b/language/en-GB/tpl_moko-cassiopeia.sys.ini
index ea2a9df..809fb14 100644
--- a/language/en-GB/tpl_moko-cassiopeia.sys.ini
+++ b/language/en-GB/tpl_moko-cassiopeia.sys.ini
@@ -1,13 +1,30 @@
-;---------------------------------------------------
-; Template: moko-cassiopeia
-; File: en-GB.tpl_moko-cassiopeia.sys.ini
-; Version: 02.00
-; Author: Jonathan Miller
-; Copyright: (C) 2025 Moko Consulting. All rights reserved.
-; License: GNU General Public License v3 or later; see LICENSE.txt
-; Description: Language strings for the frontend template.
-; Note: All ini files must be saved as UTF-8 without BOM.
-;---------------------------------------------------
+# =========================================================================
+# Copyright (C) 2025 Moko Consulting
+#
+# This file is part of a Moko Consulting project.
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see https://www.gnu.org/licenses/ .
+# =========================================================================
+# FILE INFORMATION
+# DEFGROUP: Joomla
+# INGROUP: Moko-Cassiopeia
+# PATH: language/en-GB/tpl_moko-cassiopeia.sys.ini
+# VERSION: 02.00
+# BRIEF: English (GB) system language strings for template metadata and installer
+# =========================================================================
TPL_MOKO-CASSIOPEIA="Moko-Cassiopeia Site template"
TPL_MOKO-CASSIOPEIA_MOD_MENU_LAYOUT_COLLAPSE-METISMENU="Collapsible Dropdown"
@@ -30,11 +47,12 @@ TPL_MOKO-CASSIOPEIA_POSITION_TOP-B="Top-b"
TPL_MOKO-CASSIOPEIA_POSITION_TOPBAR="Top Bar"
TPL_MOKO-CASSIOPEIA_POSITION_DRAWER-LEFT="Drawer-Left"
TPL_MOKO-CASSIOPEIA_POSITION_DRAWER-RIGHT="Drawer-Right"
-TPL_MOKO-CASSIOPEIA_XML_DESCRIPTION="MOKO-CASSIOPEIA Template Description
+TPL_MOKO-CASSIOPEIA_XML_DESCRIPTION=
+TPL_MOKO-CASSIOPEIA_XML_DESCRIPTION="MOKO-CASSIOPEIA Template Description (v2.0)
- MOKO-CASSIOPEIA continues Joomla’s tradition of space-themed default templates—
- building on the legacy of Solarflare from Joomla 1.0, Milkyway from Joomla 1.5,
- and Protostar from Joomla 3.0.
+ MOKO-CASSIOPEIA 2.0 continues Joomla’s tradition of space-themed default templates—
+ building on the legacy of Solarflare (Joomla 1.0), Milkyway (Joomla 1.5),
+ and Protostar (Joomla 3.0).
This template is a customized fork of the Cassiopeia template introduced in Joomla 4,
@@ -42,41 +60,40 @@ TPL_MOKO-CASSIOPEIA_XML_DESCRIPTION="
MOKO-CASSIOPEIA Template Description
- MOKO-CASSIOPEIA is designed to serve as a versatile, production-ready base for
- contemporary Joomla websites, emphasizing speed, clarity, and open-source philosophy.
+ Version 2.0 introduces significant new functionality including a Dark Mode toggle,
+ Google Tag Manager (GTM) and Google Analytics 4 (GA4) hooks, and expanded template configuration
+ options — all while keeping overrides minimal and upgrade-friendly.
Features
Fully responsive and mobile-first layout
Based on Joomla 4+ template architecture
- Enhanced SCSS and CSS overrides for custom styling
- Built-in support for Bootstrap 5
-
- Integrated dynamic Table of Contents via
- Bootstrap TOC
-
+ Enhanced SCSS and CSS overrides for streamlined custom styling
+ Built-in support for Bootstrap 5
+ Font Awesome 6 integration for modern iconography
+ Automatic Table of Contents (TOC) — selectable per article via toc-left or toc-right layouts
+ Dark Mode toggle (new in v2.0) with user switch and admin override
+ Optional GTM + GA4 hooks (new in v2.0) for analytics and marketing integration
Optimized template structure for performance and maintainability
Custom module positions and layout presets
- Accessible, lightweight, and extensible
+ Accessible, lightweight, and extensible for long-term use
Ideal for professional services, portfolios, and informational websites
Code Attribution
This template is based on the original Cassiopeia template developed by the
- Joomla! Project and released under the GNU General Public License.
+ Joomla! Project and released under the GNU General Public License.
Modifications and enhancements have been made by Moko Consulting in accordance with open-source licensing standards.
-
a
+
It includes integration with
- Bootstrap TOC ,
+ Bootstrap TOC ,
an open-source table of contents generator by A. Feld, licensed under the MIT License.
All third-party libraries and assets remain the property of their respective authors and are credited within their source files where applicable.
"
-
-JGLOBAL_OFFLINE="Offline"
diff --git a/language/en-US/tpl_moko-cassiopeia.ini b/language/en-US/tpl_moko-cassiopeia.ini
index a9662f2..f183188 100644
--- a/language/en-US/tpl_moko-cassiopeia.ini
+++ b/language/en-US/tpl_moko-cassiopeia.ini
@@ -1,13 +1,30 @@
-;---------------------------------------------------
-; Template: moko-cassiopeia
-; File: en-GB.tpl_moko-cassiopeia.ini
-; Version: 02.00
-; Author: Jonathan Miller
-; Copyright: (C) 2025 Moko Consulting. All rights reserved.
-; License: GNU General Public License v3 or later; see LICENSE.txt
-; Description: Language strings for the frontend template.
-; Note: All ini files must be saved as UTF-8 without BOM.
-;---------------------------------------------------
+# =========================================================================
+# Copyright (C) 2025 Moko Consulting
+#
+# This file is part of a Moko Consulting project.
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see https://www.gnu.org/licenses/ .
+# =========================================================================
+# FILE INFORMATION
+# DEFGROUP: Joomla
+# INGROUP: Moko-Cassiopeia
+# PATH: language/en-US/tpl_moko-cassiopeia.ini
+# VERSION: 02.00
+# BRIEF: English (US) language strings for the Moko-Cassiopeia Joomla template
+# =========================================================================
; ===== Template meta =====
MOKO-CASSIOPEIA="MOKO-CASSIOPEIA Site template"
diff --git a/language/en-US/tpl_moko-cassiopeia.sys.ini b/language/en-US/tpl_moko-cassiopeia.sys.ini
index 3c3a2e5..774ca82 100644
--- a/language/en-US/tpl_moko-cassiopeia.sys.ini
+++ b/language/en-US/tpl_moko-cassiopeia.sys.ini
@@ -1,13 +1,30 @@
-;---------------------------------------------------
-; Template: moko-cassiopeia
-; File: en-US.tpl_moko-cassiopeia.sys.ini
-; Version: 02.00
-; Author: Jonathan Miller
-; Copyright: (C) 2025 Moko Consulting. All rights reserved.
-; License: GNU General Public License v3 or later; see LICENSE.txt
-; Description: Language strings for the frontend template.
-; Note: All ini files must be saved as UTF-8 without BOM.
-;---------------------------------------------------
+# =========================================================================
+# Copyright (C) 2025 Moko Consulting
+#
+# This file is part of a Moko Consulting project.
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see https://www.gnu.org/licenses/ .
+# =========================================================================
+# FILE INFORMATION
+# DEFGROUP: Joomla
+# INGROUP: Moko-Cassiopeia
+# PATH: language/en-US/tpl_moko-cassiopeia.sys.ini
+# VERSION: 02.00
+# BRIEF: English (US) system language strings for template metadata and installer
+# =========================================================================
TPL_MOKO-CASSIOPEIA="Moko-Cassiopeia Site template"
TPL_MOKO-CASSIOPEIA_MOD_MENU_LAYOUT_COLLAPSE-METISMENU="Collapsible Dropdown"
@@ -31,11 +48,11 @@ TPL_MOKO-CASSIOPEIA_POSITION_TOPBAR="Top Bar"
TPL_MOKO-CASSIOPEIA_POSITION_DRAWER-LEFT="Drawer-Left"
TPL_MOKO-CASSIOPEIA_POSITION_DRAWER-RIGHT="Drawer-Right"
TPL_MOKO-CASSIOPEIA_XML_DESCRIPTION=
-TPL_MOKO-CASSIOPEIA_XML_DESCRIPTION="MOKO-CASSIOPEIA Template Description
+TPL_MOKO-CASSIOPEIA_XML_DESCRIPTION="MOKO-CASSIOPEIA Template Description (v2.0)
- MOKO-CASSIOPEIA continues Joomla’s tradition of space-themed default templates—
- building on the legacy of Solarflare from Joomla 1.0, Milkyway from Joomla 1.5,
- and Protostar from Joomla 3.0.
+ MOKO-CASSIOPEIA 2.0 continues Joomla’s tradition of space-themed default templates—
+ building on the legacy of Solarflare (Joomla 1.0), Milkyway (Joomla 1.5),
+ and Protostar (Joomla 3.0).
This template is a customized fork of the Cassiopeia template introduced in Joomla 4,
@@ -43,41 +60,40 @@ TPL_MOKO-CASSIOPEIA_XML_DESCRIPTION="
MOKO-CASSIOPEIA Template Description
- MOKO-CASSIOPEIA is designed to serve as a versatile, production-ready base for
- contemporary Joomla websites, emphasizing speed, clarity, and open-source philosophy.
+ Version 2.0 introduces significant new functionality including a Dark Mode toggle,
+ Google Tag Manager (GTM) and Google Analytics 4 (GA4) hooks, and expanded template configuration
+ options — all while keeping overrides minimal and upgrade-friendly.
Features
Fully responsive and mobile-first layout
Based on Joomla 4+ template architecture
- Enhanced SCSS and CSS overrides for custom styling
- Built-in support for Bootstrap 5
-
- Integrated dynamic Table of Contents via
- Bootstrap TOC
-
+ Enhanced SCSS and CSS overrides for streamlined custom styling
+ Built-in support for Bootstrap 5
+ Font Awesome 6 integration for modern iconography
+ Automatic Table of Contents (TOC) — selectable per article via toc-left or toc-right layouts
+ Dark Mode toggle (new in v2.0) with user switch and admin override
+ Optional GTM + GA4 hooks (new in v2.0) for analytics and marketing integration
Optimized template structure for performance and maintainability
Custom module positions and layout presets
- Accessible, lightweight, and extensible
+ Accessible, lightweight, and extensible for long-term use
Ideal for professional services, portfolios, and informational websites
Code Attribution
This template is based on the original Cassiopeia template developed by the
- Joomla! Project and released under the GNU General Public License.
+ Joomla! Project and released under the GNU General Public License.
Modifications and enhancements have been made by Moko Consulting in accordance with open-source licensing standards.
-
a
+
It includes integration with
- Bootstrap TOC ,
+ Bootstrap TOC ,
an open-source table of contents generator by A. Feld, licensed under the MIT License.
All third-party libraries and assets remain the property of their respective authors and are credited within their source files where applicable.
"
-
-JGLOBAL_OFFLINE="Offline"
diff --git a/media/templates/site/moko-cassiopeia/css/editor.css b/media/templates/site/moko-cassiopeia/css/editor.css
index bd2032d..f5c8d7d 100644
--- a/media/templates/site/moko-cassiopeia/css/editor.css
+++ b/media/templates/site/moko-cassiopeia/css/editor.css
@@ -1,3 +1,33 @@
+@charset "UTF-8";
+/* =========================================================================
+ * Copyright (C) 2025 Moko Consulting
+ *
+ * This file is part of a Moko Consulting project.
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see https://www.gnu.org/licenses/ .
+ * =========================================================================
+ * FILE INFORMATION
+ * DEFGROUP: Joomla
+ * INGROUP: Moko-Cassiopeia
+ * PATH: media/templates/site/moko-cassiopeia/css/editor.css
+ * VERSION: 02.00
+ * BRIEF: Stylesheet for Joomla editor content within Moko-Cassiopeia template
+ * =========================================================================
+ */
+
/* STYLES FOR JOOMLA! EDITOR */
body {
font-size: 1rem;
diff --git a/media/templates/site/moko-cassiopeia/css/gable.css b/media/templates/site/moko-cassiopeia/css/gable.css
index d5a281c..1e653df 100644
--- a/media/templates/site/moko-cassiopeia/css/gable.css
+++ b/media/templates/site/moko-cassiopeia/css/gable.css
@@ -1,3 +1,33 @@
+@charset "UTF-8";
+/* =========================================================================
+ * Copyright (C) 2025 Moko Consulting
+ *
+ * This file is part of a Moko Consulting project.
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see https://www.gnu.org/licenses/ .
+ * =========================================================================
+ * FILE INFORMATION
+ * DEFGROUP: Joomla
+ * INGROUP: Moko-Cassiopeia
+ * PATH: media/templates/site/moko-cassiopeia/css/gable.css
+ * VERSION: 02.00
+ * BRIEF: Stylesheet providing gable-specific layout and design rules for Moko-Cassiopeia
+ * =========================================================================
+ */
+
:root {
--gab-blue: transparent;
--gab-green: #7ac143;
diff --git a/media/templates/site/moko-cassiopeia/css/global/dark/colors_alternative.css b/media/templates/site/moko-cassiopeia/css/global/dark/colors_alternative.css
new file mode 100644
index 0000000..5130cea
--- /dev/null
+++ b/media/templates/site/moko-cassiopeia/css/global/dark/colors_alternative.css
@@ -0,0 +1,368 @@
+@charset "UTF-8";
+/* =========================================================================
+ * Copyright (C) 2025 Moko Consulting
+ *
+ * This file is part of a Moko Consulting project.
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see https://www.gnu.org/licenses/ .
+ * =========================================================================
+ * FILE INFORMATION
+ * DEFGROUP: Joomla
+ * INGROUP: Moko-Cassiopeia
+ * PATH: media/templates/site/moko-cassiopeia/css/global/dark/colors_alternative.css
+ * VERSION: 02.00
+ * BRIEF: Alternative dark mode color definitions for Moko-Cassiopeia template
+ * =========================================================================
+ */
+
+/* -----------------------------------------------
+ * DARK THEME
+ * --------------------------------------------- */
+
+:root[data-bs-theme='dark']{
+ /* System hint for native widgets */
+ color-scheme: dark;
+
+ /* Brand & links */
+ --color-primary: #112855;
+ --accent-color-primary: #3f8ff0;
+ --accent-color-secondary: #6fb3ff;
+
+ --mainmenu-nav-link-color: #fff;
+
+ --color-link: #224FAA;
+ --color-hover: #224FAA;
+
+ /* Header background (kept same image; works over dark bg) */
+ --header-background-image: url('../../../../../../media/templates/site/moko-cassiopeia/images/bg.svg'); --header-background-attachment: fixed;
+ --header-background-repeat: repeat;
+ --header-background-size: auto;
+
+ /* Section containers */
+ --container-below-topbar-bg-image: ;
+ --container-below-topbar-bg-color: ;
+ --container-below-topbar-bg-position: center;
+ --container-below-topbar-bg-attachment: fixed;
+ --container-below-topbar-bg-repeat: no-repeat;
+ --container-below-topbar-bg-size: cover;
+ --container-below-topbar-border: ;
+ --container-below-topbar-border-radius: ;
+
+ --container-top-a-bg-image: ;
+ --container-top-a-bg-color: ;
+ --container-top-a-bg-position: center;
+ --container-top-a-bg-attachment: fixed;
+ --container-top-a-bg-repeat: no-repeat;
+ --container-top-a-bg-size: cover;
+ --container-top-a-border: ;
+ --container-top-a-border-radius: ;
+
+ --container-top-b-bg-image: ;
+ --container-top-b-bg-color: ;
+ --container-top-b-bg-position: center;
+ --container-top-b-bg-attachment: fixed;
+ --container-top-b-bg-repeat: no-repeat;
+ --container-top-b-bg-size: cover;
+ --container-top-b-border: ;
+ --container-top-b-border-radius: ;
+
+ --container-toc-bg: ;
+ --container-toc-color: #dbe3ff;
+
+ --container-sidebar-bg-image: ;
+ --container-sidebar-bg-color: ;
+ --container-sidebar-bg-position: center;
+ --container-sidebar-bg-attachment: scroll;
+ --container-sidebar-bg-repeat: repeat;
+ --container-sidebar-bg-size: auto;
+ --container-sidebar-border: ;
+ --container-sidebar-border-radius: ;
+
+ --container-bottom-a-bg-image: ;
+ --container-bottom-a-bg-color: ;
+ --container-bottom-a-bg-position: center;
+ --container-bottom-a-bg-attachment: fixed;
+ --container-bottom-a-bg-repeat: no-repeat;
+ --container-bottom-a-bg-size: cover;
+ --container-bottom-a-border: ;
+ --container-bottom-a-border-radius: 5px;
+
+ --container-bottom-b-bg-image: ;
+ --container-bottom-b-bg-color: ;
+ --container-bottom-b-bg-position: center;
+ --container-bottom-b-bg-attachment: fixed;
+ --container-bottom-b-bg-repeat: no-repeat;
+ --container-bottom-b-bg-size: cover;
+ --container-bottom-b-border: ;
+ --container-bottom-b-border-radius: ;
+
+ /* Nav & accents */
+ --nav-text-color: var(--mainmenu-nav-link-color);
+ --nav-bg-color: var(--color-link);
+ --border: 5px;
+
+ --muted-color: #6d757e;
+ --hr-color: var(--border-color, #dfe3e7);
+ --link-active-color: var(--link-color);
+ --code-color-ink: var(--code-color, #e93f8e);
+ --border-color-soft: var(--border-color, #dfe3e7);
+ --kbd-bg: var(--secondary-bg, #eaedf0);
+ --kbd-ink: var(--body-bg, #fff);
+ --toc-bg: var(--secondary-bg, #eaedf0);
+ --toc-ink: var(--color-primary, #112855);
+ --selection-bg: var(--highlight-bg, #fbeea8);
+ --selection-ink: var(--body-color, #22262a);
+
+ /* Palette */
+ --blue: #91a4ff;
+ --black: #000;
+ --indigo: #b19cff;
+ --purple: #c0a5ff;
+ --pink: #ff8fc0;
+ --red: #ff7a73;
+ --orange: #ff9c4d;
+ --yellow: #ffd166;
+ --green: #78d694;
+ --teal: #76e3ff;
+ --cyan: #6fb7ff;
+ --white: #fff;
+
+ /* Grays tuned for dark */
+ --gray-100: #161a20;
+ --gray-200: #1b2027;
+ --gray-300: #222831;
+ --gray-400: #2b323b;
+ --gray-500: #36404a;
+ --gray-600: #48525d;
+ --gray-700: #5b6672;
+ --gray-800: #cfd6de;
+ --gray-900: #e6ebf1;
+
+ /* Contextuals (keep brand hues) */
+ --primary: #010156;
+ --secondary: #48525d;
+ --success: #4aa664;
+ --info: #4f7aa0;
+ --warning: #c77a00;
+ --danger: #c23a31;
+ --light: #1b2027;
+ --dark: #0f1318;
+
+ /* RGB helpers */
+ --primary-rgb: 1,1,86;
+ --secondary-rgb: 72,82,93;
+ --success-rgb: 74,166,100;
+ --info-rgb: 79,122,160;
+ --warning-rgb: 199,122,0;
+ --danger-rgb: 194,58,49;
+ --light-rgb: 27,32,39;
+ --dark-rgb: 15,19,24;
+
+ /* Emphasis & subtle variants */
+ --primary-text-emphasis: #c7ccff;
+ --secondary-text-emphasis: #cfd6de;
+ --success-text-emphasis: #bde8c9;
+ --info-text-emphasis: #bcd6ee;
+ --warning-text-emphasis: #ffd9a6;
+ --danger-text-emphasis: #ffb7b2;
+ --light-text-emphasis: #d2d8df;
+ --dark-text-emphasis: #d2d8df;
+
+ --primary-bg-subtle: #0b1030;
+ --secondary-bg-subtle: #1e2430;
+ --success-bg-subtle: #0f2a1b;
+ --info-bg-subtle: #0d2232;
+ --warning-bg-subtle: #2a1e06;
+ --danger-bg-subtle: #2d1110;
+ --light-bg-subtle: #12161d;
+ --dark-bg-subtle: #1e2430;
+
+ --primary-border-subtle: #2b3a7a;
+ --secondary-border-subtle: #2b323b;
+ --success-border-subtle: #2b5b40;
+ --info-border-subtle: #254861;
+ --warning-border-subtle: #5a3c0e;
+ --danger-border-subtle: #5c2723;
+ --light-border-subtle: #222831;
+ --dark-border-subtle: #2b323b;
+
+ /* Typography & layout */
+ --body-font-family: var(--optain-cassiopeia-font-family-body, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji');
+ --body-font-size: 1rem;
+ --body-font-weight: 400;
+ --body-line-height: 1.5;
+
+ --body-color: #e6ebf1;
+ --body-color-rgb: 230, 235, 241;
+ --body-bg: #0e1318;
+ --body-bg-rgb: 14, 19, 24;
+
+ --emphasis-color: #fff;
+ --emphasis-color-rgb: 255, 255, 255;
+
+ --secondary-color: #e6ebf1bf;
+ --secondary-color-rgb: 230, 235, 241;
+
+ --secondary-bg: #151b22;
+ --secondary-bg-rgb: 21, 27, 34;
+
+ --tertiary-color: #e6ebf180;
+ --tertiary-color-rgb: 230, 235, 241;
+ --tertiary-bg: #10151b;
+ --tertiary-bg-rgb: 16, 21, 27;
+
+ --heading-color: #f1f5f9;
+
+ --link-color: #8ab4f8;
+ --link-color-rgb: 138, 180, 248;
+ --link-decoration: underline;
+ --link-hover-color: #c3d6ff;
+ --link-hover-color-rgb: 195, 214, 255;
+
+ --code-color: #ff7abd;
+ --highlight-color: #111;
+ --highlight-bg: #ffe28a1a;
+
+ --border-width: 1px;
+ --border-style: solid;
+ --border-color: #2b323b;
+ --border-color-translucent: #ffffff26;
+
+ --border-radius: .25rem;
+ --border-radius-sm: .2rem;
+ --border-radius-lg: .3rem;
+ --border-radius-xl: .3rem;
+ --border-radius-xxl: 2rem;
+ --border-radius-2xl: var(--border-radius-xxl);
+ --border-radius-pill: 50rem;
+
+ --box-shadow: 0 .5rem 1rem #00000066;
+ --box-shadow-sm: 0 .125rem .25rem #00000040;
+ --box-shadow-lg: 0 1rem 3rem #00000080;
+ --box-shadow-inset: inset 0 1px 2px #00000040;
+
+ --focus-ring-width: .25rem;
+ --focus-ring-opacity: .6;
+ --focus-ring-color: #5472ff66;
+
+ --form-valid-color: #78d694;
+ --form-valid-border-color: #78d694;
+ --form-invalid-color: #ff8e86;
+ --form-invalid-border-color: #ff8e86;
+}
+
+.btn {
+ --btn-padding-x: 1rem;
+ --btn-padding-y: 0.6rem;
+ --btn-font-family: ;
+ --btn-font-size: 1rem;
+ --btn-font-weight: 400;
+ --btn-line-height: 1.5;
+ --btn-color: var(--white);
+ --btn-bg: transparent;
+ --btn-border-width: 1px;
+ --btn-border-color: transparent;
+ --btn-border-radius: 0.25rem;
+ --btn-active-border-color: transparent;
+ --btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
+ --btn-disabled-opacity: 0.65;
+ --btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--btn-focus-shadow-rgb), .5);
+ display: inline-block;
+ padding: var(--btn-padding-y) var(--btn-padding-x);
+ font-family: var(--btn-font-family);
+ font-size: var(--btn-font-size);
+ font-weight: var(--btn-font-weight);
+ line-height: var(--btn-line-height);
+ color: var(--btn-color);
+ text-align: center;
+ text-decoration: none;
+ vertical-align: middle;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ border: var(--btn-border-width) solid var(--btn-border-color);
+ border-radius: var(--btn-border-radius);
+ background-color: var(--btn-bg);
+ -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ -o-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+}
+
+/* Buttons — inherit brand hues; ensure strong contrast on dark bg */
+.btn-primary {
+ --btn-color: hsl(0, 0%, 100%);
+ --btn-bg: hsl(240, 98%, 17%);
+ --btn-border-color: hsl(240, 98%, 17%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: #010149;
+ --btn-hover-border-color: #010145;
+ --btn-focus-shadow-rgb: 84, 114, 255;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: #010145;
+ --btn-active-border-color: #010141;
+}
+
+.btn-secondary {
+ --btn-color: var(--nav-text-color);
+ --btn-bg: var(--nav-bg-color);
+ --btn-border-color: #3a4250;
+ --btn-hover-color: #fff;
+ --btn-hover-bg: #1b2a55;
+ --btn-hover-border-color: #162448;
+ --btn-focus-shadow-rgb: 84, 114, 255;
+ --btn-active-color: #fff;
+ --btn-active-bg: #162448;
+ --btn-active-border-color: #12203f;
+}
+
+/* Outline buttons on dark: keep readable borders */
+.btn-outline-light {
+ --btn-color: #e6ebf1;
+ --btn-border-color: #e6ebf1;
+ --btn-hover-color: #111;
+ --btn-hover-bg: #e6ebf1;
+ --btn-hover-border-color: #e6ebf1;
+ --btn-active-color: #111;
+ --btn-active-bg: #d7dce2;
+ --btn-active-border-color: #d7dce2;
+ --gradient: none;
+}
+
+/* Links as buttons */
+.btn-link {
+ --btn-font-weight: 400;
+ --btn-color: var(--link-color);
+ --btn-bg: transparent;
+ --btn-border-color: transparent;
+ --btn-hover-color: var(--link-hover-color);
+ --btn-hover-border-color: transparent;
+ --btn-active-color: var(--link-hover-color);
+ --btn-active-border-color: transparent;
+ --btn-disabled-color: #6d7781;
+ --btn-disabled-border-color: transparent;
+ --btn-box-shadow: none;
+ --btn-focus-shadow-rgb: 84, 114, 255;
+ text-decoration: underline;
+}
+
+.btn-secondary {
+ --btn-color: var(--nav-text-color);
+ --btn-bg: var(--nav-bg-color);
+}
diff --git a/media/templates/site/moko-cassiopeia/css/global/dark/colors_standard.css b/media/templates/site/moko-cassiopeia/css/global/dark/colors_standard.css
new file mode 100644
index 0000000..9da4f20
--- /dev/null
+++ b/media/templates/site/moko-cassiopeia/css/global/dark/colors_standard.css
@@ -0,0 +1,368 @@
+@charset "UTF-8";
+/* =========================================================================
+ * Copyright (C) 2025 Moko Consulting
+ *
+ * This file is part of a Moko Consulting project.
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see https://www.gnu.org/licenses/ .
+ * =========================================================================
+ * FILE INFORMATION
+ * DEFGROUP: Joomla
+ * INGROUP: Moko-Cassiopeia
+ * PATH: media/templates/site/moko-cassiopeia/css/global/dark/colors_standard.css
+ * VERSION: 02.00
+ * BRIEF: Standard dark mode color definitions for Moko-Cassiopeia template
+ * =========================================================================
+ */
+
+/* -----------------------------------------------
+ * DARK THEME
+ * --------------------------------------------- */
+
+:root[data-bs-theme='dark']{
+ /* System hint for native widgets */
+ color-scheme: dark;
+
+ /* Brand & links */
+ --color-primary: #112855;
+ --accent-color-primary: #3f8ff0;
+ --accent-color-secondary: #6fb3ff;
+
+ --mainmenu-nav-link-color: #fff;
+
+ --color-link: #224FAA;
+ --color-hover: #224FAA;
+
+ /* Header background (kept same image; works over dark bg) */
+ --header-background-image: url('../../../../../../media/templates/site/moko-cassiopeia/images/bg.svg'); --header-background-attachment: fixed;
+ --header-background-repeat: repeat;
+ --header-background-size: auto;
+
+ /* Section containers */
+ --container-below-topbar-bg-image: ;
+ --container-below-topbar-bg-color: ;
+ --container-below-topbar-bg-position: center;
+ --container-below-topbar-bg-attachment: fixed;
+ --container-below-topbar-bg-repeat: no-repeat;
+ --container-below-topbar-bg-size: cover;
+ --container-below-topbar-border: ;
+ --container-below-topbar-border-radius: ;
+
+ --container-top-a-bg-image: ;
+ --container-top-a-bg-color: ;
+ --container-top-a-bg-position: center;
+ --container-top-a-bg-attachment: fixed;
+ --container-top-a-bg-repeat: no-repeat;
+ --container-top-a-bg-size: cover;
+ --container-top-a-border: ;
+ --container-top-a-border-radius: ;
+
+ --container-top-b-bg-image: ;
+ --container-top-b-bg-color: ;
+ --container-top-b-bg-position: center;
+ --container-top-b-bg-attachment: fixed;
+ --container-top-b-bg-repeat: no-repeat;
+ --container-top-b-bg-size: cover;
+ --container-top-b-border: ;
+ --container-top-b-border-radius: ;
+
+ --container-toc-bg: ;
+ --container-toc-color: #dbe3ff;
+
+ --container-sidebar-bg-image: ;
+ --container-sidebar-bg-color: ;
+ --container-sidebar-bg-position: center;
+ --container-sidebar-bg-attachment: scroll;
+ --container-sidebar-bg-repeat: repeat;
+ --container-sidebar-bg-size: auto;
+ --container-sidebar-border: ;
+ --container-sidebar-border-radius: ;
+
+ --container-bottom-a-bg-image: ;
+ --container-bottom-a-bg-color: ;
+ --container-bottom-a-bg-position: center;
+ --container-bottom-a-bg-attachment: fixed;
+ --container-bottom-a-bg-repeat: no-repeat;
+ --container-bottom-a-bg-size: cover;
+ --container-bottom-a-border: ;
+ --container-bottom-a-border-radius: 5px;
+
+ --container-bottom-b-bg-image: ;
+ --container-bottom-b-bg-color: ;
+ --container-bottom-b-bg-position: center;
+ --container-bottom-b-bg-attachment: fixed;
+ --container-bottom-b-bg-repeat: no-repeat;
+ --container-bottom-b-bg-size: cover;
+ --container-bottom-b-border: ;
+ --container-bottom-b-border-radius: ;
+
+ /* Nav & accents */
+ --nav-text-color: var(--mainmenu-nav-link-color);
+ --nav-bg-color: var(--color-link);
+ --border: 5px;
+
+ --muted-color: #6d757e;
+ --hr-color: var(--border-color, #dfe3e7);
+ --link-active-color: var(--link-color);
+ --code-color-ink: var(--code-color, #e93f8e);
+ --border-color-soft: var(--border-color, #dfe3e7);
+ --kbd-bg: var(--secondary-bg, #eaedf0);
+ --kbd-ink: var(--body-bg, #fff);
+ --toc-bg: var(--secondary-bg, #eaedf0);
+ --toc-ink: var(--color-primary, #112855);
+ --selection-bg: var(--highlight-bg, #fbeea8);
+ --selection-ink: var(--body-color, #22262a);
+
+ /* Palette */
+ --blue: #91a4ff;
+ --black: #000;
+ --indigo: #b19cff;
+ --purple: #c0a5ff;
+ --pink: #ff8fc0;
+ --red: #ff7a73;
+ --orange: #ff9c4d;
+ --yellow: #ffd166;
+ --green: #78d694;
+ --teal: #76e3ff;
+ --cyan: #6fb7ff;
+ --white: #fff;
+
+ /* Grays tuned for dark */
+ --gray-100: #161a20;
+ --gray-200: #1b2027;
+ --gray-300: #222831;
+ --gray-400: #2b323b;
+ --gray-500: #36404a;
+ --gray-600: #48525d;
+ --gray-700: #5b6672;
+ --gray-800: #cfd6de;
+ --gray-900: #e6ebf1;
+
+ /* Contextuals (keep brand hues) */
+ --primary: #010156;
+ --secondary: #48525d;
+ --success: #4aa664;
+ --info: #4f7aa0;
+ --warning: #c77a00;
+ --danger: #c23a31;
+ --light: #1b2027;
+ --dark: #0f1318;
+
+ /* RGB helpers */
+ --primary-rgb: 1,1,86;
+ --secondary-rgb: 72,82,93;
+ --success-rgb: 74,166,100;
+ --info-rgb: 79,122,160;
+ --warning-rgb: 199,122,0;
+ --danger-rgb: 194,58,49;
+ --light-rgb: 27,32,39;
+ --dark-rgb: 15,19,24;
+
+ /* Emphasis & subtle variants */
+ --primary-text-emphasis: #c7ccff;
+ --secondary-text-emphasis: #cfd6de;
+ --success-text-emphasis: #bde8c9;
+ --info-text-emphasis: #bcd6ee;
+ --warning-text-emphasis: #ffd9a6;
+ --danger-text-emphasis: #ffb7b2;
+ --light-text-emphasis: #d2d8df;
+ --dark-text-emphasis: #d2d8df;
+
+ --primary-bg-subtle: #0b1030;
+ --secondary-bg-subtle: #1e2430;
+ --success-bg-subtle: #0f2a1b;
+ --info-bg-subtle: #0d2232;
+ --warning-bg-subtle: #2a1e06;
+ --danger-bg-subtle: #2d1110;
+ --light-bg-subtle: #12161d;
+ --dark-bg-subtle: #1e2430;
+
+ --primary-border-subtle: #2b3a7a;
+ --secondary-border-subtle: #2b323b;
+ --success-border-subtle: #2b5b40;
+ --info-border-subtle: #254861;
+ --warning-border-subtle: #5a3c0e;
+ --danger-border-subtle: #5c2723;
+ --light-border-subtle: #222831;
+ --dark-border-subtle: #2b323b;
+
+ /* Typography & layout */
+ --body-font-family: var(--optain-cassiopeia-font-family-body, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji');
+ --body-font-size: 1rem;
+ --body-font-weight: 400;
+ --body-line-height: 1.5;
+
+ --body-color: #e6ebf1;
+ --body-color-rgb: 230, 235, 241;
+ --body-bg: #0e1318;
+ --body-bg-rgb: 14, 19, 24;
+
+ --emphasis-color: #fff;
+ --emphasis-color-rgb: 255, 255, 255;
+
+ --secondary-color: #e6ebf1bf;
+ --secondary-color-rgb: 230, 235, 241;
+
+ --secondary-bg: #151b22;
+ --secondary-bg-rgb: 21, 27, 34;
+
+ --tertiary-color: #e6ebf180;
+ --tertiary-color-rgb: 230, 235, 241;
+ --tertiary-bg: #10151b;
+ --tertiary-bg-rgb: 16, 21, 27;
+
+ --heading-color: #f1f5f9;
+
+ --link-color: #8ab4f8;
+ --link-color-rgb: 138, 180, 248;
+ --link-decoration: underline;
+ --link-hover-color: #c3d6ff;
+ --link-hover-color-rgb: 195, 214, 255;
+
+ --code-color: #ff7abd;
+ --highlight-color: #111;
+ --highlight-bg: #ffe28a1a;
+
+ --border-width: 1px;
+ --border-style: solid;
+ --border-color: #2b323b;
+ --border-color-translucent: #ffffff26;
+
+ --border-radius: .25rem;
+ --border-radius-sm: .2rem;
+ --border-radius-lg: .3rem;
+ --border-radius-xl: .3rem;
+ --border-radius-xxl: 2rem;
+ --border-radius-2xl: var(--border-radius-xxl);
+ --border-radius-pill: 50rem;
+
+ --box-shadow: 0 .5rem 1rem #00000066;
+ --box-shadow-sm: 0 .125rem .25rem #00000040;
+ --box-shadow-lg: 0 1rem 3rem #00000080;
+ --box-shadow-inset: inset 0 1px 2px #00000040;
+
+ --focus-ring-width: .25rem;
+ --focus-ring-opacity: .6;
+ --focus-ring-color: #5472ff66;
+
+ --form-valid-color: #78d694;
+ --form-valid-border-color: #78d694;
+ --form-invalid-color: #ff8e86;
+ --form-invalid-border-color: #ff8e86;
+}
+
+.btn {
+ --btn-padding-x: 1rem;
+ --btn-padding-y: 0.6rem;
+ --btn-font-family: ;
+ --btn-font-size: 1rem;
+ --btn-font-weight: 400;
+ --btn-line-height: 1.5;
+ --btn-color: var(--white);
+ --btn-bg: transparent;
+ --btn-border-width: 1px;
+ --btn-border-color: transparent;
+ --btn-border-radius: 0.25rem;
+ --btn-active-border-color: transparent;
+ --btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
+ --btn-disabled-opacity: 0.65;
+ --btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--btn-focus-shadow-rgb), .5);
+ display: inline-block;
+ padding: var(--btn-padding-y) var(--btn-padding-x);
+ font-family: var(--btn-font-family);
+ font-size: var(--btn-font-size);
+ font-weight: var(--btn-font-weight);
+ line-height: var(--btn-line-height);
+ color: var(--btn-color);
+ text-align: center;
+ text-decoration: none;
+ vertical-align: middle;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ border: var(--btn-border-width) solid var(--btn-border-color);
+ border-radius: var(--btn-border-radius);
+ background-color: var(--btn-bg);
+ -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ -o-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+}
+
+/* Buttons — inherit brand hues; ensure strong contrast on dark bg */
+.btn-primary {
+ --btn-color: hsl(0, 0%, 100%);
+ --btn-bg: hsl(240, 98%, 17%);
+ --btn-border-color: hsl(240, 98%, 17%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: #010149;
+ --btn-hover-border-color: #010145;
+ --btn-focus-shadow-rgb: 84, 114, 255;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: #010145;
+ --btn-active-border-color: #010141;
+}
+
+.btn-secondary {
+ --btn-color: var(--nav-text-color);
+ --btn-bg: var(--nav-bg-color);
+ --btn-border-color: #3a4250;
+ --btn-hover-color: #fff;
+ --btn-hover-bg: #1b2a55;
+ --btn-hover-border-color: #162448;
+ --btn-focus-shadow-rgb: 84, 114, 255;
+ --btn-active-color: #fff;
+ --btn-active-bg: #162448;
+ --btn-active-border-color: #12203f;
+}
+
+/* Outline buttons on dark: keep readable borders */
+.btn-outline-light {
+ --btn-color: #e6ebf1;
+ --btn-border-color: #e6ebf1;
+ --btn-hover-color: #111;
+ --btn-hover-bg: #e6ebf1;
+ --btn-hover-border-color: #e6ebf1;
+ --btn-active-color: #111;
+ --btn-active-bg: #d7dce2;
+ --btn-active-border-color: #d7dce2;
+ --gradient: none;
+}
+
+/* Links as buttons */
+.btn-link {
+ --btn-font-weight: 400;
+ --btn-color: var(--link-color);
+ --btn-bg: transparent;
+ --btn-border-color: transparent;
+ --btn-hover-color: var(--link-hover-color);
+ --btn-hover-border-color: transparent;
+ --btn-active-color: var(--link-hover-color);
+ --btn-active-border-color: transparent;
+ --btn-disabled-color: #6d7781;
+ --btn-disabled-border-color: transparent;
+ --btn-box-shadow: none;
+ --btn-focus-shadow-rgb: 84, 114, 255;
+ text-decoration: underline;
+}
+
+.btn-secondary {
+ --btn-color: var(--nav-text-color);
+ --btn-bg: var(--nav-bg-color);
+}
diff --git a/media/templates/site/moko-cassiopeia/css/global/dark/index.html b/media/templates/site/moko-cassiopeia/css/global/dark/index.html
new file mode 100644
index 0000000..206e130
--- /dev/null
+++ b/media/templates/site/moko-cassiopeia/css/global/dark/index.html
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+
+ Redirecting…
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Redirecting to the site root… If you are not redirected,
click here .
+
+
diff --git a/media/templates/site/moko-cassiopeia/css/global/light/colors_alternative.css b/media/templates/site/moko-cassiopeia/css/global/light/colors_alternative.css
new file mode 100644
index 0000000..1668018
--- /dev/null
+++ b/media/templates/site/moko-cassiopeia/css/global/light/colors_alternative.css
@@ -0,0 +1,568 @@
+@charset "UTF-8";
+/* =========================================================================
+ * Copyright (C) 2025 Moko Consulting
+ *
+ * This file is part of a Moko Consulting project.
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see https://www.gnu.org/licenses/ .
+ * =========================================================================
+ * FILE INFORMATION
+ * DEFGROUP: Joomla
+ * INGROUP: Moko-Cassiopeia
+ * PATH: media/templates/site/moko-cassiopeia/css/global/light/colors_alternative.css
+ * VERSION: 02.00
+ * BRIEF: Alternative light mode color definitions for Moko-Cassiopeia template
+ * =========================================================================
+ */
+
+/* -----------------------------------------------
+ * LIGHT THEME
+ * --------------------------------------------- */
+
+:root[data-bs-theme="light"] {
+ color-scheme: light;
+ --color-primary: #112855;
+ --accent-color-primary: #3f8ff0;
+ --accent-color-secondary: #3f8ff0;
+
+ --mainmenu-nav-link-color: white;
+
+ --color-link: #224FAA;
+ --color-hover: var(--accent-color-primary);
+
+ --header-background-image: url('../../../../../../media/templates/site/moko-cassiopeia/images/bg.svg');
+ --header-background-attachment: fixed;
+ --header-background-repeat: repeat;
+ --header-background-size: auto;
+
+ --container-below-topbar-bg-image: ;
+ --container-below-topbar-bg-color ;
+ --container-below-topbar-bg-position: auto;
+ --container-below-topbar-bg-attachment: fixed;
+ --container-below-topbar-bg-repeat: repeat;
+ --container-below-topbar-bg-size: auto;
+ --container-below-topbar-border: ;
+ --container-below-topbar-border-radius: ;
+
+ --container-top-a-bg-image: ;
+ --container-top-a-bg-color: ;
+ --container-top-a-bg-position: auto;
+ --container-top-a-bg-attachment: fixed;
+ --container-top-a-bg-repeat: repeat;
+ --container-top-a-bg-size: auto;
+ --container-top-a-border: ;
+ --container-top-a-border-radius: ;
+
+ --container-top-b-bg-image: ;
+ --container-top-b-bg-color: ;
+ --container-top-b-bg-position: auto;
+ --container-top-b-bg-attachment: fixed;
+ --container-top-b-bg-repeat: repeat;
+ --container-top-b-bg-size: auto;
+ --container-top-b-border: ;
+ --container-top-b-border-radius: ;
+
+ --container-toc-bg: var(--mainmenu-nav-link-color);
+ --container-toc-color: var(--color-primary);
+
+ --container-sidebar-bg-image: ;
+ --container-sidebar-bg-color: ;
+ --container-sidebar-bg-position: auto;
+ --container-sidebar-bg-attachment: scroll;
+ --container-sidebar-bg-repeat: repeat;
+ --container-sidebar-bg-size: auto;
+ --container-sidebar-border: ;
+ --container-sidebar-border-radius: ;
+
+ --container-bottom-a-bg-image: ;
+ --container-bottom-a-bg-color: ;
+ --container-bottom-a-bg-position: auto;
+ --container-bottom-a-bg-attachment: fixed;
+ --container-bottom-a-bg-repeat: repeat;
+ --container-bottom-a-bg-size: auto;
+ --container-bottom-a-border: ;
+ --container-bottom-a-border-radius: ;
+
+ --container-bottom-b-bg-image: ;
+ --container-bottom-b-bg-color: ;
+ --container-bottom-b-bg-position: auto;
+ --container-bottom-b-bg-attachment: fixed;
+ --container-bottom-b-bg-repeat: repeat;
+ --container-bottom-b-bg-size: auto;
+ --container-bottom-b-border: ;
+ --container-bottom-b-border-radius: ;
+
+ --nav-text-color: var(--mainmenu-nav-link-color);
+ --nav-bg-color: var(--color-link);
+ --border: 5px;
+
+ --muted-color: #6d757e;
+ --hr-color: var(--border-color, #dfe3e7);
+ --link-active-color: var(--link-color);
+ --code-color-ink: var(--code-color, #e93f8e);
+ --border-color-soft: var(--border-color, #dfe3e7);
+ --kbd-bg: var(--secondary-bg, #eaedf0);
+ --kbd-ink: var(--body-bg, #fff);
+ --toc-bg: var(--secondary-bg, #eaedf0);
+ --toc-ink: var(--color-primary, #112855);
+ --selection-bg: var(--highlight-bg, #fbeea8);
+ --selection-ink: var(--body-color, #22262a);
+
+ --blue: #010156;
+ --black: #000;
+ --indigo: #6812f3;
+ --purple: #6f42c2;
+ --pink: #e93f8e;
+ --red: #a51f18;
+ --orange: #fd7e17;
+ --yellow: #ad6200;
+ --green: #448344;
+ --teal: #5abfdd;
+ --cyan: #30638d;
+ --white: #fff;
+ --gray-100: #f9fafb;
+ --gray-200: #eaedf0;
+ --gray-300: #dfe3e7;
+ --gray-400: #ced4da;
+ --gray-500: #adb5bd;
+ --gray-600: #6d757e;
+ --gray-700: #484f56;
+ --gray-800: #353b41;
+ --gray-900: #22262a;
+ --primary: #010156;
+ --secondary: #6d757e;
+ --success: #448344;
+ --info: #30638d;
+ --warning: #ad6200;
+ --danger: #a51f18;
+ --light: #f9fafb;
+ --dark: #353b41;
+ --primary-rgb: 1, 1, 86;
+ --secondary-rgb: 109, 117, 126;
+ --success-rgb: 68, 131, 68;
+ --info-rgb: 48, 99, 141;
+ --warning-rgb: 173, 98, 0;
+ --danger-rgb: 165, 31, 24;
+ --light-rgb: 249, 250, 251;
+ --dark-rgb: 53, 59, 65;
+ --primary-text-emphasis: #002;
+ --secondary-text-emphasis: #2c2f32;
+ --success-text-emphasis: #1b351b;
+ --info-text-emphasis: #132838;
+ --warning-text-emphasis: #452700;
+ --danger-text-emphasis: #420c09;
+ --light-text-emphasis: #484f56;
+ --dark-text-emphasis: #484f56;
+ --primary-bg-subtle: #ccd;
+ --secondary-bg-subtle: #e2e3e5;
+ --success-bg-subtle: #dae6da;
+ --info-bg-subtle: #d6e0e8;
+ --warning-bg-subtle: #efe0cc;
+ --danger-bg-subtle: #edd2d1;
+ --light-bg-subtle: #fcfcfd;
+ --dark-bg-subtle: #ced4da;
+ --primary-border-subtle: #99b;
+ --secondary-border-subtle: #c5c8cb;
+ --success-border-subtle: #b4ceb4;
+ --info-border-subtle: #acc1d1;
+ --warning-border-subtle: #dec099;
+ --danger-border-subtle: #dba5a2;
+ --light-border-subtle: #eaedf0;
+ --dark-border-subtle: #adb5bd;
+ --white-rgb: 255, 255, 255;
+ --black-rgb: 0, 0, 0;
+ --font-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+ --font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+ --gradient: linear-gradient(180deg, #ffffff26, #fff0);
+ --body-font-family: var(--optain-cassiopeia-font-family-body, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
+ --body-font-size: 1rem;
+ --body-font-weight: 400;
+ --body-line-height: 1.5;
+ --body-color: #22262a;
+ --body-color-rgb: 34, 38, 42;
+ --body-bg: #fff;
+ --body-bg-rgb: 255, 255, 255;
+ --emphasis-color: #000;
+ --emphasis-color-rgb: 0, 0, 0;
+ --secondary-color: #22262abf;
+ --secondary-color-rgb: 34, 38, 42;
+ --secondary-bg: #eaedf0;
+ --secondary-bg-rgb: 234, 237, 240;
+ --tertiary-color: #22262a80;
+ --tertiary-color-rgb: 34, 38, 42;
+ --tertiary-bg: #f9fafb;
+ --tertiary-bg-rgb: 249, 250, 251;
+ --heading-color: inherit;
+ --link-color: #224faa;
+ --link-color-rgb: 34, 79, 170;
+ --link-decoration: underline;
+ --link-hover-color: #424077;
+ --link-hover-color-rgb: 66, 64, 119;
+ --code-color: #e93f8e;
+ --highlight-color: #22262a;
+ --highlight-bg: #fbeea8;
+ --border-width: 1px;
+ --border-style: solid;
+ --border-color: #dfe3e7;
+ --border-color-translucent: #0000002d;
+ --border-radius: .25rem;
+ --border-radius-sm: .2rem;
+ --border-radius-lg: .3rem;
+ --border-radius-xl: .3rem;
+ --border-radius-xxl: 2rem;
+ --border-radius-2xl: var(--border-radius-xxl)*2;
+ --border-radius-pill: 50rem;
+ --box-shadow: 0 .5rem 1rem #00000026;
+ --box-shadow-sm: 0 .125rem .25rem #00000013;
+ --box-shadow-lg: 0 1rem 3rem #0000002d;
+ --box-shadow-inset: inset 0 1px 2px #00000013;
+ --focus-ring-width: .25rem;
+ --focus-ring-opacity: .25;
+ --focus-ring-color: #01015640;
+ --form-valid-color: #448344;
+ --form-valid-border-color: #448344;
+ --form-invalid-color: #a51f18;
+ --form-invalid-border-color: #a51f18;
+}
+
+.btn {
+ --btn-padding-x: 1rem;
+ --btn-padding-y: 0.6rem;
+ --btn-font-family: ;
+ --btn-font-size: 1rem;
+ --btn-font-weight: 400;
+ --btn-line-height: 1.5;
+ --btn-color: hsl(210, 11%, 15%);
+ --btn-bg: transparent;
+ --btn-border-width: 1px;
+ --btn-border-color: transparent;
+ --btn-border-radius: 0.25rem;
+ --btn-active-border-color: transparent;
+ --btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
+ --btn-disabled-opacity: 0.65;
+ --btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--btn-focus-shadow-rgb), .5);
+ display: inline-block;
+ padding: var(--btn-padding-y) var(--btn-padding-x);
+ font-family: var(--btn-font-family);
+ font-size: var(--btn-font-size);
+ font-weight: var(--btn-font-weight);
+ line-height: var(--btn-line-height);
+ color: var(--btn-color);
+ text-align: center;
+ text-decoration: none;
+ vertical-align: middle;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ border: var(--btn-border-width) solid var(--btn-border-color);
+ border-radius: var(--btn-border-radius);
+ background-color: var(--btn-bg);
+ -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ -o-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+}
+
+.btn-primary {
+ --btn-color: hsl(0, 0%, 100%);
+ --btn-bg: hsl(240, 98%, 17%);
+ --btn-border-color: hsl(240, 98%, 17%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: #010149;
+ --btn-hover-border-color: #010145;
+ --btn-focus-shadow-rgb: 39, 39, 111;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: #010145;
+ --btn-active-border-color: #010141;
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(0, 0%, 100%);
+ --btn-disabled-bg: hsl(240, 98%, 17%);
+ --btn-disabled-border-color: hsl(240, 98%, 17%);
+}
+
+.btn-secondary {
+ --btn-color: --nav-text-color;
+ --btn-bg: --nav-bg-color;
+ --btn-border-color: hsl(210, 7%, 46%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: #5d636b;
+ --btn-hover-border-color: #575e65;
+ --btn-focus-shadow-rgb: gray;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: #575e65;
+ --btn-active-border-color: #52585f;
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(0, 0%, 100%);
+ --btn-disabled-bg: hsl(210, 7%, 46%);
+ --btn-disabled-border-color: hsl(210, 7%, 46%);
+}
+
+.btn-success {
+ --btn-color: hsl(0, 0%, 100%);
+ --btn-bg: hsl(120, 32%, 39%);
+ --btn-border-color: hsl(120, 32%, 39%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: #3a6f3a;
+ --btn-hover-border-color: #366936;
+ --btn-focus-shadow-rgb: 96, 150, 96;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: #366936;
+ --btn-active-border-color: #336233;
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(0, 0%, 100%);
+ --btn-disabled-bg: hsl(120, 32%, 39%);
+ --btn-disabled-border-color: hsl(120, 32%, 39%);
+}
+
+.btn-info {
+ --btn-color: hsl(0, 0%, 100%);
+ --btn-bg: hsl(207, 49%, 37%);
+ --btn-border-color: hsl(207, 49%, 37%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: #295478;
+ --btn-hover-border-color: #264f71;
+ --btn-focus-shadow-rgb: 79, 122, 158;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: #264f71;
+ --btn-active-border-color: #244a6a;
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(0, 0%, 100%);
+ --btn-disabled-bg: hsl(207, 49%, 37%);
+ --btn-disabled-border-color: hsl(207, 49%, 37%);
+}
+
+.btn-warning {
+ --btn-color: hsl(0, 0%, 100%);
+ --btn-bg: hsl(34, 100%, 34%);
+ --btn-border-color: hsl(34, 100%, 34%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: #935300;
+ --btn-hover-border-color: #8a4e00;
+ --btn-focus-shadow-rgb: 185, 122, 38;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: #8a4e00;
+ --btn-active-border-color: #824a00;
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(0, 0%, 100%);
+ --btn-disabled-bg: hsl(34, 100%, 34%);
+ --btn-disabled-border-color: hsl(34, 100%, 34%);
+}
+
+.btn-danger {
+ --btn-color: hsl(0, 0%, 100%);
+ --btn-bg: hsl(3, 75%, 37%);
+ --btn-border-color: hsl(3, 75%, 37%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: #8c1a14;
+ --btn-hover-border-color: #841913;
+ --btn-focus-shadow-rgb: 179, 65, 59;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: #841913;
+ --btn-active-border-color: #7c1712;
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(0, 0%, 100%);
+ --btn-disabled-bg: hsl(3, 75%, 37%);
+ --btn-disabled-border-color: hsl(3, 75%, 37%);
+}
+
+.btn-light {
+ --btn-color: hsl(0, 0%, 0%);
+ --btn-bg: hsl(210, 17%, 98%);
+ --btn-border-color: hsl(210, 17%, 98%);
+ --btn-hover-color: hsl(0, 0%, 0%);
+ --btn-hover-bg: #d4d5d5;
+ --btn-hover-border-color: #c7c8c9;
+ --btn-focus-shadow-rgb: 212, 213, 213;
+ --btn-active-color: hsl(0, 0%, 0%);
+ --btn-active-bg: #c7c8c9;
+ --btn-active-border-color: #bbbcbc;
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(0, 0%, 0%);
+ --btn-disabled-bg: hsl(210, 17%, 98%);
+ --btn-disabled-border-color: hsl(210, 17%, 98%);
+}
+
+.btn-dark {
+ --btn-color: hsl(0, 0%, 100%);
+ --btn-bg: hsl(210, 10%, 23%);
+ --btn-border-color: hsl(210, 10%, 23%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: #53585e;
+ --btn-hover-border-color: #494f54;
+ --btn-focus-shadow-rgb: 83, 88, 94;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: #5d6267;
+ --btn-active-border-color: #494f54;
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(0, 0%, 100%);
+ --btn-disabled-bg: hsl(210, 10%, 23%);
+ --btn-disabled-border-color: hsl(210, 10%, 23%);
+}
+
+.btn-outline-primary {
+ --btn-color: hsl(240, 98%, 17%);
+ --btn-border-color: hsl(240, 98%, 17%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: hsl(240, 98%, 17%);
+ --btn-hover-border-color: hsl(240, 98%, 17%);
+ --btn-focus-shadow-rgb: 1, 1, 86;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: hsl(240, 98%, 17%);
+ --btn-active-border-color: hsl(240, 98%, 17%);
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(240, 98%, 17%);
+ --btn-disabled-bg: transparent;
+ --btn-disabled-border-color: hsl(240, 98%, 17%);
+ --gradient: none;
+}
+
+.btn-outline-secondary {
+ --btn-color: hsl(210, 7%, 46%);
+ --btn-border-color: hsl(210, 7%, 46%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: hsl(210, 7%, 46%);
+ --btn-hover-border-color: hsl(210, 7%, 46%);
+ --btn-focus-shadow-rgb: 109, 117, 126;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: hsl(210, 7%, 46%);
+ --btn-active-border-color: hsl(210, 7%, 46%);
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(210, 7%, 46%);
+ --btn-disabled-bg: transparent;
+ --btn-disabled-border-color: hsl(210, 7%, 46%);
+ --gradient: none;
+}
+
+.btn-outline-success {
+ --btn-color: hsl(120, 32%, 39%);
+ --btn-border-color: hsl(120, 32%, 39%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: hsl(120, 32%, 39%);
+ --btn-hover-border-color: hsl(120, 32%, 39%);
+ --btn-focus-shadow-rgb: 68, 131, 68;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: hsl(120, 32%, 39%);
+ --btn-active-border-color: hsl(120, 32%, 39%);
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(120, 32%, 39%);
+ --btn-disabled-bg: transparent;
+ --btn-disabled-border-color: hsl(120, 32%, 39%);
+ --gradient: none;
+}
+
+.btn-outline-info {
+ --btn-color: hsl(207, 49%, 37%);
+ --btn-border-color: hsl(207, 49%, 37%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: hsl(207, 49%, 37%);
+ --btn-hover-border-color: hsl(207, 49%, 37%);
+ --btn-focus-shadow-rgb: 48, 99, 141;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: hsl(207, 49%, 37%);
+ --btn-active-border-color: hsl(207, 49%, 37%);
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(207, 49%, 37%);
+ --btn-disabled-bg: transparent;
+ --btn-disabled-border-color: hsl(207, 49%, 37%);
+ --gradient: none;
+}
+
+.btn-outline-warning {
+ --btn-color: hsl(34, 100%, 34%);
+ --btn-border-color: hsl(34, 100%, 34%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: hsl(34, 100%, 34%);
+ --btn-hover-border-color: hsl(34, 100%, 34%);
+ --btn-focus-shadow-rgb: 173, 98, 0;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: hsl(34, 100%, 34%);
+ --btn-active-border-color: hsl(34, 100%, 34%);
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(34, 100%, 34%);
+ --btn-disabled-bg: transparent;
+ --btn-disabled-border-color: hsl(34, 100%, 34%);
+ --gradient: none;
+}
+
+.btn-outline-danger {
+ --btn-color: hsl(3, 75%, 37%);
+ --btn-border-color: hsl(3, 75%, 37%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: hsl(3, 75%, 37%);
+ --btn-hover-border-color: hsl(3, 75%, 37%);
+ --btn-focus-shadow-rgb: 165, 31, 24;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: hsl(3, 75%, 37%);
+ --btn-active-border-color: hsl(3, 75%, 37%);
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(3, 75%, 37%);
+ --btn-disabled-bg: transparent;
+ --btn-disabled-border-color: hsl(3, 75%, 37%);
+ --gradient: none;
+}
+
+.btn-outline-light {
+ --btn-color: hsl(210, 17%, 98%);
+ --btn-border-color: hsl(210, 17%, 98%);
+ --btn-hover-color: hsl(0, 0%, 0%);
+ --btn-hover-bg: hsl(210, 17%, 98%);
+ --btn-hover-border-color: hsl(210, 17%, 98%);
+ --btn-focus-shadow-rgb: 249, 250, 251;
+ --btn-active-color: hsl(0, 0%, 0%);
+ --btn-active-bg: hsl(210, 17%, 98%);
+ --btn-active-border-color: hsl(210, 17%, 98%);
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(210, 17%, 98%);
+ --btn-disabled-bg: transparent;
+ --btn-disabled-border-color: hsl(210, 17%, 98%);
+ --gradient: none;
+}
+
+.btn-outline-dark {
+ --btn-color: hsl(210, 10%, 23%);
+ --btn-border-color: hsl(210, 10%, 23%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: hsl(210, 10%, 23%);
+ --btn-hover-border-color: hsl(210, 10%, 23%);
+ --btn-focus-shadow-rgb: 53, 59, 65;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: hsl(210, 10%, 23%);
+ --btn-active-border-color: hsl(210, 10%, 23%);
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(210, 10%, 23%);
+ --btn-disabled-bg: transparent;
+ --btn-disabled-border-color: hsl(210, 10%, 23%);
+ --gradient: none;
+}
+
+.btn-link {
+ --btn-font-weight: 400;
+ --btn-color: var(--link-color);
+ --btn-bg: transparent;
+ --btn-border-color: transparent;
+ --btn-hover-color: var(--link-hover-color);
+ --btn-hover-border-color: transparent;
+ --btn-active-color: var(--link-hover-color);
+ --btn-active-border-color: transparent;
+ --btn-disabled-color: hsl(210, 7%, 46%);
+ --btn-disabled-border-color: transparent;
+ --btn-box-shadow: none;
+ --btn-focus-shadow-rgb: 39, 39, 111;
+ text-decoration: underline;
+}
diff --git a/media/templates/site/moko-cassiopeia/css/global/light/colors_standard.css b/media/templates/site/moko-cassiopeia/css/global/light/colors_standard.css
new file mode 100644
index 0000000..a2de92d
--- /dev/null
+++ b/media/templates/site/moko-cassiopeia/css/global/light/colors_standard.css
@@ -0,0 +1,568 @@
+@charset "UTF-8";
+/* =========================================================================
+ * Copyright (C) 2025 Moko Consulting
+ *
+ * This file is part of a Moko Consulting project.
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see https://www.gnu.org/licenses/ .
+ * =========================================================================
+ * FILE INFORMATION
+ * DEFGROUP: Joomla
+ * INGROUP: Moko-Cassiopeia
+ * PATH: media/templates/site/moko-cassiopeia/css/global/light/colors_standard.css
+ * VERSION: 02.00
+ * BRIEF: Standard light mode color definitions for Moko-Cassiopeia template
+ * =========================================================================
+ */
+
+/* -----------------------------------------------
+ * LIGHT THEME
+ * --------------------------------------------- */
+
+:root[data-bs-theme="light"] {
+ color-scheme: light;
+ --color-primary: #112855;
+ --accent-color-primary: #3f8ff0;
+ --accent-color-secondary: #3f8ff0;
+
+ --mainmenu-nav-link-color: white;
+
+ --color-link: #224FAA;
+ --color-hover: var(--accent-color-primary);
+
+ --header-background-image: url('../../../../../../media/templates/site/moko-cassiopeia/images/bg.svg');
+ --header-background-attachment: fixed;
+ --header-background-repeat: repeat;
+ --header-background-size: auto;
+
+ --container-below-topbar-bg-image: ;
+ --container-below-topbar-bg-color ;
+ --container-below-topbar-bg-position: auto;
+ --container-below-topbar-bg-attachment: fixed;
+ --container-below-topbar-bg-repeat: repeat;
+ --container-below-topbar-bg-size: auto;
+ --container-below-topbar-border: ;
+ --container-below-topbar-border-radius: ;
+
+ --container-top-a-bg-image: ;
+ --container-top-a-bg-color: ;
+ --container-top-a-bg-position: auto;
+ --container-top-a-bg-attachment: fixed;
+ --container-top-a-bg-repeat: repeat;
+ --container-top-a-bg-size: auto;
+ --container-top-a-border: ;
+ --container-top-a-border-radius: ;
+
+ --container-top-b-bg-image: ;
+ --container-top-b-bg-color: ;
+ --container-top-b-bg-position: auto;
+ --container-top-b-bg-attachment: fixed;
+ --container-top-b-bg-repeat: repeat;
+ --container-top-b-bg-size: auto;
+ --container-top-b-border: ;
+ --container-top-b-border-radius: ;
+
+ --container-toc-bg: var(--mainmenu-nav-link-color);
+ --container-toc-color: var(--color-primary);
+
+ --container-sidebar-bg-image: ;
+ --container-sidebar-bg-color: ;
+ --container-sidebar-bg-position: auto;
+ --container-sidebar-bg-attachment: scroll;
+ --container-sidebar-bg-repeat: repeat;
+ --container-sidebar-bg-size: auto;
+ --container-sidebar-border: ;
+ --container-sidebar-border-radius: ;
+
+ --container-bottom-a-bg-image: ;
+ --container-bottom-a-bg-color: ;
+ --container-bottom-a-bg-position: auto;
+ --container-bottom-a-bg-attachment: fixed;
+ --container-bottom-a-bg-repeat: repeat;
+ --container-bottom-a-bg-size: auto;
+ --container-bottom-a-border: ;
+ --container-bottom-a-border-radius: ;
+
+ --container-bottom-b-bg-image: ;
+ --container-bottom-b-bg-color: ;
+ --container-bottom-b-bg-position: auto;
+ --container-bottom-b-bg-attachment: fixed;
+ --container-bottom-b-bg-repeat: repeat;
+ --container-bottom-b-bg-size: auto;
+ --container-bottom-b-border: ;
+ --container-bottom-b-border-radius: ;
+
+ --nav-text-color: var(--mainmenu-nav-link-color);
+ --nav-bg-color: var(--color-link);
+ --border: 5px;
+
+ --muted-color: #6d757e;
+ --hr-color: var(--border-color, #dfe3e7);
+ --link-active-color: var(--link-color);
+ --code-color-ink: var(--code-color, #e93f8e);
+ --border-color-soft: var(--border-color, #dfe3e7);
+ --kbd-bg: var(--secondary-bg, #eaedf0);
+ --kbd-ink: var(--body-bg, #fff);
+ --toc-bg: var(--secondary-bg, #eaedf0);
+ --toc-ink: var(--color-primary, #112855);
+ --selection-bg: var(--highlight-bg, #fbeea8);
+ --selection-ink: var(--body-color, #22262a);
+
+ --blue: #010156;
+ --black: #000;
+ --indigo: #6812f3;
+ --purple: #6f42c2;
+ --pink: #e93f8e;
+ --red: #a51f18;
+ --orange: #fd7e17;
+ --yellow: #ad6200;
+ --green: #448344;
+ --teal: #5abfdd;
+ --cyan: #30638d;
+ --white: #fff;
+ --gray-100: #f9fafb;
+ --gray-200: #eaedf0;
+ --gray-300: #dfe3e7;
+ --gray-400: #ced4da;
+ --gray-500: #adb5bd;
+ --gray-600: #6d757e;
+ --gray-700: #484f56;
+ --gray-800: #353b41;
+ --gray-900: #22262a;
+ --primary: #010156;
+ --secondary: #6d757e;
+ --success: #448344;
+ --info: #30638d;
+ --warning: #ad6200;
+ --danger: #a51f18;
+ --light: #f9fafb;
+ --dark: #353b41;
+ --primary-rgb: 1, 1, 86;
+ --secondary-rgb: 109, 117, 126;
+ --success-rgb: 68, 131, 68;
+ --info-rgb: 48, 99, 141;
+ --warning-rgb: 173, 98, 0;
+ --danger-rgb: 165, 31, 24;
+ --light-rgb: 249, 250, 251;
+ --dark-rgb: 53, 59, 65;
+ --primary-text-emphasis: #002;
+ --secondary-text-emphasis: #2c2f32;
+ --success-text-emphasis: #1b351b;
+ --info-text-emphasis: #132838;
+ --warning-text-emphasis: #452700;
+ --danger-text-emphasis: #420c09;
+ --light-text-emphasis: #484f56;
+ --dark-text-emphasis: #484f56;
+ --primary-bg-subtle: #ccd;
+ --secondary-bg-subtle: #e2e3e5;
+ --success-bg-subtle: #dae6da;
+ --info-bg-subtle: #d6e0e8;
+ --warning-bg-subtle: #efe0cc;
+ --danger-bg-subtle: #edd2d1;
+ --light-bg-subtle: #fcfcfd;
+ --dark-bg-subtle: #ced4da;
+ --primary-border-subtle: #99b;
+ --secondary-border-subtle: #c5c8cb;
+ --success-border-subtle: #b4ceb4;
+ --info-border-subtle: #acc1d1;
+ --warning-border-subtle: #dec099;
+ --danger-border-subtle: #dba5a2;
+ --light-border-subtle: #eaedf0;
+ --dark-border-subtle: #adb5bd;
+ --white-rgb: 255, 255, 255;
+ --black-rgb: 0, 0, 0;
+ --font-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+ --font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+ --gradient: linear-gradient(180deg, #ffffff26, #fff0);
+ --body-font-family: var(--optain-cassiopeia-font-family-body, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
+ --body-font-size: 1rem;
+ --body-font-weight: 400;
+ --body-line-height: 1.5;
+ --body-color: #22262a;
+ --body-color-rgb: 34, 38, 42;
+ --body-bg: #fff;
+ --body-bg-rgb: 255, 255, 255;
+ --emphasis-color: #000;
+ --emphasis-color-rgb: 0, 0, 0;
+ --secondary-color: #22262abf;
+ --secondary-color-rgb: 34, 38, 42;
+ --secondary-bg: #eaedf0;
+ --secondary-bg-rgb: 234, 237, 240;
+ --tertiary-color: #22262a80;
+ --tertiary-color-rgb: 34, 38, 42;
+ --tertiary-bg: #f9fafb;
+ --tertiary-bg-rgb: 249, 250, 251;
+ --heading-color: inherit;
+ --link-color: #224faa;
+ --link-color-rgb: 34, 79, 170;
+ --link-decoration: underline;
+ --link-hover-color: #424077;
+ --link-hover-color-rgb: 66, 64, 119;
+ --code-color: #e93f8e;
+ --highlight-color: #22262a;
+ --highlight-bg: #fbeea8;
+ --border-width: 1px;
+ --border-style: solid;
+ --border-color: #dfe3e7;
+ --border-color-translucent: #0000002d;
+ --border-radius: .25rem;
+ --border-radius-sm: .2rem;
+ --border-radius-lg: .3rem;
+ --border-radius-xl: .3rem;
+ --border-radius-xxl: 2rem;
+ --border-radius-2xl: var(--border-radius-xxl)*2;
+ --border-radius-pill: 50rem;
+ --box-shadow: 0 .5rem 1rem #00000026;
+ --box-shadow-sm: 0 .125rem .25rem #00000013;
+ --box-shadow-lg: 0 1rem 3rem #0000002d;
+ --box-shadow-inset: inset 0 1px 2px #00000013;
+ --focus-ring-width: .25rem;
+ --focus-ring-opacity: .25;
+ --focus-ring-color: #01015640;
+ --form-valid-color: #448344;
+ --form-valid-border-color: #448344;
+ --form-invalid-color: #a51f18;
+ --form-invalid-border-color: #a51f18;
+}
+
+.btn {
+ --btn-padding-x: 1rem;
+ --btn-padding-y: 0.6rem;
+ --btn-font-family: ;
+ --btn-font-size: 1rem;
+ --btn-font-weight: 400;
+ --btn-line-height: 1.5;
+ --btn-color: hsl(210, 11%, 15%);
+ --btn-bg: transparent;
+ --btn-border-width: 1px;
+ --btn-border-color: transparent;
+ --btn-border-radius: 0.25rem;
+ --btn-active-border-color: transparent;
+ --btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
+ --btn-disabled-opacity: 0.65;
+ --btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--btn-focus-shadow-rgb), .5);
+ display: inline-block;
+ padding: var(--btn-padding-y) var(--btn-padding-x);
+ font-family: var(--btn-font-family);
+ font-size: var(--btn-font-size);
+ font-weight: var(--btn-font-weight);
+ line-height: var(--btn-line-height);
+ color: var(--btn-color);
+ text-align: center;
+ text-decoration: none;
+ vertical-align: middle;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ border: var(--btn-border-width) solid var(--btn-border-color);
+ border-radius: var(--btn-border-radius);
+ background-color: var(--btn-bg);
+ -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+ -o-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out;
+}
+
+.btn-primary {
+ --btn-color: hsl(0, 0%, 100%);
+ --btn-bg: hsl(240, 98%, 17%);
+ --btn-border-color: hsl(240, 98%, 17%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: #010149;
+ --btn-hover-border-color: #010145;
+ --btn-focus-shadow-rgb: 39, 39, 111;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: #010145;
+ --btn-active-border-color: #010141;
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(0, 0%, 100%);
+ --btn-disabled-bg: hsl(240, 98%, 17%);
+ --btn-disabled-border-color: hsl(240, 98%, 17%);
+}
+
+.btn-secondary {
+ --btn-color: --nav-text-color;
+ --btn-bg: --nav-bg-color;
+ --btn-border-color: hsl(210, 7%, 46%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: #5d636b;
+ --btn-hover-border-color: #575e65;
+ --btn-focus-shadow-rgb: gray;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: #575e65;
+ --btn-active-border-color: #52585f;
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(0, 0%, 100%);
+ --btn-disabled-bg: hsl(210, 7%, 46%);
+ --btn-disabled-border-color: hsl(210, 7%, 46%);
+}
+
+.btn-success {
+ --btn-color: hsl(0, 0%, 100%);
+ --btn-bg: hsl(120, 32%, 39%);
+ --btn-border-color: hsl(120, 32%, 39%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: #3a6f3a;
+ --btn-hover-border-color: #366936;
+ --btn-focus-shadow-rgb: 96, 150, 96;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: #366936;
+ --btn-active-border-color: #336233;
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(0, 0%, 100%);
+ --btn-disabled-bg: hsl(120, 32%, 39%);
+ --btn-disabled-border-color: hsl(120, 32%, 39%);
+}
+
+.btn-info {
+ --btn-color: hsl(0, 0%, 100%);
+ --btn-bg: hsl(207, 49%, 37%);
+ --btn-border-color: hsl(207, 49%, 37%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: #295478;
+ --btn-hover-border-color: #264f71;
+ --btn-focus-shadow-rgb: 79, 122, 158;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: #264f71;
+ --btn-active-border-color: #244a6a;
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(0, 0%, 100%);
+ --btn-disabled-bg: hsl(207, 49%, 37%);
+ --btn-disabled-border-color: hsl(207, 49%, 37%);
+}
+
+.btn-warning {
+ --btn-color: hsl(0, 0%, 100%);
+ --btn-bg: hsl(34, 100%, 34%);
+ --btn-border-color: hsl(34, 100%, 34%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: #935300;
+ --btn-hover-border-color: #8a4e00;
+ --btn-focus-shadow-rgb: 185, 122, 38;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: #8a4e00;
+ --btn-active-border-color: #824a00;
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(0, 0%, 100%);
+ --btn-disabled-bg: hsl(34, 100%, 34%);
+ --btn-disabled-border-color: hsl(34, 100%, 34%);
+}
+
+.btn-danger {
+ --btn-color: hsl(0, 0%, 100%);
+ --btn-bg: hsl(3, 75%, 37%);
+ --btn-border-color: hsl(3, 75%, 37%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: #8c1a14;
+ --btn-hover-border-color: #841913;
+ --btn-focus-shadow-rgb: 179, 65, 59;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: #841913;
+ --btn-active-border-color: #7c1712;
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(0, 0%, 100%);
+ --btn-disabled-bg: hsl(3, 75%, 37%);
+ --btn-disabled-border-color: hsl(3, 75%, 37%);
+}
+
+.btn-light {
+ --btn-color: hsl(0, 0%, 0%);
+ --btn-bg: hsl(210, 17%, 98%);
+ --btn-border-color: hsl(210, 17%, 98%);
+ --btn-hover-color: hsl(0, 0%, 0%);
+ --btn-hover-bg: #d4d5d5;
+ --btn-hover-border-color: #c7c8c9;
+ --btn-focus-shadow-rgb: 212, 213, 213;
+ --btn-active-color: hsl(0, 0%, 0%);
+ --btn-active-bg: #c7c8c9;
+ --btn-active-border-color: #bbbcbc;
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(0, 0%, 0%);
+ --btn-disabled-bg: hsl(210, 17%, 98%);
+ --btn-disabled-border-color: hsl(210, 17%, 98%);
+}
+
+.btn-dark {
+ --btn-color: hsl(0, 0%, 100%);
+ --btn-bg: hsl(210, 10%, 23%);
+ --btn-border-color: hsl(210, 10%, 23%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: #53585e;
+ --btn-hover-border-color: #494f54;
+ --btn-focus-shadow-rgb: 83, 88, 94;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: #5d6267;
+ --btn-active-border-color: #494f54;
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(0, 0%, 100%);
+ --btn-disabled-bg: hsl(210, 10%, 23%);
+ --btn-disabled-border-color: hsl(210, 10%, 23%);
+}
+
+.btn-outline-primary {
+ --btn-color: hsl(240, 98%, 17%);
+ --btn-border-color: hsl(240, 98%, 17%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: hsl(240, 98%, 17%);
+ --btn-hover-border-color: hsl(240, 98%, 17%);
+ --btn-focus-shadow-rgb: 1, 1, 86;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: hsl(240, 98%, 17%);
+ --btn-active-border-color: hsl(240, 98%, 17%);
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(240, 98%, 17%);
+ --btn-disabled-bg: transparent;
+ --btn-disabled-border-color: hsl(240, 98%, 17%);
+ --gradient: none;
+}
+
+.btn-outline-secondary {
+ --btn-color: hsl(210, 7%, 46%);
+ --btn-border-color: hsl(210, 7%, 46%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: hsl(210, 7%, 46%);
+ --btn-hover-border-color: hsl(210, 7%, 46%);
+ --btn-focus-shadow-rgb: 109, 117, 126;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: hsl(210, 7%, 46%);
+ --btn-active-border-color: hsl(210, 7%, 46%);
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(210, 7%, 46%);
+ --btn-disabled-bg: transparent;
+ --btn-disabled-border-color: hsl(210, 7%, 46%);
+ --gradient: none;
+}
+
+.btn-outline-success {
+ --btn-color: hsl(120, 32%, 39%);
+ --btn-border-color: hsl(120, 32%, 39%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: hsl(120, 32%, 39%);
+ --btn-hover-border-color: hsl(120, 32%, 39%);
+ --btn-focus-shadow-rgb: 68, 131, 68;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: hsl(120, 32%, 39%);
+ --btn-active-border-color: hsl(120, 32%, 39%);
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(120, 32%, 39%);
+ --btn-disabled-bg: transparent;
+ --btn-disabled-border-color: hsl(120, 32%, 39%);
+ --gradient: none;
+}
+
+.btn-outline-info {
+ --btn-color: hsl(207, 49%, 37%);
+ --btn-border-color: hsl(207, 49%, 37%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: hsl(207, 49%, 37%);
+ --btn-hover-border-color: hsl(207, 49%, 37%);
+ --btn-focus-shadow-rgb: 48, 99, 141;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: hsl(207, 49%, 37%);
+ --btn-active-border-color: hsl(207, 49%, 37%);
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(207, 49%, 37%);
+ --btn-disabled-bg: transparent;
+ --btn-disabled-border-color: hsl(207, 49%, 37%);
+ --gradient: none;
+}
+
+.btn-outline-warning {
+ --btn-color: hsl(34, 100%, 34%);
+ --btn-border-color: hsl(34, 100%, 34%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: hsl(34, 100%, 34%);
+ --btn-hover-border-color: hsl(34, 100%, 34%);
+ --btn-focus-shadow-rgb: 173, 98, 0;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: hsl(34, 100%, 34%);
+ --btn-active-border-color: hsl(34, 100%, 34%);
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(34, 100%, 34%);
+ --btn-disabled-bg: transparent;
+ --btn-disabled-border-color: hsl(34, 100%, 34%);
+ --gradient: none;
+}
+
+.btn-outline-danger {
+ --btn-color: hsl(3, 75%, 37%);
+ --btn-border-color: hsl(3, 75%, 37%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: hsl(3, 75%, 37%);
+ --btn-hover-border-color: hsl(3, 75%, 37%);
+ --btn-focus-shadow-rgb: 165, 31, 24;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: hsl(3, 75%, 37%);
+ --btn-active-border-color: hsl(3, 75%, 37%);
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(3, 75%, 37%);
+ --btn-disabled-bg: transparent;
+ --btn-disabled-border-color: hsl(3, 75%, 37%);
+ --gradient: none;
+}
+
+.btn-outline-light {
+ --btn-color: hsl(210, 17%, 98%);
+ --btn-border-color: hsl(210, 17%, 98%);
+ --btn-hover-color: hsl(0, 0%, 0%);
+ --btn-hover-bg: hsl(210, 17%, 98%);
+ --btn-hover-border-color: hsl(210, 17%, 98%);
+ --btn-focus-shadow-rgb: 249, 250, 251;
+ --btn-active-color: hsl(0, 0%, 0%);
+ --btn-active-bg: hsl(210, 17%, 98%);
+ --btn-active-border-color: hsl(210, 17%, 98%);
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(210, 17%, 98%);
+ --btn-disabled-bg: transparent;
+ --btn-disabled-border-color: hsl(210, 17%, 98%);
+ --gradient: none;
+}
+
+.btn-outline-dark {
+ --btn-color: hsl(210, 10%, 23%);
+ --btn-border-color: hsl(210, 10%, 23%);
+ --btn-hover-color: hsl(0, 0%, 100%);
+ --btn-hover-bg: hsl(210, 10%, 23%);
+ --btn-hover-border-color: hsl(210, 10%, 23%);
+ --btn-focus-shadow-rgb: 53, 59, 65;
+ --btn-active-color: hsl(0, 0%, 100%);
+ --btn-active-bg: hsl(210, 10%, 23%);
+ --btn-active-border-color: hsl(210, 10%, 23%);
+ --btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --btn-disabled-color: hsl(210, 10%, 23%);
+ --btn-disabled-bg: transparent;
+ --btn-disabled-border-color: hsl(210, 10%, 23%);
+ --gradient: none;
+}
+
+.btn-link {
+ --btn-font-weight: 400;
+ --btn-color: var(--link-color);
+ --btn-bg: transparent;
+ --btn-border-color: transparent;
+ --btn-hover-color: var(--link-hover-color);
+ --btn-hover-border-color: transparent;
+ --btn-active-color: var(--link-hover-color);
+ --btn-active-border-color: transparent;
+ --btn-disabled-color: hsl(210, 7%, 46%);
+ --btn-disabled-border-color: transparent;
+ --btn-box-shadow: none;
+ --btn-focus-shadow-rgb: 39, 39, 111;
+ text-decoration: underline;
+}
diff --git a/media/templates/site/moko-cassiopeia/css/global/light/index.html b/media/templates/site/moko-cassiopeia/css/global/light/index.html
new file mode 100644
index 0000000..206e130
--- /dev/null
+++ b/media/templates/site/moko-cassiopeia/css/global/light/index.html
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+
+ Redirecting…
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Redirecting to the site root… If you are not redirected,
click here .
+
+
diff --git a/media/templates/site/moko-cassiopeia/css/template-rtl.css b/media/templates/site/moko-cassiopeia/css/template-rtl.css
index f9a3955..bee0293 100644
--- a/media/templates/site/moko-cassiopeia/css/template-rtl.css
+++ b/media/templates/site/moko-cassiopeia/css/template-rtl.css
@@ -1,15 +1,31 @@
@charset "UTF-8";
-/*!
- * @package Joomla.Site
- * @subpackage Templates.moko-cassiopeia
- * @file /media/templates/sote/moko-cassiopeia/css/template-rtl.css
+/* =========================================================================
+ * Copyright (C) 2025 Moko Consulting
*
- * @copyright 2025 Moko Consulting
- * @license GNU General Public License version 2 or later; see LICENSE.txt
+ * This file is part of a Moko Consulting project.
*
- * Website: https://mokoconsulting.tech
- * Email: hello@mokoconsulting.tech
- * Phone: +1 (931) 279-6313
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see https://www.gnu.org/licenses/ .
+ * =========================================================================
+ * FILE INFORMATION
+ * DEFGROUP: Joomla
+ * INGROUP: Moko-Cassiopeia
+ * PATH: media/templates/site/moko-cassiopeia/css/template-rtl.css
+ * VERSION: 02.00
+ * BRIEF: Right-to-left (RTL) layout stylesheet for Moko-Cassiopeia template
+ * =========================================================================
*/
/*!
@@ -20,7 +36,6 @@
* sensitive rules are mirrored here to keep file size reasonable.
*/
-
[dir="rtl"] .table-of-contents-ck-wrap {
width: 30%;
diff --git a/media/templates/site/moko-cassiopeia/css/template.css b/media/templates/site/moko-cassiopeia/css/template.css
index 530d204..1ffa263 100644
--- a/media/templates/site/moko-cassiopeia/css/template.css
+++ b/media/templates/site/moko-cassiopeia/css/template.css
@@ -1,15 +1,31 @@
@charset "UTF-8";
-/*!
- * @package Joomla.Site
- * @subpackage Templates.moko-cassiopeia
- * @file /media/templates/sote/moko-cassiopeia/css/template.css
+/* =========================================================================
+ * Copyright (C) 2025 Moko Consulting
*
- * @copyright 2025 Moko Consulting
- * @license GNU General Public License version 2 or later; see LICENSE.txt
+ * This file is part of a Moko Consulting project.
*
- * Website: https://mokoconsulting.tech
- * Email: hello@mokoconsulting.tech
- * Phone: +1 (931) 279-6313
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see https://www.gnu.org/licenses/ .
+ * =========================================================================
+ * FILE INFORMATION
+ * DEFGROUP: Joomla
+ * INGROUP: Moko-Cassiopeia
+ * PATH: media/templates/site/moko-cassiopeia/css/template.css
+ * VERSION: 02.00
+ * BRIEF: Main stylesheet providing layout, typography, and component styles for Moko-Cassiopeia
+ * =========================================================================
*/
*,
@@ -17206,5 +17222,41 @@ body.site.error-page {
text-decoration: none;
}
+ #mokoThemeFab .knob {
+ position: absolute;
+ top: 2px;
+ left: 2px;
+ width: 20px;
+ height: 20px;
+ border-radius: var(--border-radius-xxl);
+ background: var(--bs-body-bg, #fff);
+ box-shadow: var(--box-shadow);
+ transition: transform .2s ease;
+}
+
+#mokoThemeFab [role="switch"][aria-checked="true"] .knob {
+ transform: translateX(20px);
+}
+
+#mokoThemeFab [role="switch"][aria-checked="true"] .switch {
+ background: rgba(var(--secondary-color), .15);
+}
+
+button#mokoThemeSwitch {
+ border: unset;
+ background-color: unset;
+}
+
+#mokoThemeFab .label {
+ user-select: none;
+ font-size: .875rem;
+}
+
+#mokoThemeFab.debug-outline {
+ outline: 2px dashed var(--pink);
+ outline-offset: 2px;
+}
+
+
/* SOCIAL MEDIA DEMOS */
@import url("global/social-media-demos.css");
diff --git a/media/templates/site/moko-cassiopeia/css/vmbasic.css b/media/templates/site/moko-cassiopeia/css/vmbasic.css
new file mode 100644
index 0000000..bedf29f
--- /dev/null
+++ b/media/templates/site/moko-cassiopeia/css/vmbasic.css
@@ -0,0 +1,617 @@
+/* Bootstrap */
+.dropdown-menu {
+ border-radius: 0;
+ --bs-dropdown-zindex: 1030;
+}
+
+.dropdown-toggle {
+ display: flex;
+ align-items: center;
+}
+
+.dropdown-toggle::after {
+ content: "";
+ border: none;
+ background-image: url('data:image/svg+xml, ');
+ background-repeat: no-repeat;
+ width: 10px;
+ height: 10px
+}
+
+.btn {
+ border-radius: 0
+}
+
+.input-group .btn {
+ font-size: 14px;
+ border-radius: var(--bs-border-radius);
+}
+
+.btn-primary {
+ --bs-btn-bg: #333;
+ --bs-btn-border-color: #333;
+ --bs-btn-hover-bg: #555;
+ --bs-btn-hover-border-color: #555;
+ --bs-btn-focus-shadow-rgb: 49, 132, 253;
+ --bs-btn-active-bg: #555;
+ --bs-btn-active-border-color: #555;
+ --bs-btn-disabled-bg: #A0A0A0;
+ --bs-btn-disabled-border-color: #A0A0A0;
+}
+
+.btn-secondary {
+ --bs-btn-color: #333;
+ --bs-btn-bg: #EFEFEF;
+ --bs-btn-border-color: #EFEFEF;
+ --bs-btn-hover-bg: #333;
+ --bs-btn-hover-border-color: #333;
+ --bs-btn-active-bg: #333;
+ --bs-btn-active-border-color: #333;
+}
+
+.btn-check:checked + .btn, .btn.active, .btn.show, .btn:first-child:active, :not(.btn-check) + .btn:active {
+ color: #A0A0A0;
+}
+
+.text-secondary {
+ color: #A0A0A0 !important;
+}
+
+.form-control, .form-select {
+ font-size: 14px
+}
+
+form .form-control, form .form-select {
+ border-color: #C7C7C7
+}
+
+/* General styles */
+body {
+ font-size: 15px;
+ color: #333;
+}
+
+a, .btn-link {
+ color: #A0A0A0;
+ text-decoration: none
+}
+
+a:hover, .btn-link:hover {
+ color: #333;
+}
+
+img {
+ max-width: 100%;
+ height: auto;
+ aspect-ratio: attr(width) / attr(height);
+}
+
+h1, h2, h3, h4, h5, h6 {
+ font-weight: 600;
+ margin-bottom: 1em;
+ color: #333;
+}
+
+h1 {
+ font-size: 32px
+}
+
+h2 {
+ font-size: 28px
+}
+
+h3 {
+ font-size: 25px
+}
+
+h4 {
+ font-size: 22px
+}
+
+h5 {
+ font-size: 20px
+}
+
+h6 {
+ font-size: 18px
+}
+
+.toolbar {
+ font-size: 14px;
+ padding: 9px 0;
+ background-color: #EFEFEF
+}
+
+.toolbar a, .toolbar .btn-link {
+ color: inherit;
+}
+
+.toolbar .btn svg {
+ margin-right: 5px;
+}
+
+.toolbar svg {
+ line-height: 16px;
+ vertical-align: sub;
+}
+
+.top-bar {
+ font-weight: bold;
+}
+
+header p {
+ margin: 0
+}
+
+.toolbar .dropdown-menu {
+ font-size: 14px;
+ line-height: 14px;
+ min-width: 100%;
+ width: max-content;
+}
+
+.form-control-feedback {
+ display: block;
+ font-size: 14px;
+ color: red;
+}
+
+/* Main menu */
+.main-menu {
+ background-color: #555;
+ color: #fff;
+}
+
+.main-menu .nav-item {
+ position: relative;
+}
+
+.main-menu a, .main-menu span {
+ position: relative;
+ display: block;
+ padding: 14px 18px;
+ color: #fff;
+ background-color: #555;
+ transition: background-color linear 250ms
+}
+
+.main-menu .active > a, .main-menu .active > span, .main-menu a:hover, .main-menu span:hover {
+ background-color: #000;
+ transition: background-color linear 250ms
+}
+
+.main-menu .parent > a::after, .main-menu .parent > span::after {
+ content: "";
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ background-color: #fff;
+ margin-left: 5px;
+ -webkit-mask: url('data:image/svg+xml, ');
+ mask: url('data:image/svg+xml, ');
+}
+
+.main-menu .mod-menu__sub .parent > a::after, .main-menu .mod-menu__sub .parent > span::after {
+ position: absolute;
+ right: 9px;
+ top: 50%;
+ transform: translateY(-50%) rotate(-90deg);
+}
+
+.main-menu .mod-menu__sub {
+ position: absolute;
+ left: 0;
+ top: 100%;
+ z-index: 1022;
+ min-width: 200px;
+ opacity: 0;
+ visibility: hidden;
+ transition: all linear 250ms
+}
+
+.main-menu .parent:hover > .mod-menu__sub {
+ opacity: 1;
+ visibility: visible;
+ box-shadow: 0 5px 15px 0 rgba(0,0,0,0.3);
+ transition: all linear 250ms
+}
+
+.mod-menu__sub .mod-menu__sub {
+ left: 100%;
+ top: 0
+}
+
+/* Banners */
+.banner-section p {
+ margin: 0
+}
+
+/* Modules */
+.mod-breadcrumbs {
+ background-color: #EFEFEF;
+ font-size: 14px;
+ white-space: nowrap;
+ overflow: auto;
+ flex-wrap: nowrap;
+}
+
+.breadcrumb-item + .breadcrumb-item::before {
+ float: none;
+}
+
+.mod-breadcrumbs a, .manufacturer-details-view a:not(.btn) {
+ color: #71ABD6;
+}
+
+.breadcrumb-item.active {
+ color: #A0A0A0;
+}
+
+aside .module-title {
+ font-size: 24px;
+ font-weight: normal;
+ border-bottom: 1px solid #dee2e6;
+ padding-bottom: 15px;
+ margin-bottom: 15px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+/* Footer */
+footer {
+ padding: 50px 0;
+ background-color: #EFEFEF;
+}
+
+footer .module-title {
+ font-size: 18px;
+ margin-bottom: 20px;
+}
+
+footer .nav {
+ flex-direction: column;
+}
+
+footer ul {
+ list-style: none;
+ padding: 0;
+ margin: 0
+}
+
+footer .nav-item, footer li {
+ margin-bottom: 10px;
+}
+
+footer a {
+ color: #333;
+}
+
+footer a:hover {
+ color: #A0A0A0;
+}
+
+/* Forms */
+textarea {
+ min-height: 100px
+}
+
+.control-label {
+ margin-bottom: 5px;
+}
+
+/*********
+Virtuemart
+*********/
+
+/* VM Search module */
+.vmbasic-search input {
+ border-color: #A0A0A0;
+ border-radius: 0;
+ height: 40px;
+}
+
+.mod-vm-search .btn-svg {
+ padding: 0 10px;
+ position: absolute;
+ z-index: 5;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ height: 40px;
+}
+
+.vm-search-custom-search-input input, #vm-orderby-select {
+ border-radius: var(--bs-border-radius) !important;
+}
+
+/* VM cart module */
+.vmCartModule .btn-link {
+ color: #333;
+}
+
+/* Product page */
+.manufacturer a {
+ color: #71ABD6;
+}
+
+/* Account */
+.vm-add-edit-address > a, .vm-order-list a {
+ font-weight: 600;
+ color: #71ABD6
+}
+
+/* Checkout */
+.vm-coupon-container .btn {
+ border-radius: var(--bs-border-radius);
+}
+
+#checkoutForm .details {
+ font-weight: 600;
+ color: #71ABD6
+}
+
+
+/*********
+Joomla
+*********/
+
+/* com_content */
+.item-content .page-header h2 {
+ font-size: 20px;
+}
+
+.article-info {
+ display: flex;
+ flex-wrap: wrap;
+ font-size: 14px;
+ margin-bottom: 5px;
+}
+
+.item-image {
+ display: block;
+ margin: 0 auto 30px;
+}
+
+.article-info > * {
+ margin-right: 8px
+}
+
+.com-content-article__links {
+ list-style: none;
+ padding: 0;
+ margin: 30px 0;
+}
+
+.com-content-article__links a, .items-more a {
+ color: #71ABD6
+}
+
+.active > .page-link, .page-link.active {
+ background-color: #555555;
+ border-color: #555555;
+}
+
+.page-link, .page-link:hover {
+ color: #333;
+}
+
+.pagenavigation {
+ margin: 30px 0;
+}
+
+.pagenavigation .next {
+ margin-left: auto;
+}
+
+/* tags */
+.com-tags-tag-list__category, .com-tags-tag__category {
+ margin-top: 30px;
+}
+
+.tag-category .list-group-item h3 {
+ margin: 0;
+ font-size: 16px;
+}
+
+.tags .btn {
+ font-size: 12px;
+ padding: 0 5px;
+ color: #fff;
+}
+
+
+/* User */
+.com-users-login.login, .com-users-reset, .com-users-remind, .com-users-registration {
+ max-width: 400px;
+ margin: auto;
+ padding: 15px;
+ border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+}
+
+.control-group, .com-users-login__remember {
+ margin-bottom: 15px;
+}
+
+.com-users-reset legend, .com-users-remind legend {
+ font-size: 14px
+}
+
+/* Contact */
+#contact-form legend {
+ font-size: 16px;
+ font-weight: 600;
+}
+
+.com-contact-featured__table {
+ margin-top: 30px;
+}
+
+/* Modules */
+.sidebar-right ul, .sidebar-left ul {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+
+.sidebar-right li, .sidebar-left li {
+ margin-bottom: 10px
+}
+
+
+.mod-login__userdata > div {
+ margin-bottom: 15px;
+}
+
+.awesomplete input {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+
+.mod-login__userdata.userdata {
+ padding: 15px;
+ border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+}
+
+#Passkey {
+ width: 24px;
+}
+
+/* offcanvas*/
+.offcanvas-body .mod-menu {
+ flex-direction: column;
+}
+
+.offcanvas-body .mod-menu__sub {
+ display: none;
+ padding: 10px
+}
+
+.offcanvas-body .nav-item {
+ padding: 5px 0;
+ border-bottom: 1px solid var(--bs-border-color);
+ position: relative;
+}
+
+.offcanvas-body .nav-item:last-child {
+ border-bottom: none;
+}
+
+.offcanvas-body a {
+ font-size: 15px;
+ color: #333
+}
+
+.offcanvas-body .active > a {
+ font-weight: bold;
+}
+
+.offcanvas-body .subtoggle {
+ padding: 0;
+ background-color: transparent;
+ border: none;
+ width: 30px;
+ height: 30px;
+ position: absolute;
+ right: 0;
+ top: 1px;
+ z-index: 1
+}
+
+.offcanvas-body .subtoggle.open {
+ transform: rotate(-180deg);
+ transition: all linear 200ms
+}
+
+/* To top */
+.back-to-top-link {
+ display: none;
+ position: fixed;
+ right: 12px;
+ bottom: 12px;
+ z-index: 1020;
+}
+
+@media screen and (max-width: 1080px) {
+
+ body {
+ font-size: 14px
+ }
+
+}
+
+@media screen and (max-width: 991px) {
+
+ h1 {
+ font-size: 24px
+ }
+
+ h2 {
+ font-size: 22px
+ }
+
+ h3 {
+ font-size: 20px
+ }
+
+ h4 {
+ font-size: 18px
+ }
+
+ h5 {
+ font-size: 16px
+ }
+
+ h6 {
+ font-size: 15px
+ }
+
+ .main-search {
+ display: none;
+ }
+}
+
+@media screen and (max-width: 490px) {
+
+ .toolbar {
+ padding: 6px 0;
+ }
+
+ .toolbar .bg-alt {
+ background-color: #333;
+ color: #fff;
+ }
+
+ .top-bar {
+ background-color: #333;
+ color: #fff;
+ }
+
+ .top-bar a {
+ color: #fff;
+ }
+
+ .cart-module .bi-cart3 {
+ margin-top: 2px
+ }
+
+ .cart-module .total_products {
+ display: none;
+ }
+
+ .vmCartModule .dropdown-menu {
+ margin-right: -10px !important;
+ }
+
+ .cart-module .dropdown-toggle::after {
+ content: none;
+ }
+
+ .com-contact-featured__items, .com-contact-category__items {
+ overflow-x: auto;
+ }
+
+ footer {
+ padding-bottom: 30px;
+ }
+}
diff --git a/media/templates/site/moko-cassiopeia/images/bg.svg b/media/templates/site/moko-cassiopeia/images/bg.svg
new file mode 100644
index 0000000..6e73f8c
--- /dev/null
+++ b/media/templates/site/moko-cassiopeia/images/bg.svg
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+
diff --git a/media/templates/site/moko-cassiopeia/images/logo.svg b/media/templates/site/moko-cassiopeia/images/logo.svg
new file mode 100644
index 0000000..c4b4647
--- /dev/null
+++ b/media/templates/site/moko-cassiopeia/images/logo.svg
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/media/templates/site/moko-cassiopeia/images/select-bg-active-rtl.svg b/media/templates/site/moko-cassiopeia/images/select-bg-active-rtl.svg
new file mode 100644
index 0000000..eae47aa
--- /dev/null
+++ b/media/templates/site/moko-cassiopeia/images/select-bg-active-rtl.svg
@@ -0,0 +1 @@
+
diff --git a/media/templates/site/moko-cassiopeia/images/select-bg-active.svg b/media/templates/site/moko-cassiopeia/images/select-bg-active.svg
new file mode 100644
index 0000000..19cd786
--- /dev/null
+++ b/media/templates/site/moko-cassiopeia/images/select-bg-active.svg
@@ -0,0 +1 @@
+
diff --git a/media/templates/site/moko-cassiopeia/images/select-bg-rtl.svg b/media/templates/site/moko-cassiopeia/images/select-bg-rtl.svg
new file mode 100644
index 0000000..a1ae9a3
--- /dev/null
+++ b/media/templates/site/moko-cassiopeia/images/select-bg-rtl.svg
@@ -0,0 +1 @@
+
diff --git a/media/templates/site/moko-cassiopeia/images/select-bg.svg b/media/templates/site/moko-cassiopeia/images/select-bg.svg
new file mode 100644
index 0000000..e2fefcc
--- /dev/null
+++ b/media/templates/site/moko-cassiopeia/images/select-bg.svg
@@ -0,0 +1 @@
+
diff --git a/media/templates/site/moko-cassiopeia/images/teaser_bg_sm.png b/media/templates/site/moko-cassiopeia/images/teaser_bg_sm.png
new file mode 100644
index 0000000000000000000000000000000000000000..94d8fbe63ec636cb2426fc1d01375bc471eca668
GIT binary patch
literal 979
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