dashboard v2 erstellt

This commit is contained in:
2025-02-19 14:23:44 +01:00
parent c17d39df24
commit 14423e0497
280 changed files with 18902 additions and 0 deletions

348
Dashboard_V2/app.py Normal file
View File

@@ -0,0 +1,348 @@
import sqlite3
from flask import Flask, render_template, request, redirect, url_for, session, g, flash
from datetime import datetime
from werkzeug.security import generate_password_hash, check_password_hash
app = Flask(__name__)
app.secret_key = "SUPER_SECRET_KEY" # Bitte anpassen
DATABASE = 'clickcandit.db'
def get_db():
db = getattr(g, '_database', None)
if db is None:
db = g._database = sqlite3.connect(DATABASE)
db.row_factory = sqlite3.Row
return db
@app.teardown_appcontext
def close_connection(exception):
db = getattr(g, '_database', None)
if db is not None:
db.close()
def init_db():
with app.app_context():
db = get_db()
# Users
db.execute("""
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT UNIQUE NOT NULL,
password TEXT NOT NULL,
email TEXT,
is_admin INTEGER DEFAULT 0
);
""")
# Bookmarks
db.execute("""
CREATE TABLE IF NOT EXISTS bookmarks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER NOT NULL,
title TEXT NOT NULL,
url TEXT NOT NULL,
icon_class TEXT NOT NULL DEFAULT 'fas fa-bookmark',
FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE
);
""")
# Notifications
db.execute("""
CREATE TABLE IF NOT EXISTS notifications (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER, -- NULL = für alle
message TEXT NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
is_read INTEGER DEFAULT 0
);
""")
# Time Tracking
db.execute("""
CREATE TABLE IF NOT EXISTS time_entries (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER NOT NULL,
activity TEXT NOT NULL,
start_time DATETIME NOT NULL,
end_time DATETIME,
FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE
);
""")
db.commit()
def get_user_by_username_or_email(user_input):
db = get_db()
user = db.execute("""
SELECT * FROM users
WHERE username = :val OR email = :val
""", {"val": user_input}).fetchone()
return user
def get_user_by_username(username):
db = get_db()
return db.execute("SELECT * FROM users WHERE username = ?", (username,)).fetchone()
def get_user_by_id(user_id):
db = get_db()
return db.execute("SELECT * FROM users WHERE id = ?", (user_id,)).fetchone()
def is_admin():
return session.get('is_admin', 0) == 1
@app.route('/')
def index():
if 'user_id' in session:
return redirect(url_for('dashboard'))
return redirect(url_for('login'))
# --------------------- REGISTRIEREN -------------------------
@app.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
username = request.form.get('username')
email = request.form.get('email')
password = request.form.get('password')
if not username or not email or not password:
flash('Bitte alle Felder ausfüllen!', 'red')
return redirect(url_for('register'))
db = get_db()
# Prüfen, ob Benutzer/E-Mail existieren
existing = db.execute("SELECT * FROM users WHERE username=? OR email=?", (username, email)).fetchone()
if existing:
flash('Benutzername oder E-Mail ist bereits vergeben!', 'red')
return redirect(url_for('register'))
# Erster registrierter User wird Admin
count = db.execute("SELECT COUNT(*) as cnt FROM users").fetchone()['cnt']
is_admin_val = 1 if count == 0 else 0 # Falls noch niemand existiert, ist das der Admin
hashed_pw = generate_password_hash(password)
db.execute("""
INSERT INTO users (username, password, email, is_admin)
VALUES (?, ?, ?, ?)
""", (username, hashed_pw, email, is_admin_val))
db.commit()
flash('Registrierung erfolgreich! Bitte melde dich an.', 'green')
return redirect(url_for('login'))
return render_template('register.html')
# --------------------- LOGIN/LOGOUT -------------------------
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
username = request.form.get('username')
password = request.form.get('password')
user = get_user_by_username(username)
if user and check_password_hash(user['password'], password):
session['user_id'] = user['id']
session['username'] = user['username']
session['is_admin'] = user['is_admin']
flash("Login erfolgreich!", "green")
return redirect(url_for('dashboard'))
else:
flash("Benutzername oder Passwort falsch!", "red")
return render_template('login.html')
@app.route('/logout', methods=['POST'])
def logout():
session.clear()
flash("Erfolgreich abgemeldet!", "green")
return redirect(url_for('login'))
# --------------------- PASSWORT VERGESSEN -------------------
@app.route('/forgot_password', methods=['GET', 'POST'])
def forgot_password():
if request.method == 'POST':
user_input = request.form.get('username_or_email')
if not user_input:
flash("Bitte einen Benutzernamen oder eine E-Mail angeben!", "red")
return redirect(url_for('forgot_password'))
user = get_user_by_username_or_email(user_input)
# Hier könnte man z.B. eine E-Mail mit Link senden oder im Notfall ein neues PW setzen
if user:
# Demo: Wir setzen einfach das Passwort auf "reset123" (nicht sicher!)
# Besser: generiere Token, sende E-Mail etc.
new_pw_hashed = generate_password_hash("reset123")
db = get_db()
db.execute("UPDATE users SET password=? WHERE id=?", (new_pw_hashed, user['id']))
db.commit()
flash("Dein Passwort wurde zurückgesetzt auf 'reset123'. Bitte ändere es nach dem Login!", "green")
return redirect(url_for('login'))
else:
flash("Kein passender Benutzer gefunden. Versuche es erneut!", "red")
return redirect(url_for('forgot_password'))
return render_template('forgot_password.html')
# --------------------- ADMIN-BEREICH ------------------------
@app.route('/admin', methods=['GET', 'POST'])
def admin_panel():
if not is_admin():
flash("Zugriff verweigert!", "red")
return redirect(url_for('dashboard'))
db = get_db()
if request.method == 'POST':
new_username = request.form.get('new_username')
new_password = request.form.get('new_password')
new_is_admin = 1 if request.form.get('new_is_admin') == 'on' else 0
if new_username and new_password:
hashed_pw = generate_password_hash(new_password)
try:
db.execute("INSERT INTO users (username, password, is_admin) VALUES (?, ?, ?)",
(new_username, hashed_pw, new_is_admin))
db.commit()
flash("Neuer Benutzer erstellt!", "green")
except sqlite3.IntegrityError:
flash("Benutzername bereits vorhanden!", "red")
users = db.execute("SELECT * FROM users").fetchall()
return render_template('admin.html', users=users)
@app.route('/admin/delete_user/<int:user_id>', methods=['POST'])
def delete_user(user_id):
if not is_admin():
flash("Zugriff verweigert!", "red")
return redirect(url_for('dashboard'))
if user_id == session.get('user_id'):
flash("Du kannst dich nicht selbst löschen!", "red")
return redirect(url_for('admin_panel'))
db = get_db()
db.execute("DELETE FROM users WHERE id=?", (user_id,))
db.commit()
flash("Benutzer gelöscht!", "green")
return redirect(url_for('admin_panel'))
# --------------------- NOTIFICATIONS ------------------------
@app.route('/admin/notifications', methods=['POST'])
def add_notification():
if not is_admin():
flash("Zugriff verweigert!", "red")
return redirect(url_for('dashboard'))
message = request.form.get('message')
user_id = request.form.get('user_id')
if message:
db = get_db()
if user_id == "all":
db.execute("INSERT INTO notifications (user_id, message) VALUES (NULL, ?)", (message,))
else:
db.execute("INSERT INTO notifications (user_id, message) VALUES (?, ?)", (user_id, message))
db.commit()
flash("Benachrichtigung erstellt!", "green")
return redirect(url_for('admin_panel'))
# --------------------- BOOKMARKS (nur Admin pflegbar) -------
@app.route('/admin/bookmarks/<int:user_id>', methods=['GET', 'POST'])
def manage_bookmarks(user_id):
if not is_admin():
flash("Zugriff verweigert!", "red")
return redirect(url_for('dashboard'))
db = get_db()
user = get_user_by_id(user_id)
if not user:
flash("Benutzer nicht gefunden!", "red")
return redirect(url_for('admin_panel'))
if request.method == 'POST':
title = request.form.get('title')
url = request.form.get('url')
icon = request.form.get('icon_class', 'fas fa-bookmark')
if title and url:
db.execute("INSERT INTO bookmarks (user_id, title, url, icon_class) VALUES (?, ?, ?, ?)",
(user_id, title, url, icon))
db.commit()
flash("Neues Lesezeichen hinzugefügt!", "green")
bookmarks = db.execute("SELECT * FROM bookmarks WHERE user_id=?", (user_id,)).fetchall()
return render_template('admin.html', single_user=user, bookmarks=bookmarks)
@app.route('/admin/delete_bookmark/<int:bookmark_id>/<int:user_id>', methods=['POST'])
def delete_bookmark(bookmark_id, user_id):
if not is_admin():
flash("Zugriff verweigert!", "red")
return redirect(url_for('dashboard'))
db = get_db()
db.execute("DELETE FROM bookmarks WHERE id=?", (bookmark_id,))
db.commit()
flash("Lesezeichen gelöscht!", "green")
return redirect(url_for('manage_bookmarks', user_id=user_id))
# --------------------- ZEITERFASSUNG ------------------------
@app.route('/time_tracking', methods=['POST'])
def time_tracking():
if 'user_id' not in session:
flash("Bitte erst einloggen!", "red")
return redirect(url_for('login'))
action = request.form.get('action')
activity = request.form.get('activity')
db = get_db()
if action == 'start':
if activity:
db.execute("""
INSERT INTO time_entries (user_id, activity, start_time)
VALUES (?, ?, ?)
""", (session['user_id'], activity, datetime.now()))
db.commit()
flash("Zeiterfassung gestartet!", "green")
else:
flash("Bitte einen Aktivitätsnamen angeben!", "red")
elif action == 'stop':
open_entry = db.execute("""
SELECT * FROM time_entries
WHERE user_id = ? AND end_time IS NULL
ORDER BY start_time DESC
LIMIT 1
""", (session['user_id'],)).fetchone()
if open_entry:
db.execute("UPDATE time_entries SET end_time=? WHERE id=?", (datetime.now(), open_entry['id']))
db.commit()
flash("Zeiterfassung gestoppt!", "green")
else:
flash("Keine laufende Zeiterfassung gefunden!", "red")
return redirect(url_for('dashboard'))
# --------------------- DASHBOARD ----------------------------
@app.route('/dashboard')
def dashboard():
if 'user_id' not in session:
flash("Bitte erst einloggen!", "red")
return redirect(url_for('login'))
db = get_db()
user_id = session['user_id']
user = get_user_by_id(user_id)
# Notifications (global oder speziell für diesen User)
notifications = db.execute("""
SELECT * FROM notifications
WHERE user_id = ? OR user_id IS NULL
ORDER BY created_at DESC
""", (user_id,)).fetchall()
# Bookmarks für diesen Benutzer
user_bookmarks = db.execute("SELECT * FROM bookmarks WHERE user_id = ?", (user_id,)).fetchall()
# Time-Entries
time_entries = db.execute("""
SELECT * FROM time_entries
WHERE user_id = ?
ORDER BY start_time DESC
""", (user_id,)).fetchall()
return render_template('dashboard.html',
user=user['username'],
notifications=notifications,
user_bookmarks=user_bookmarks,
time_entries=time_entries,
domain="meinedomain.de",
logo_path="static/logo.png")
# --------------------- STARTUP ------------------------------
if __name__ == '__main__':
init_db()
app.run(debug=True)

BIN
Dashboard_V2/clickcandit.db Normal file

Binary file not shown.

View File

@@ -0,0 +1,2 @@
Flask
Werkzeug

BIN
Dashboard_V2/static/1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

BIN
Dashboard_V2/static/10.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

BIN
Dashboard_V2/static/11.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 MiB

BIN
Dashboard_V2/static/12.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 MiB

BIN
Dashboard_V2/static/13.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

BIN
Dashboard_V2/static/14.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 MiB

BIN
Dashboard_V2/static/15.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

BIN
Dashboard_V2/static/16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 KiB

BIN
Dashboard_V2/static/17.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

BIN
Dashboard_V2/static/18.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

BIN
Dashboard_V2/static/19.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

BIN
Dashboard_V2/static/2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 737 KiB

BIN
Dashboard_V2/static/20.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

BIN
Dashboard_V2/static/21.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

BIN
Dashboard_V2/static/22.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

BIN
Dashboard_V2/static/23.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

BIN
Dashboard_V2/static/24.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 933 KiB

BIN
Dashboard_V2/static/25.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

BIN
Dashboard_V2/static/26.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 805 KiB

BIN
Dashboard_V2/static/3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 730 KiB

BIN
Dashboard_V2/static/4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 677 KiB

BIN
Dashboard_V2/static/5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

BIN
Dashboard_V2/static/6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

BIN
Dashboard_V2/static/7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 MiB

BIN
Dashboard_V2/static/8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

BIN
Dashboard_V2/static/9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 MiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,35 @@
@font-face {
font-family: 'Alatsi';
src: url(../../static/fonts/Alatsi-a809bbcebff1b9584d9a33f2b3c4e82d.woff2?h=d29807f53c43f18abb7db6d6a655d24a) format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
font-family: 'Alatsi';
src: url(../../static/fonts/Alatsi-c953625adc1026d80510760e651ccfa3.woff2?h=d29807f53c43f18abb7db6d6a655d24a) format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
font-family: 'Alatsi';
src: url(../../static/fonts/Alatsi-03bc6b7e22755b91ac9e11f52cb21d49.woff2?h=d29807f53c43f18abb7db6d6a655d24a) format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Alatsi';
src: url(../../static/fonts/Alatsi-06649cd1887b33b92b026c9ba3067fac.woff2?h=d29807f53c43f18abb7db6d6a655d24a) format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

View File

@@ -0,0 +1,8 @@
@font-face {
font-family: 'Antic Didone';
src: url(../../static/fonts/Antic%20Didone-3c5164f3671eaf5914fb593f9a9dcc78.woff2?h=5e33330a16aa5208850a57e448b395cc) format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

View File

@@ -0,0 +1,17 @@
@font-face {
font-family: 'Armata';
src: url(../../static/fonts/Armata-139b2ca26574ebe80cc15f5be5caf633.woff2?h=7b1ecf9bdfa1a5cb634a398a95af90cb) format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Armata';
src: url(../../static/fonts/Armata-618d0f355b0e608656d15003c2a15956.woff2?h=7b1ecf9bdfa1a5cb634a398a95af90cb) format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

View File

@@ -0,0 +1,80 @@
@font-face {
font-family: 'Assistant';
src: url(../../static/fonts/Assistant-a5c3cc9fc869672054207074d6811f20.woff2?h=8268165a829c7494ab9c2e4a70728ec4) format('woff2');
font-weight: 200;
font-style: normal;
font-display: swap;
unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
font-family: 'Assistant';
src: url(../../static/fonts/Assistant-d858db471e0b629f49adaea130f374d8.woff2?h=8268165a829c7494ab9c2e4a70728ec4) format('woff2');
font-weight: 200;
font-style: normal;
font-display: swap;
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Assistant';
src: url(../../static/fonts/Assistant-ab79def354df1cdf632de90c45e97140.woff2?h=8268165a829c7494ab9c2e4a70728ec4) format('woff2');
font-weight: 200;
font-style: normal;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Assistant';
src: url(../../static/fonts/Assistant-a5c3cc9fc869672054207074d6811f20.woff2?h=8268165a829c7494ab9c2e4a70728ec4) format('woff2');
font-weight: 300;
font-style: normal;
font-display: swap;
unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
font-family: 'Assistant';
src: url(../../static/fonts/Assistant-d858db471e0b629f49adaea130f374d8.woff2?h=8268165a829c7494ab9c2e4a70728ec4) format('woff2');
font-weight: 300;
font-style: normal;
font-display: swap;
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Assistant';
src: url(../../static/fonts/Assistant-ab79def354df1cdf632de90c45e97140.woff2?h=8268165a829c7494ab9c2e4a70728ec4) format('woff2');
font-weight: 300;
font-style: normal;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Assistant';
src: url(../../static/fonts/Assistant-a5c3cc9fc869672054207074d6811f20.woff2?h=8268165a829c7494ab9c2e4a70728ec4) format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
font-family: 'Assistant';
src: url(../../static/fonts/Assistant-d858db471e0b629f49adaea130f374d8.woff2?h=8268165a829c7494ab9c2e4a70728ec4) format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Assistant';
src: url(../../static/fonts/Assistant-ab79def354df1cdf632de90c45e97140.woff2?h=8268165a829c7494ab9c2e4a70728ec4) format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

View File

@@ -0,0 +1,4 @@
.fit-cover {
object-fit: cover;
}

View File

@@ -0,0 +1,57 @@
.bs-icon {
--bs-icon-size: .75rem;
display: flex;
flex-shrink: 0;
justify-content: center;
align-items: center;
font-size: var(--bs-icon-size);
width: calc(var(--bs-icon-size) * 2);
height: calc(var(--bs-icon-size) * 2);
color: var(--bs-primary);
}
.bs-icon-xs {
--bs-icon-size: 1rem;
width: calc(var(--bs-icon-size) * 1.5);
height: calc(var(--bs-icon-size) * 1.5);
}
.bs-icon-sm {
--bs-icon-size: 1rem;
}
.bs-icon-md {
--bs-icon-size: 1.5rem;
}
.bs-icon-lg {
--bs-icon-size: 2rem;
}
.bs-icon-xl {
--bs-icon-size: 2.5rem;
}
.bs-icon.bs-icon-primary {
color: var(--bs-white);
background: var(--bs-primary);
}
.bs-icon.bs-icon-primary-light {
color: var(--bs-primary);
background: rgba(var(--bs-primary-rgb), .2);
}
.bs-icon.bs-icon-semi-white {
color: var(--bs-primary);
background: rgba(255, 255, 255, .5);
}
.bs-icon.bs-icon-rounded {
border-radius: .5rem;
}
.bs-icon.bs-icon-circle {
border-radius: 50%;
}

View File

@@ -0,0 +1,629 @@
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-501638185f142ea970e06ff6a896cf44.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 300;
font-style: italic;
font-display: swap;
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-d845be6713e4acd3766e1f8f6418c97e.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 300;
font-style: italic;
font-display: swap;
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-8d07e5f373f5bb3603b3e139f63e3386.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 300;
font-style: italic;
font-display: swap;
unicode-range: U+1F00-1FFF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-8e1d10adf40d7223fbee98b930853a8a.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 300;
font-style: italic;
font-display: swap;
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-db78de5246196d0d93187248cbebc6c2.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 300;
font-style: italic;
font-display: swap;
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-6b97bb4aa11fb6d8c29b378b87c8ce45.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 300;
font-style: italic;
font-display: swap;
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-69c9fb2f299f5f5be8d2800cd24271f9.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 300;
font-style: italic;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-501638185f142ea970e06ff6a896cf44.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 400;
font-style: italic;
font-display: swap;
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-d845be6713e4acd3766e1f8f6418c97e.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 400;
font-style: italic;
font-display: swap;
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-8d07e5f373f5bb3603b3e139f63e3386.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 400;
font-style: italic;
font-display: swap;
unicode-range: U+1F00-1FFF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-8e1d10adf40d7223fbee98b930853a8a.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 400;
font-style: italic;
font-display: swap;
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-db78de5246196d0d93187248cbebc6c2.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 400;
font-style: italic;
font-display: swap;
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-6b97bb4aa11fb6d8c29b378b87c8ce45.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 400;
font-style: italic;
font-display: swap;
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-69c9fb2f299f5f5be8d2800cd24271f9.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 400;
font-style: italic;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-501638185f142ea970e06ff6a896cf44.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 600;
font-style: italic;
font-display: swap;
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-d845be6713e4acd3766e1f8f6418c97e.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 600;
font-style: italic;
font-display: swap;
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-8d07e5f373f5bb3603b3e139f63e3386.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 600;
font-style: italic;
font-display: swap;
unicode-range: U+1F00-1FFF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-8e1d10adf40d7223fbee98b930853a8a.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 600;
font-style: italic;
font-display: swap;
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-db78de5246196d0d93187248cbebc6c2.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 600;
font-style: italic;
font-display: swap;
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-6b97bb4aa11fb6d8c29b378b87c8ce45.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 600;
font-style: italic;
font-display: swap;
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-69c9fb2f299f5f5be8d2800cd24271f9.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 600;
font-style: italic;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-501638185f142ea970e06ff6a896cf44.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 700;
font-style: italic;
font-display: swap;
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-d845be6713e4acd3766e1f8f6418c97e.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 700;
font-style: italic;
font-display: swap;
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-8d07e5f373f5bb3603b3e139f63e3386.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 700;
font-style: italic;
font-display: swap;
unicode-range: U+1F00-1FFF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-8e1d10adf40d7223fbee98b930853a8a.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 700;
font-style: italic;
font-display: swap;
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-db78de5246196d0d93187248cbebc6c2.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 700;
font-style: italic;
font-display: swap;
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-6b97bb4aa11fb6d8c29b378b87c8ce45.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 700;
font-style: italic;
font-display: swap;
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-69c9fb2f299f5f5be8d2800cd24271f9.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 700;
font-style: italic;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-501638185f142ea970e06ff6a896cf44.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 800;
font-style: italic;
font-display: swap;
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-d845be6713e4acd3766e1f8f6418c97e.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 800;
font-style: italic;
font-display: swap;
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-8d07e5f373f5bb3603b3e139f63e3386.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 800;
font-style: italic;
font-display: swap;
unicode-range: U+1F00-1FFF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-8e1d10adf40d7223fbee98b930853a8a.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 800;
font-style: italic;
font-display: swap;
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-db78de5246196d0d93187248cbebc6c2.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 800;
font-style: italic;
font-display: swap;
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-6b97bb4aa11fb6d8c29b378b87c8ce45.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 800;
font-style: italic;
font-display: swap;
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-69c9fb2f299f5f5be8d2800cd24271f9.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 800;
font-style: italic;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-9f11e6095a39b5e188d6a081f05299fb.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 300;
font-style: normal;
font-display: swap;
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-c0b8741a9d891c8088e6db8ca3a4b5fa.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 300;
font-style: normal;
font-display: swap;
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-991ff15c49155ffbda53e3aa14ecb8b6.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 300;
font-style: normal;
font-display: swap;
unicode-range: U+1F00-1FFF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-8b0bd5934b903f2631853751aedf28a6.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 300;
font-style: normal;
font-display: swap;
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-aa0964911973a0fbaf081bae32a490f3.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 300;
font-style: normal;
font-display: swap;
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-1b621eda4be3428e50a0ee070c09005b.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 300;
font-style: normal;
font-display: swap;
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-d48b1d4d308900f0591fb3bdcf442fdf.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 300;
font-style: normal;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-9f11e6095a39b5e188d6a081f05299fb.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-c0b8741a9d891c8088e6db8ca3a4b5fa.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-991ff15c49155ffbda53e3aa14ecb8b6.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+1F00-1FFF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-8b0bd5934b903f2631853751aedf28a6.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-aa0964911973a0fbaf081bae32a490f3.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-1b621eda4be3428e50a0ee070c09005b.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-d48b1d4d308900f0591fb3bdcf442fdf.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-9f11e6095a39b5e188d6a081f05299fb.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 600;
font-style: normal;
font-display: swap;
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-c0b8741a9d891c8088e6db8ca3a4b5fa.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 600;
font-style: normal;
font-display: swap;
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-991ff15c49155ffbda53e3aa14ecb8b6.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 600;
font-style: normal;
font-display: swap;
unicode-range: U+1F00-1FFF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-8b0bd5934b903f2631853751aedf28a6.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 600;
font-style: normal;
font-display: swap;
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-aa0964911973a0fbaf081bae32a490f3.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 600;
font-style: normal;
font-display: swap;
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-1b621eda4be3428e50a0ee070c09005b.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 600;
font-style: normal;
font-display: swap;
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-d48b1d4d308900f0591fb3bdcf442fdf.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 600;
font-style: normal;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-9f11e6095a39b5e188d6a081f05299fb.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-c0b8741a9d891c8088e6db8ca3a4b5fa.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-991ff15c49155ffbda53e3aa14ecb8b6.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
unicode-range: U+1F00-1FFF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-8b0bd5934b903f2631853751aedf28a6.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-aa0964911973a0fbaf081bae32a490f3.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-1b621eda4be3428e50a0ee070c09005b.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-d48b1d4d308900f0591fb3bdcf442fdf.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-9f11e6095a39b5e188d6a081f05299fb.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 800;
font-style: normal;
font-display: swap;
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-c0b8741a9d891c8088e6db8ca3a4b5fa.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 800;
font-style: normal;
font-display: swap;
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-991ff15c49155ffbda53e3aa14ecb8b6.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 800;
font-style: normal;
font-display: swap;
unicode-range: U+1F00-1FFF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-8b0bd5934b903f2631853751aedf28a6.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 800;
font-style: normal;
font-display: swap;
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-aa0964911973a0fbaf081bae32a490f3.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 800;
font-style: normal;
font-display: swap;
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-1b621eda4be3428e50a0ee070c09005b.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 800;
font-style: normal;
font-display: swap;
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Inter';
src: url(../../static/fonts/Inter-d48b1d4d308900f0591fb3bdcf442fdf.woff2?h=2d53df1b4b7add2ab01c7c3067d173e4) format('woff2');
font-weight: 800;
font-style: normal;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

View File

@@ -0,0 +1,208 @@
/* !
* baguetteBox.js
* @author feimosi
* @version 1.11.1
* @url https://github.com/feimosi/baguetteBox.js */
#baguetteBox-overlay {
display: none;
opacity: 0;
position: fixed;
overflow: hidden;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1000000;
background-color: #222;
background-color: rgba(0,0,0,.8);
-webkit-transition: opacity .5s ease;
transition: opacity .5s ease;
}
#baguetteBox-overlay.visible {
opacity: 1;
}
#baguetteBox-overlay .full-image {
display: inline-block;
position: relative;
width: 100%;
height: 100%;
text-align: center;
}
#baguetteBox-overlay .full-image figure {
display: inline;
margin: 0;
height: 100%;
}
#baguetteBox-overlay .full-image img {
display: inline-block;
width: auto;
height: auto;
max-height: 100%;
max-width: 100%;
vertical-align: middle;
-webkit-box-shadow: 0 0 8px rgba(0,0,0,.6);
-moz-box-shadow: 0 0 8px rgba(0,0,0,.6);
box-shadow: 0 0 8px rgba(0,0,0,.6);
}
#baguetteBox-overlay .full-image figcaption {
display: block;
position: absolute;
bottom: 0;
width: 100%;
text-align: center;
line-height: 1.8;
white-space: normal;
color: #ccc;
background-color: #000;
background-color: rgba(0,0,0,.6);
font-family: sans-serif;
}
#baguetteBox-overlay .full-image:before {
content: "";
display: inline-block;
height: 50%;
width: 1px;
margin-right: -1px;
}
#baguetteBox-slider {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
white-space: nowrap;
-webkit-transition: left .4s ease,-webkit-transform .4s ease;
transition: left .4s ease,-webkit-transform .4s ease;
transition: left .4s ease,transform .4s ease;
transition: left .4s ease,transform .4s ease,-webkit-transform .4s ease,-moz-transform .4s ease;
}
#baguetteBox-slider.bounce-from-right {
-webkit-animation: bounceFromRight .4s ease-out;
animation: bounceFromRight .4s ease-out;
}
#baguetteBox-slider.bounce-from-left {
-webkit-animation: bounceFromLeft .4s ease-out;
animation: bounceFromLeft .4s ease-out;
}
@keyframes bounceFromRight {
0%, 100% {
margin-left: 0;
}
50% {
margin-left: -30px;
}
}
@keyframes bounceFromLeft {
0%, 100% {
margin-left: 0;
}
50% {
margin-left: 30px;
}
}
.baguetteBox-button#next-button, .baguetteBox-button#previous-button {
top: 50%;
top: calc(50% - 30px);
width: 44px;
height: 60px;
}
.baguetteBox-button {
position: absolute;
cursor: pointer;
outline: 0;
padding: 0;
margin: 0;
border: 0;
-moz-border-radius: 15%;
border-radius: 15%;
background-color: #323232;
background-color: rgba(50,50,50,.5);
color: #ddd;
font: 1.6em sans-serif;
-webkit-transition: background-color .4s ease;
transition: background-color .4s ease;
}
.baguetteBox-button:focus, .baguetteBox-button:hover {
background-color: rgba(50,50,50,.9);
}
.baguetteBox-button#next-button {
right: 2%;
}
.baguetteBox-button#previous-button {
left: 2%;
}
.baguetteBox-button#close-button {
top: 20px;
right: 2%;
right: calc(2% + 6px);
width: 30px;
height: 30px;
}
.baguetteBox-button svg {
position: absolute;
left: 0;
top: 0;
}
.baguetteBox-spinner {
width: 40px;
height: 40px;
display: inline-block;
position: absolute;
top: 50%;
left: 50%;
margin-top: -20px;
margin-left: -20px;
}
.baguetteBox-double-bounce1, .baguetteBox-double-bounce2 {
width: 100%;
height: 100%;
-moz-border-radius: 50%;
border-radius: 50%;
background-color: #fff;
opacity: .6;
position: absolute;
top: 0;
left: 0;
-webkit-animation: bounce 2s infinite ease-in-out;
animation: bounce 2s infinite ease-in-out;
}
.baguetteBox-double-bounce2 {
-webkit-animation-delay: -1s;
animation-delay: -1s;
}
@keyframes bounce {
0%, 100% {
-webkit-transform: scale(0);
-moz-transform: scale(0);
transform: scale(0);
}
50% {
-webkit-transform: scale(1);
-moz-transform: scale(1);
transform: scale(1);
}
}

View File

@@ -0,0 +1,7 @@
@font-face {
font-family: 'MyFont';
src: url(../../static/fonts/UniSansCaps.otf) format('otf');
font-weight: normal;
font-style: normal;
font-display: auto;
}

View File

@@ -0,0 +1,14 @@
.bg-white-300 {
background: rgba(255, 255, 255, 0.3) !important;
}
.rounded-bottom-left {
border-radius: 0;
border-bottom-left-radius: .25rem!important;
}
.rounded-bottom-right {
border-radius: 0;
border-bottom-right-radius: .25rem!important;
}

View File

@@ -0,0 +1,576 @@
/* *
* Swiper 6.4.8
* Most modern mobile touch slider and framework with hardware accelerated transitions
* https://swiperjs.com
*
* Copyright 2014-2021 Vladimir Kharlampidi
*
* Released under the MIT License
*
* Released on: January 22, 2021 */
:root {
--swiper-theme-color: #007aff;
}
.swiper-container {
margin-left: auto;
margin-right: auto;
position: relative;
overflow: hidden;
list-style: none;
padding: 0;
z-index: 1;
}
.swiper-container-vertical > .swiper-wrapper {
flex-direction: column;
}
.swiper-wrapper {
position: relative;
width: 100%;
height: 100%;
z-index: 1;
display: flex;
transition-property: transform;
box-sizing: content-box;
}
.swiper-container-android .swiper-slide, .swiper-wrapper {
transform: translate3d(0px,0,0);
}
.swiper-container-multirow > .swiper-wrapper {
flex-wrap: wrap;
}
.swiper-container-multirow-column > .swiper-wrapper {
flex-wrap: wrap;
flex-direction: column;
}
.swiper-container-free-mode > .swiper-wrapper {
transition-timing-function: ease-out;
margin: 0 auto;
}
.swiper-container-pointer-events {
touch-action: pan-y;
}
.swiper-container-pointer-events.swiper-container-vertical {
touch-action: pan-x;
}
.swiper-slide {
flex-shrink: 0;
width: 100%;
height: 100%;
position: relative;
transition-property: transform;
}
.swiper-slide-invisible-blank {
visibility: hidden;
}
.swiper-container-autoheight, .swiper-container-autoheight .swiper-slide {
height: auto;
}
.swiper-container-autoheight .swiper-wrapper {
align-items: flex-start;
transition-property: transform,height;
}
.swiper-container-3d {
perspective: 1200px;
}
.swiper-container-3d .swiper-cube-shadow, .swiper-container-3d .swiper-slide, .swiper-container-3d .swiper-slide-shadow-bottom, .swiper-container-3d .swiper-slide-shadow-left, .swiper-container-3d .swiper-slide-shadow-right, .swiper-container-3d .swiper-slide-shadow-top, .swiper-container-3d .swiper-wrapper {
transform-style: preserve-3d;
}
.swiper-container-3d .swiper-slide-shadow-bottom, .swiper-container-3d .swiper-slide-shadow-left, .swiper-container-3d .swiper-slide-shadow-right, .swiper-container-3d .swiper-slide-shadow-top {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 10;
}
.swiper-container-3d .swiper-slide-shadow-left {
background-image: linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0));
}
.swiper-container-3d .swiper-slide-shadow-right {
background-image: linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0));
}
.swiper-container-3d .swiper-slide-shadow-top {
background-image: linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0));
}
.swiper-container-3d .swiper-slide-shadow-bottom {
background-image: linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0));
}
.swiper-container-css-mode > .swiper-wrapper {
overflow: auto;
scrollbar-width: none;
-ms-overflow-style: none;
}
.swiper-container-css-mode > .swiper-wrapper::-webkit-scrollbar {
display: none;
}
.swiper-container-css-mode > .swiper-wrapper > .swiper-slide {
scroll-snap-align: start start;
}
.swiper-container-horizontal.swiper-container-css-mode > .swiper-wrapper {
scroll-snap-type: x mandatory;
}
.swiper-container-vertical.swiper-container-css-mode > .swiper-wrapper {
scroll-snap-type: y mandatory;
}
:root {
--swiper-navigation-size: 44px;
}
.swiper-button-next, .swiper-button-prev {
position: absolute;
top: 50%;
width: calc(var(--swiper-navigation-size)/ 44 * 27);
height: var(--swiper-navigation-size);
margin-top: calc(-1 * var(--swiper-navigation-size)/ 2);
z-index: 10;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
color: var(--swiper-navigation-color,var(--swiper-theme-color));
}
.swiper-button-next.swiper-button-disabled, .swiper-button-prev.swiper-button-disabled {
opacity: .35;
cursor: auto;
pointer-events: none;
}
.swiper-button-next:after, .swiper-button-prev:after {
font-family: swiper-icons;
font-size: var(--swiper-navigation-size);
text-transform: none!important;
letter-spacing: 0;
text-transform: none;
font-variant: initial;
line-height: 1;
}
.swiper-button-prev, .swiper-container-rtl .swiper-button-next {
left: 10px;
right: auto;
}
.swiper-button-prev:after, .swiper-container-rtl .swiper-button-next:after {
content: 'prev';
}
.swiper-button-next, .swiper-container-rtl .swiper-button-prev {
right: 10px;
left: auto;
}
.swiper-button-next:after, .swiper-container-rtl .swiper-button-prev:after {
content: 'next';
}
.swiper-button-next.swiper-button-white, .swiper-button-prev.swiper-button-white {
--swiper-navigation-color: #ffffff;
}
.swiper-button-next.swiper-button-black, .swiper-button-prev.swiper-button-black {
--swiper-navigation-color: #000000;
}
.swiper-button-lock {
display: none;
}
.swiper-pagination {
position: absolute;
text-align: center;
transition: .3s opacity;
transform: translate3d(0,0,0);
z-index: 10;
}
.swiper-pagination.swiper-pagination-hidden {
opacity: 0;
}
.swiper-container-horizontal > .swiper-pagination-bullets, .swiper-pagination-custom, .swiper-pagination-fraction {
bottom: 10px;
left: 0;
width: 100%;
}
.swiper-pagination-bullets-dynamic {
overflow: hidden;
font-size: 0;
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
transform: scale(.33);
position: relative;
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
transform: scale(1);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
transform: scale(1);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
transform: scale(.66);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
transform: scale(.33);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
transform: scale(.66);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
transform: scale(.33);
}
.swiper-pagination-bullet {
width: 8px;
height: 8px;
display: inline-block;
border-radius: 50%;
background: #000;
opacity: .2;
}
button.swiper-pagination-bullet {
border: none;
margin: 0;
padding: 0;
box-shadow: none;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
.swiper-pagination-clickable .swiper-pagination-bullet {
cursor: pointer;
}
.swiper-pagination-bullet-active {
opacity: 1;
background: var(--swiper-pagination-color,var(--swiper-theme-color));
}
.swiper-container-vertical > .swiper-pagination-bullets {
right: 10px;
top: 50%;
transform: translate3d(0px,-50%,0);
}
.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet {
margin: 6px 0;
display: block;
}
.swiper-container-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
top: 50%;
transform: translateY(-50%);
width: 8px;
}
.swiper-container-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
display: inline-block;
transition: .2s transform,.2s top;
}
.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet {
margin: 0 4px;
}
.swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
left: 50%;
transform: translateX(-50%);
white-space: nowrap;
}
.swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
transition: .2s transform,.2s left;
}
.swiper-container-horizontal.swiper-container-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
transition: .2s transform,.2s right;
}
.swiper-pagination-progressbar {
background: rgba(0,0,0,.25);
position: absolute;
}
.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
background: var(--swiper-pagination-color,var(--swiper-theme-color));
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
transform: scale(0);
transform-origin: left top;
}
.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
transform-origin: right top;
}
.swiper-container-horizontal > .swiper-pagination-progressbar, .swiper-container-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
width: 100%;
height: 4px;
left: 0;
top: 0;
}
.swiper-container-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite, .swiper-container-vertical > .swiper-pagination-progressbar {
width: 4px;
height: 100%;
left: 0;
top: 0;
}
.swiper-pagination-white {
--swiper-pagination-color: #ffffff;
}
.swiper-pagination-black {
--swiper-pagination-color: #000000;
}
.swiper-pagination-lock {
display: none;
}
.swiper-scrollbar {
border-radius: 10px;
position: relative;
-ms-touch-action: none;
background: rgba(0,0,0,.1);
}
.swiper-container-horizontal > .swiper-scrollbar {
position: absolute;
left: 1%;
bottom: 3px;
z-index: 50;
height: 5px;
width: 98%;
}
.swiper-container-vertical > .swiper-scrollbar {
position: absolute;
right: 3px;
top: 1%;
z-index: 50;
width: 5px;
height: 98%;
}
.swiper-scrollbar-drag {
height: 100%;
width: 100%;
position: relative;
background: rgba(0,0,0,.5);
border-radius: 10px;
left: 0;
top: 0;
}
.swiper-scrollbar-cursor-drag {
cursor: move;
}
.swiper-scrollbar-lock {
display: none;
}
.swiper-zoom-container {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
}
.swiper-zoom-container > canvas, .swiper-zoom-container > img, .swiper-zoom-container > svg {
max-width: 100%;
max-height: 100%;
object-fit: contain;
}
.swiper-slide-zoomed {
cursor: move;
}
.swiper-lazy-preloader {
width: 42px;
height: 42px;
position: absolute;
left: 50%;
top: 50%;
margin-left: -21px;
margin-top: -21px;
z-index: 10;
transform-origin: 50%;
animation: swiper-preloader-spin 1s infinite linear;
box-sizing: border-box;
border: 4px solid var(--swiper-preloader-color,var(--swiper-theme-color));
border-radius: 50%;
border-top-color: transparent;
}
.swiper-lazy-preloader-white {
--swiper-preloader-color: #fff;
}
.swiper-lazy-preloader-black {
--swiper-preloader-color: #000;
}
@keyframes swiper-preloader-spin {
100% {
transform: rotate(360deg);
}
}
.swiper-container .swiper-notification {
position: absolute;
left: 0;
top: 0;
pointer-events: none;
opacity: 0;
z-index: -1000;
}
.swiper-container-fade.swiper-container-free-mode .swiper-slide {
transition-timing-function: ease-out;
}
.swiper-container-fade .swiper-slide {
pointer-events: none;
transition-property: opacity;
}
.swiper-container-fade .swiper-slide .swiper-slide {
pointer-events: none;
}
.swiper-container-fade .swiper-slide-active, .swiper-container-fade .swiper-slide-active .swiper-slide-active {
pointer-events: auto;
}
.swiper-container-cube {
overflow: visible;
}
.swiper-container-cube .swiper-slide {
pointer-events: none;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
z-index: 1;
visibility: hidden;
transform-origin: 0 0;
width: 100%;
height: 100%;
}
.swiper-container-cube .swiper-slide .swiper-slide {
pointer-events: none;
}
.swiper-container-cube.swiper-container-rtl .swiper-slide {
transform-origin: 100% 0;
}
.swiper-container-cube .swiper-slide-active, .swiper-container-cube .swiper-slide-active .swiper-slide-active {
pointer-events: auto;
}
.swiper-container-cube .swiper-slide-active, .swiper-container-cube .swiper-slide-next, .swiper-container-cube .swiper-slide-next + .swiper-slide, .swiper-container-cube .swiper-slide-prev {
pointer-events: auto;
visibility: visible;
}
.swiper-container-cube .swiper-slide-shadow-bottom, .swiper-container-cube .swiper-slide-shadow-left, .swiper-container-cube .swiper-slide-shadow-right, .swiper-container-cube .swiper-slide-shadow-top {
z-index: 0;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.swiper-container-cube .swiper-cube-shadow {
position: absolute;
left: 0;
bottom: 0px;
width: 100%;
height: 100%;
opacity: .6;
z-index: 0;
}
.swiper-container-cube .swiper-cube-shadow:before {
content: '';
background: #000;
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
-webkit-filter: blur(50px);
filter: blur(50px);
}
.swiper-container-flip {
overflow: visible;
}
.swiper-container-flip .swiper-slide {
pointer-events: none;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
z-index: 1;
}
.swiper-container-flip .swiper-slide .swiper-slide {
pointer-events: none;
}
.swiper-container-flip .swiper-slide-active, .swiper-container-flip .swiper-slide-active .swiper-slide-active {
pointer-events: auto;
}
.swiper-container-flip .swiper-slide-shadow-bottom, .swiper-container-flip .swiper-slide-shadow-left, .swiper-container-flip .swiper-slide-shadow-right, .swiper-container-flip .swiper-slide-shadow-top {
z-index: 0;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}

View File

@@ -0,0 +1,25 @@
.simple-slider .swiper-slide {
height: 500px;
background-repeat: no-repeat;
background-size: cover;
background-position: center;
}
.simple-slider .swiper-button-next, .simple-slider .swiper-button-prev {
width: 50px;
margin-left: 20px;
margin-right: 20px;
}
@media (max-width:767px) {
.simple-slider .swiper-button-next, .simple-slider .swiper-button-prev {
display: none;
}
}
@media (max-width:767px) {
.simple-slider .swiper-slide {
height: 360px;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,63 @@
.accordion collapse {
border: 0;
}
.accordion-button:focus {
box-shadow: none;
border: none;
}
.accordion-button:not(.collapsed) {
background: none;
color: #ff9800;
box-shadow: none;
border-bottom: none;
}
.accordion-button::after {
width: auto;
height: auto;
content: "+";
font-size: 40px;
background-image: none;
font-weight: 100;
color: #1b6ce5;
transform: translateY(-4px);
}
.accordion-button:not(.collapsed)::after {
width: auto;
height: auto;
background-image: none;
content: "-";
font-size: 48px;
transform: translate(-5px, -4px);
transform: rotate(0deg);
}
@media (max-width: 991px) {
#navcol-1 {
margin-top: 12px;
background: #2d2c38;
border-radius: 10px;
max-width: 992px;
backdrop-filter: opacity(1);
-webkit-backdrop-filter: opacity(1);
border-top-color: var(--bs-emphasis-color);
border-bottom-color: var(--bs-emphasis-color);
overflow: visible;
background: #01002a;
}
}
@media (min-width: 992px) {
#navcol-1 {
margin-top: 29px;
box-shadow: 0px 0px;
background: rgba(45,44,56,0);
backdrop-filter: opacity(0);
-webkit-backdrop-filter: opacity(0);
background: rgba(45,44,56,0);
}
}

1742
Dashboard_V2/static/css/animate.min.css vendored Normal file

File diff suppressed because it is too large Load Diff

955
Dashboard_V2/static/css/aos.min.css vendored Normal file
View File

@@ -0,0 +1,955 @@
/* AOS version 2.1.1 */
[data-aos][data-aos][data-aos-duration='50'], body[data-aos-duration='50'] [data-aos] {
transition-duration: 50ms;
}
[data-aos][data-aos][data-aos-delay='50'], body[data-aos-delay='50'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='50'].aos-animate, body[data-aos-delay='50'] [data-aos].aos-animate {
transition-delay: 50ms;
}
[data-aos][data-aos][data-aos-duration='100'], body[data-aos-duration='100'] [data-aos] {
transition-duration: .1s;
}
[data-aos][data-aos][data-aos-delay='100'], body[data-aos-delay='100'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='100'].aos-animate, body[data-aos-delay='100'] [data-aos].aos-animate {
transition-delay: .1s;
}
[data-aos][data-aos][data-aos-duration='150'], body[data-aos-duration='150'] [data-aos] {
transition-duration: .15s;
}
[data-aos][data-aos][data-aos-delay='150'], body[data-aos-delay='150'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='150'].aos-animate, body[data-aos-delay='150'] [data-aos].aos-animate {
transition-delay: .15s;
}
[data-aos][data-aos][data-aos-duration='200'], body[data-aos-duration='200'] [data-aos] {
transition-duration: .2s;
}
[data-aos][data-aos][data-aos-delay='200'], body[data-aos-delay='200'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='200'].aos-animate, body[data-aos-delay='200'] [data-aos].aos-animate {
transition-delay: .2s;
}
[data-aos][data-aos][data-aos-duration='250'], body[data-aos-duration='250'] [data-aos] {
transition-duration: .25s;
}
[data-aos][data-aos][data-aos-delay='250'], body[data-aos-delay='250'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='250'].aos-animate, body[data-aos-delay='250'] [data-aos].aos-animate {
transition-delay: .25s;
}
[data-aos][data-aos][data-aos-duration='300'], body[data-aos-duration='300'] [data-aos] {
transition-duration: .3s;
}
[data-aos][data-aos][data-aos-delay='300'], body[data-aos-delay='300'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='300'].aos-animate, body[data-aos-delay='300'] [data-aos].aos-animate {
transition-delay: .3s;
}
[data-aos][data-aos][data-aos-duration='350'], body[data-aos-duration='350'] [data-aos] {
transition-duration: .35s;
}
[data-aos][data-aos][data-aos-delay='350'], body[data-aos-delay='350'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='350'].aos-animate, body[data-aos-delay='350'] [data-aos].aos-animate {
transition-delay: .35s;
}
[data-aos][data-aos][data-aos-duration='400'], body[data-aos-duration='400'] [data-aos] {
transition-duration: .4s;
}
[data-aos][data-aos][data-aos-delay='400'], body[data-aos-delay='400'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='400'].aos-animate, body[data-aos-delay='400'] [data-aos].aos-animate {
transition-delay: .4s;
}
[data-aos][data-aos][data-aos-duration='450'], body[data-aos-duration='450'] [data-aos] {
transition-duration: .45s;
}
[data-aos][data-aos][data-aos-delay='450'], body[data-aos-delay='450'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='450'].aos-animate, body[data-aos-delay='450'] [data-aos].aos-animate {
transition-delay: .45s;
}
[data-aos][data-aos][data-aos-duration='500'], body[data-aos-duration='500'] [data-aos] {
transition-duration: .5s;
}
[data-aos][data-aos][data-aos-delay='500'], body[data-aos-delay='500'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='500'].aos-animate, body[data-aos-delay='500'] [data-aos].aos-animate {
transition-delay: .5s;
}
[data-aos][data-aos][data-aos-duration='550'], body[data-aos-duration='550'] [data-aos] {
transition-duration: .55s;
}
[data-aos][data-aos][data-aos-delay='550'], body[data-aos-delay='550'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='550'].aos-animate, body[data-aos-delay='550'] [data-aos].aos-animate {
transition-delay: .55s;
}
[data-aos][data-aos][data-aos-duration='600'], body[data-aos-duration='600'] [data-aos] {
transition-duration: .6s;
}
[data-aos][data-aos][data-aos-delay='600'], body[data-aos-delay='600'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='600'].aos-animate, body[data-aos-delay='600'] [data-aos].aos-animate {
transition-delay: .6s;
}
[data-aos][data-aos][data-aos-duration='650'], body[data-aos-duration='650'] [data-aos] {
transition-duration: .65s;
}
[data-aos][data-aos][data-aos-delay='650'], body[data-aos-delay='650'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='650'].aos-animate, body[data-aos-delay='650'] [data-aos].aos-animate {
transition-delay: .65s;
}
[data-aos][data-aos][data-aos-duration='700'], body[data-aos-duration='700'] [data-aos] {
transition-duration: .7s;
}
[data-aos][data-aos][data-aos-delay='700'], body[data-aos-delay='700'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='700'].aos-animate, body[data-aos-delay='700'] [data-aos].aos-animate {
transition-delay: .7s;
}
[data-aos][data-aos][data-aos-duration='750'], body[data-aos-duration='750'] [data-aos] {
transition-duration: .75s;
}
[data-aos][data-aos][data-aos-delay='750'], body[data-aos-delay='750'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='750'].aos-animate, body[data-aos-delay='750'] [data-aos].aos-animate {
transition-delay: .75s;
}
[data-aos][data-aos][data-aos-duration='800'], body[data-aos-duration='800'] [data-aos] {
transition-duration: .8s;
}
[data-aos][data-aos][data-aos-delay='800'], body[data-aos-delay='800'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='800'].aos-animate, body[data-aos-delay='800'] [data-aos].aos-animate {
transition-delay: .8s;
}
[data-aos][data-aos][data-aos-duration='850'], body[data-aos-duration='850'] [data-aos] {
transition-duration: .85s;
}
[data-aos][data-aos][data-aos-delay='850'], body[data-aos-delay='850'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='850'].aos-animate, body[data-aos-delay='850'] [data-aos].aos-animate {
transition-delay: .85s;
}
[data-aos][data-aos][data-aos-duration='900'], body[data-aos-duration='900'] [data-aos] {
transition-duration: .9s;
}
[data-aos][data-aos][data-aos-delay='900'], body[data-aos-delay='900'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='900'].aos-animate, body[data-aos-delay='900'] [data-aos].aos-animate {
transition-delay: .9s;
}
[data-aos][data-aos][data-aos-duration='950'], body[data-aos-duration='950'] [data-aos] {
transition-duration: .95s;
}
[data-aos][data-aos][data-aos-delay='950'], body[data-aos-delay='950'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='950'].aos-animate, body[data-aos-delay='950'] [data-aos].aos-animate {
transition-delay: .95s;
}
[data-aos][data-aos][data-aos-duration='1000'], body[data-aos-duration='1000'] [data-aos] {
transition-duration: 1s;
}
[data-aos][data-aos][data-aos-delay='1000'], body[data-aos-delay='1000'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='1000'].aos-animate, body[data-aos-delay='1000'] [data-aos].aos-animate {
transition-delay: 1s;
}
[data-aos][data-aos][data-aos-duration='1050'], body[data-aos-duration='1050'] [data-aos] {
transition-duration: 1.05s;
}
[data-aos][data-aos][data-aos-delay='1050'], body[data-aos-delay='1050'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='1050'].aos-animate, body[data-aos-delay='1050'] [data-aos].aos-animate {
transition-delay: 1.05s;
}
[data-aos][data-aos][data-aos-duration='1100'], body[data-aos-duration='1100'] [data-aos] {
transition-duration: 1.1s;
}
[data-aos][data-aos][data-aos-delay='1100'], body[data-aos-delay='1100'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='1100'].aos-animate, body[data-aos-delay='1100'] [data-aos].aos-animate {
transition-delay: 1.1s;
}
[data-aos][data-aos][data-aos-duration='1150'], body[data-aos-duration='1150'] [data-aos] {
transition-duration: 1.15s;
}
[data-aos][data-aos][data-aos-delay='1150'], body[data-aos-delay='1150'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='1150'].aos-animate, body[data-aos-delay='1150'] [data-aos].aos-animate {
transition-delay: 1.15s;
}
[data-aos][data-aos][data-aos-duration='1200'], body[data-aos-duration='1200'] [data-aos] {
transition-duration: 1.2s;
}
[data-aos][data-aos][data-aos-delay='1200'], body[data-aos-delay='1200'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='1200'].aos-animate, body[data-aos-delay='1200'] [data-aos].aos-animate {
transition-delay: 1.2s;
}
[data-aos][data-aos][data-aos-duration='1250'], body[data-aos-duration='1250'] [data-aos] {
transition-duration: 1.25s;
}
[data-aos][data-aos][data-aos-delay='1250'], body[data-aos-delay='1250'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='1250'].aos-animate, body[data-aos-delay='1250'] [data-aos].aos-animate {
transition-delay: 1.25s;
}
[data-aos][data-aos][data-aos-duration='1300'], body[data-aos-duration='1300'] [data-aos] {
transition-duration: 1.3s;
}
[data-aos][data-aos][data-aos-delay='1300'], body[data-aos-delay='1300'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='1300'].aos-animate, body[data-aos-delay='1300'] [data-aos].aos-animate {
transition-delay: 1.3s;
}
[data-aos][data-aos][data-aos-duration='1350'], body[data-aos-duration='1350'] [data-aos] {
transition-duration: 1.35s;
}
[data-aos][data-aos][data-aos-delay='1350'], body[data-aos-delay='1350'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='1350'].aos-animate, body[data-aos-delay='1350'] [data-aos].aos-animate {
transition-delay: 1.35s;
}
[data-aos][data-aos][data-aos-duration='1400'], body[data-aos-duration='1400'] [data-aos] {
transition-duration: 1.4s;
}
[data-aos][data-aos][data-aos-delay='1400'], body[data-aos-delay='1400'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='1400'].aos-animate, body[data-aos-delay='1400'] [data-aos].aos-animate {
transition-delay: 1.4s;
}
[data-aos][data-aos][data-aos-duration='1450'], body[data-aos-duration='1450'] [data-aos] {
transition-duration: 1.45s;
}
[data-aos][data-aos][data-aos-delay='1450'], body[data-aos-delay='1450'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='1450'].aos-animate, body[data-aos-delay='1450'] [data-aos].aos-animate {
transition-delay: 1.45s;
}
[data-aos][data-aos][data-aos-duration='1500'], body[data-aos-duration='1500'] [data-aos] {
transition-duration: 1.5s;
}
[data-aos][data-aos][data-aos-delay='1500'], body[data-aos-delay='1500'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='1500'].aos-animate, body[data-aos-delay='1500'] [data-aos].aos-animate {
transition-delay: 1.5s;
}
[data-aos][data-aos][data-aos-duration='1550'], body[data-aos-duration='1550'] [data-aos] {
transition-duration: 1.55s;
}
[data-aos][data-aos][data-aos-delay='1550'], body[data-aos-delay='1550'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='1550'].aos-animate, body[data-aos-delay='1550'] [data-aos].aos-animate {
transition-delay: 1.55s;
}
[data-aos][data-aos][data-aos-duration='1600'], body[data-aos-duration='1600'] [data-aos] {
transition-duration: 1.6s;
}
[data-aos][data-aos][data-aos-delay='1600'], body[data-aos-delay='1600'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='1600'].aos-animate, body[data-aos-delay='1600'] [data-aos].aos-animate {
transition-delay: 1.6s;
}
[data-aos][data-aos][data-aos-duration='1650'], body[data-aos-duration='1650'] [data-aos] {
transition-duration: 1.65s;
}
[data-aos][data-aos][data-aos-delay='1650'], body[data-aos-delay='1650'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='1650'].aos-animate, body[data-aos-delay='1650'] [data-aos].aos-animate {
transition-delay: 1.65s;
}
[data-aos][data-aos][data-aos-duration='1700'], body[data-aos-duration='1700'] [data-aos] {
transition-duration: 1.7s;
}
[data-aos][data-aos][data-aos-delay='1700'], body[data-aos-delay='1700'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='1700'].aos-animate, body[data-aos-delay='1700'] [data-aos].aos-animate {
transition-delay: 1.7s;
}
[data-aos][data-aos][data-aos-duration='1750'], body[data-aos-duration='1750'] [data-aos] {
transition-duration: 1.75s;
}
[data-aos][data-aos][data-aos-delay='1750'], body[data-aos-delay='1750'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='1750'].aos-animate, body[data-aos-delay='1750'] [data-aos].aos-animate {
transition-delay: 1.75s;
}
[data-aos][data-aos][data-aos-duration='1800'], body[data-aos-duration='1800'] [data-aos] {
transition-duration: 1.8s;
}
[data-aos][data-aos][data-aos-delay='1800'], body[data-aos-delay='1800'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='1800'].aos-animate, body[data-aos-delay='1800'] [data-aos].aos-animate {
transition-delay: 1.8s;
}
[data-aos][data-aos][data-aos-duration='1850'], body[data-aos-duration='1850'] [data-aos] {
transition-duration: 1.85s;
}
[data-aos][data-aos][data-aos-delay='1850'], body[data-aos-delay='1850'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='1850'].aos-animate, body[data-aos-delay='1850'] [data-aos].aos-animate {
transition-delay: 1.85s;
}
[data-aos][data-aos][data-aos-duration='1900'], body[data-aos-duration='1900'] [data-aos] {
transition-duration: 1.9s;
}
[data-aos][data-aos][data-aos-delay='1900'], body[data-aos-delay='1900'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='1900'].aos-animate, body[data-aos-delay='1900'] [data-aos].aos-animate {
transition-delay: 1.9s;
}
[data-aos][data-aos][data-aos-duration='1950'], body[data-aos-duration='1950'] [data-aos] {
transition-duration: 1.95s;
}
[data-aos][data-aos][data-aos-delay='1950'], body[data-aos-delay='1950'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='1950'].aos-animate, body[data-aos-delay='1950'] [data-aos].aos-animate {
transition-delay: 1.95s;
}
[data-aos][data-aos][data-aos-duration='2000'], body[data-aos-duration='2000'] [data-aos] {
transition-duration: 2s;
}
[data-aos][data-aos][data-aos-delay='2000'], body[data-aos-delay='2000'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='2000'].aos-animate, body[data-aos-delay='2000'] [data-aos].aos-animate {
transition-delay: 2s;
}
[data-aos][data-aos][data-aos-duration='2050'], body[data-aos-duration='2050'] [data-aos] {
transition-duration: 2.05s;
}
[data-aos][data-aos][data-aos-delay='2050'], body[data-aos-delay='2050'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='2050'].aos-animate, body[data-aos-delay='2050'] [data-aos].aos-animate {
transition-delay: 2.05s;
}
[data-aos][data-aos][data-aos-duration='2100'], body[data-aos-duration='2100'] [data-aos] {
transition-duration: 2.1s;
}
[data-aos][data-aos][data-aos-delay='2100'], body[data-aos-delay='2100'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='2100'].aos-animate, body[data-aos-delay='2100'] [data-aos].aos-animate {
transition-delay: 2.1s;
}
[data-aos][data-aos][data-aos-duration='2150'], body[data-aos-duration='2150'] [data-aos] {
transition-duration: 2.15s;
}
[data-aos][data-aos][data-aos-delay='2150'], body[data-aos-delay='2150'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='2150'].aos-animate, body[data-aos-delay='2150'] [data-aos].aos-animate {
transition-delay: 2.15s;
}
[data-aos][data-aos][data-aos-duration='2200'], body[data-aos-duration='2200'] [data-aos] {
transition-duration: 2.2s;
}
[data-aos][data-aos][data-aos-delay='2200'], body[data-aos-delay='2200'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='2200'].aos-animate, body[data-aos-delay='2200'] [data-aos].aos-animate {
transition-delay: 2.2s;
}
[data-aos][data-aos][data-aos-duration='2250'], body[data-aos-duration='2250'] [data-aos] {
transition-duration: 2.25s;
}
[data-aos][data-aos][data-aos-delay='2250'], body[data-aos-delay='2250'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='2250'].aos-animate, body[data-aos-delay='2250'] [data-aos].aos-animate {
transition-delay: 2.25s;
}
[data-aos][data-aos][data-aos-duration='2300'], body[data-aos-duration='2300'] [data-aos] {
transition-duration: 2.3s;
}
[data-aos][data-aos][data-aos-delay='2300'], body[data-aos-delay='2300'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='2300'].aos-animate, body[data-aos-delay='2300'] [data-aos].aos-animate {
transition-delay: 2.3s;
}
[data-aos][data-aos][data-aos-duration='2350'], body[data-aos-duration='2350'] [data-aos] {
transition-duration: 2.35s;
}
[data-aos][data-aos][data-aos-delay='2350'], body[data-aos-delay='2350'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='2350'].aos-animate, body[data-aos-delay='2350'] [data-aos].aos-animate {
transition-delay: 2.35s;
}
[data-aos][data-aos][data-aos-duration='2400'], body[data-aos-duration='2400'] [data-aos] {
transition-duration: 2.4s;
}
[data-aos][data-aos][data-aos-delay='2400'], body[data-aos-delay='2400'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='2400'].aos-animate, body[data-aos-delay='2400'] [data-aos].aos-animate {
transition-delay: 2.4s;
}
[data-aos][data-aos][data-aos-duration='2450'], body[data-aos-duration='2450'] [data-aos] {
transition-duration: 2.45s;
}
[data-aos][data-aos][data-aos-delay='2450'], body[data-aos-delay='2450'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='2450'].aos-animate, body[data-aos-delay='2450'] [data-aos].aos-animate {
transition-delay: 2.45s;
}
[data-aos][data-aos][data-aos-duration='2500'], body[data-aos-duration='2500'] [data-aos] {
transition-duration: 2.5s;
}
[data-aos][data-aos][data-aos-delay='2500'], body[data-aos-delay='2500'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='2500'].aos-animate, body[data-aos-delay='2500'] [data-aos].aos-animate {
transition-delay: 2.5s;
}
[data-aos][data-aos][data-aos-duration='2550'], body[data-aos-duration='2550'] [data-aos] {
transition-duration: 2.55s;
}
[data-aos][data-aos][data-aos-delay='2550'], body[data-aos-delay='2550'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='2550'].aos-animate, body[data-aos-delay='2550'] [data-aos].aos-animate {
transition-delay: 2.55s;
}
[data-aos][data-aos][data-aos-duration='2600'], body[data-aos-duration='2600'] [data-aos] {
transition-duration: 2.6s;
}
[data-aos][data-aos][data-aos-delay='2600'], body[data-aos-delay='2600'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='2600'].aos-animate, body[data-aos-delay='2600'] [data-aos].aos-animate {
transition-delay: 2.6s;
}
[data-aos][data-aos][data-aos-duration='2650'], body[data-aos-duration='2650'] [data-aos] {
transition-duration: 2.65s;
}
[data-aos][data-aos][data-aos-delay='2650'], body[data-aos-delay='2650'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='2650'].aos-animate, body[data-aos-delay='2650'] [data-aos].aos-animate {
transition-delay: 2.65s;
}
[data-aos][data-aos][data-aos-duration='2700'], body[data-aos-duration='2700'] [data-aos] {
transition-duration: 2.7s;
}
[data-aos][data-aos][data-aos-delay='2700'], body[data-aos-delay='2700'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='2700'].aos-animate, body[data-aos-delay='2700'] [data-aos].aos-animate {
transition-delay: 2.7s;
}
[data-aos][data-aos][data-aos-duration='2750'], body[data-aos-duration='2750'] [data-aos] {
transition-duration: 2.75s;
}
[data-aos][data-aos][data-aos-delay='2750'], body[data-aos-delay='2750'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='2750'].aos-animate, body[data-aos-delay='2750'] [data-aos].aos-animate {
transition-delay: 2.75s;
}
[data-aos][data-aos][data-aos-duration='2800'], body[data-aos-duration='2800'] [data-aos] {
transition-duration: 2.8s;
}
[data-aos][data-aos][data-aos-delay='2800'], body[data-aos-delay='2800'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='2800'].aos-animate, body[data-aos-delay='2800'] [data-aos].aos-animate {
transition-delay: 2.8s;
}
[data-aos][data-aos][data-aos-duration='2850'], body[data-aos-duration='2850'] [data-aos] {
transition-duration: 2.85s;
}
[data-aos][data-aos][data-aos-delay='2850'], body[data-aos-delay='2850'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='2850'].aos-animate, body[data-aos-delay='2850'] [data-aos].aos-animate {
transition-delay: 2.85s;
}
[data-aos][data-aos][data-aos-duration='2900'], body[data-aos-duration='2900'] [data-aos] {
transition-duration: 2.9s;
}
[data-aos][data-aos][data-aos-delay='2900'], body[data-aos-delay='2900'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='2900'].aos-animate, body[data-aos-delay='2900'] [data-aos].aos-animate {
transition-delay: 2.9s;
}
[data-aos][data-aos][data-aos-duration='2950'], body[data-aos-duration='2950'] [data-aos] {
transition-duration: 2.95s;
}
[data-aos][data-aos][data-aos-delay='2950'], body[data-aos-delay='2950'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='2950'].aos-animate, body[data-aos-delay='2950'] [data-aos].aos-animate {
transition-delay: 2.95s;
}
[data-aos][data-aos][data-aos-duration='3000'], body[data-aos-duration='3000'] [data-aos] {
transition-duration: 3s;
}
[data-aos][data-aos][data-aos-delay='3000'], body[data-aos-delay='3000'] [data-aos] {
transition-delay: 0;
}
[data-aos][data-aos][data-aos-delay='3000'].aos-animate, body[data-aos-delay='3000'] [data-aos].aos-animate {
transition-delay: 3s;
}
[data-aos][data-aos][data-aos-easing=linear], body[data-aos-easing=linear] [data-aos] {
transition-timing-function: cubic-bezier(.25,.25,.75,.75);
}
[data-aos][data-aos][data-aos-easing=ease], body[data-aos-easing=ease] [data-aos] {
transition-timing-function: ease;
}
[data-aos][data-aos][data-aos-easing=ease-in], body[data-aos-easing=ease-in] [data-aos] {
transition-timing-function: ease-in;
}
[data-aos][data-aos][data-aos-easing=ease-out], body[data-aos-easing=ease-out] [data-aos] {
transition-timing-function: ease-out;
}
[data-aos][data-aos][data-aos-easing=ease-in-out], body[data-aos-easing=ease-in-out] [data-aos] {
transition-timing-function: ease-in-out;
}
[data-aos][data-aos][data-aos-easing=ease-in-back], body[data-aos-easing=ease-in-back] [data-aos] {
transition-timing-function: cubic-bezier(.6,-.28,.735,.045);
}
[data-aos][data-aos][data-aos-easing=ease-out-back], body[data-aos-easing=ease-out-back] [data-aos] {
transition-timing-function: cubic-bezier(.175,.885,.32,1.275);
}
[data-aos][data-aos][data-aos-easing=ease-in-out-back], body[data-aos-easing=ease-in-out-back] [data-aos] {
transition-timing-function: cubic-bezier(.68,-.55,.265,1.55);
}
[data-aos][data-aos][data-aos-easing=ease-in-sine], body[data-aos-easing=ease-in-sine] [data-aos] {
transition-timing-function: cubic-bezier(.47,0,.745,.715);
}
[data-aos][data-aos][data-aos-easing=ease-out-sine], body[data-aos-easing=ease-out-sine] [data-aos] {
transition-timing-function: cubic-bezier(.39,.575,.565,1);
}
[data-aos][data-aos][data-aos-easing=ease-in-out-sine], body[data-aos-easing=ease-in-out-sine] [data-aos] {
transition-timing-function: cubic-bezier(.445,.05,.55,.95);
}
[data-aos][data-aos][data-aos-easing=ease-in-quad], body[data-aos-easing=ease-in-quad] [data-aos] {
transition-timing-function: cubic-bezier(.55,.085,.68,.53);
}
[data-aos][data-aos][data-aos-easing=ease-out-quad], body[data-aos-easing=ease-out-quad] [data-aos] {
transition-timing-function: cubic-bezier(.25,.46,.45,.94);
}
[data-aos][data-aos][data-aos-easing=ease-in-out-quad], body[data-aos-easing=ease-in-out-quad] [data-aos] {
transition-timing-function: cubic-bezier(.455,.03,.515,.955);
}
[data-aos][data-aos][data-aos-easing=ease-in-cubic], body[data-aos-easing=ease-in-cubic] [data-aos] {
transition-timing-function: cubic-bezier(.55,.085,.68,.53);
}
[data-aos][data-aos][data-aos-easing=ease-out-cubic], body[data-aos-easing=ease-out-cubic] [data-aos] {
transition-timing-function: cubic-bezier(.25,.46,.45,.94);
}
[data-aos][data-aos][data-aos-easing=ease-in-out-cubic], body[data-aos-easing=ease-in-out-cubic] [data-aos] {
transition-timing-function: cubic-bezier(.455,.03,.515,.955);
}
[data-aos][data-aos][data-aos-easing=ease-in-quart], body[data-aos-easing=ease-in-quart] [data-aos] {
transition-timing-function: cubic-bezier(.55,.085,.68,.53);
}
[data-aos][data-aos][data-aos-easing=ease-out-quart], body[data-aos-easing=ease-out-quart] [data-aos] {
transition-timing-function: cubic-bezier(.25,.46,.45,.94);
}
[data-aos][data-aos][data-aos-easing=ease-in-out-quart], body[data-aos-easing=ease-in-out-quart] [data-aos] {
transition-timing-function: cubic-bezier(.455,.03,.515,.955);
}
[data-aos^=fade][data-aos^=fade] {
opacity: 0;
transition-property: opacity,transform;
}
[data-aos^=fade][data-aos^=fade].aos-animate {
opacity: 1;
transform: translate(0);
}
[data-aos=fade-up] {
transform: translateY(100px);
}
[data-aos=fade-down] {
transform: translateY(-100px);
}
[data-aos=fade-right] {
transform: translate(-100px);
}
[data-aos=fade-left] {
transform: translate(100px);
}
[data-aos=fade-up-right] {
transform: translate(-100px,100px);
}
[data-aos=fade-up-left] {
transform: translate(100px,100px);
}
[data-aos=fade-down-right] {
transform: translate(-100px,-100px);
}
[data-aos=fade-down-left] {
transform: translate(100px,-100px);
}
[data-aos^=zoom][data-aos^=zoom] {
opacity: 0;
transition-property: opacity,transform;
}
[data-aos^=zoom][data-aos^=zoom].aos-animate {
opacity: 1;
transform: translate(0) scale(1);
}
[data-aos=zoom-in] {
transform: scale(.6);
}
[data-aos=zoom-in-up] {
transform: translateY(100px) scale(.6);
}
[data-aos=zoom-in-down] {
transform: translateY(-100px) scale(.6);
}
[data-aos=zoom-in-right] {
transform: translate(-100px) scale(.6);
}
[data-aos=zoom-in-left] {
transform: translate(100px) scale(.6);
}
[data-aos=zoom-out] {
transform: scale(1.2);
}
[data-aos=zoom-out-up] {
transform: translateY(100px) scale(1.2);
}
[data-aos=zoom-out-down] {
transform: translateY(-100px) scale(1.2);
}
[data-aos=zoom-out-right] {
transform: translate(-100px) scale(1.2);
}
[data-aos=zoom-out-left] {
transform: translate(100px) scale(1.2);
}
[data-aos^=slide][data-aos^=slide] {
transition-property: transform;
}
[data-aos^=slide][data-aos^=slide].aos-animate {
transform: translate(0);
}
[data-aos=slide-up] {
transform: translateY(100%);
}
[data-aos=slide-down] {
transform: translateY(-100%);
}
[data-aos=slide-right] {
transform: translateX(-100%);
}
[data-aos=slide-left] {
transform: translateX(100%);
}
[data-aos^=flip][data-aos^=flip] {
backface-visibility: hidden;
transition-property: transform;
}
[data-aos=flip-left] {
transform: perspective(2500px) rotateY(-100deg);
}
[data-aos=flip-left].aos-animate {
transform: perspective(2500px) rotateY(0);
}
[data-aos=flip-right] {
transform: perspective(2500px) rotateY(100deg);
}
[data-aos=flip-right].aos-animate {
transform: perspective(2500px) rotateY(0);
}
[data-aos=flip-up] {
transform: perspective(2500px) rotateX(-100deg);
}
[data-aos=flip-up].aos-animate {
transform: perspective(2500px) rotateX(0);
}
[data-aos=flip-down] {
transform: perspective(2500px) rotateX(100deg);
}
[data-aos=flip-down].aos-animate {
transform: perspective(2500px) rotateX(0);
}

View File

@@ -0,0 +1,93 @@
:root, [data-bs-theme=light] {
--bs-primary: #19f5aa;
--bs-primary-rgb: 25,245,170;
--bs-primary-text-emphasis: #0A6244;
--bs-primary-bg-subtle: #D1FDEE;
--bs-primary-border-subtle: #A3FBDD;
--bs-body-bg: #01002a;
--bs-body-bg-rgb: 1,0,42;
--bs-link-color: #ffffff;
--bs-link-color-rgb: 255,255,255;
--bs-link-hover-color: #73abfc;
--bs-link-hover-color-rgb: 115,171,252;
--bs-link-decoration: blink;
--bs-border-color: #dee2e6;
}
.btn-primary {
--bs-btn-color: #000000;
--bs-btn-bg: #19f5aa;
--bs-btn-border-color: #19f5aa;
--bs-btn-hover-color: #000000;
--bs-btn-hover-bg: #3CF7B7;
--bs-btn-hover-border-color: #30F6B3;
--bs-btn-focus-shadow-rgb: 4,37,26;
--bs-btn-active-color: #000000;
--bs-btn-active-bg: #47F7BB;
--bs-btn-active-border-color: #30F6B3;
--bs-btn-disabled-color: #000000;
--bs-btn-disabled-bg: #19f5aa;
--bs-btn-disabled-border-color: #19f5aa;
}
.btn-outline-primary {
--bs-btn-color: #19f5aa;
--bs-btn-border-color: #19f5aa;
--bs-btn-focus-shadow-rgb: 25,245,170;
--bs-btn-hover-color: #000000;
--bs-btn-hover-bg: #19f5aa;
--bs-btn-hover-border-color: #19f5aa;
--bs-btn-active-color: #000000;
--bs-btn-active-bg: #19f5aa;
--bs-btn-active-border-color: #19f5aa;
--bs-btn-disabled-color: #19f5aa;
--bs-btn-disabled-bg: transparent;
--bs-btn-disabled-border-color: #19f5aa;
}
[data-bs-theme=dark] {
--bs-primary: #1b6ce5;
--bs-primary-rgb: 27,108,229;
--bs-primary-text-emphasis: #76A7EF;
--bs-primary-bg-subtle: #05162E;
--bs-primary-border-subtle: #104189;
--bs-body-bg: #01002a;
--bs-body-bg-rgb: 1,0,42;
--bs-link-color: #ffffff;
--bs-link-color-rgb: 255,255,255;
--bs-link-hover-color: #73abfc;
--bs-link-hover-color-rgb: 115,171,252;
--bs-border-color: #dee2e6;
}
[data-bs-theme=dark] .btn-primary, .btn-primary[data-bs-theme=dark] {
--bs-btn-color: #fff;
--bs-btn-bg: #1b6ce5;
--bs-btn-border-color: #1b6ce5;
--bs-btn-hover-color: #fff;
--bs-btn-hover-bg: #175CC3;
--bs-btn-hover-border-color: #1656B7;
--bs-btn-focus-shadow-rgb: 221,233,251;
--bs-btn-active-color: #fff;
--bs-btn-active-bg: #1656B7;
--bs-btn-active-border-color: #1451AC;
--bs-btn-disabled-color: #fff;
--bs-btn-disabled-bg: #1b6ce5;
--bs-btn-disabled-border-color: #1b6ce5;
}
[data-bs-theme=dark] .btn-outline-primary, .btn-outline-primary[data-bs-theme=dark] {
--bs-btn-color: #1b6ce5;
--bs-btn-border-color: #1b6ce5;
--bs-btn-focus-shadow-rgb: 27,108,229;
--bs-btn-hover-color: #fff;
--bs-btn-hover-bg: #1b6ce5;
--bs-btn-hover-border-color: #1b6ce5;
--bs-btn-active-color: #fff;
--bs-btn-active-bg: #1b6ce5;
--bs-btn-active-border-color: #1b6ce5;
--bs-btn-disabled-color: #1b6ce5;
--bs-btn-disabled-bg: transparent;
--bs-btn-disabled-border-color: #1b6ce5;
}

View File

@@ -0,0 +1,7 @@
@font-face {
font-family: 'swiper-icons';
src: url(../../static/fonts/swiper-icons.woff) format('woff');
font-weight: 400;
font-style: normal;
font-display: auto;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 570 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 570 KiB

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More