diff --git a/backend/.flake8 b/backend/.flake8
deleted file mode 100644
index 08c9b30..0000000
--- a/backend/.flake8
+++ /dev/null
@@ -1,11 +0,0 @@
-[flake8]
-exclude =
- .pytest_cache
- venv
- aioredis
- __init__.py
- conftest.py
-
-ignore =
- F811
-max-line-length = 120
diff --git a/backend/.test.env b/backend/.test.env
index 4d87f0c..9499d74 100644
--- a/backend/.test.env
+++ b/backend/.test.env
@@ -11,10 +11,10 @@ SUPERUSER_USERNAME=admin
SUPERUSER_PASSWORD=password
SUPERUSER_EMAIL=admin@gmail.com
-EMAIL_USER=suslanchikmopl@gmail.com
-EMAIL_PASSWORD=12345678
-EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=465
+EMAIL_HOST=smtp.gmail.com
+EMAIL_USER=suslanchikmopl@gmail.com
+EMAIL_PASSWORD=fjyndurcxgzfgcjo
ALGORITHM=HS256
SECRET_KEY=asdf0-aofjklasjmfg;algk
diff --git a/backend/aioredis/client.py b/backend/aioredis/client.py
index 3b5e091..87c9af7 100644
--- a/backend/aioredis/client.py
+++ b/backend/aioredis/client.py
@@ -515,7 +515,7 @@ def parse_georadius_generic(response, **options):
# with other command arguments.
return response
- if type(response) != list:
+ if not isinstance(response, list):
response_list = [response]
else:
response_list = response
diff --git a/backend/pyproject.toml b/backend/pyproject.toml
new file mode 100644
index 0000000..5e38555
--- /dev/null
+++ b/backend/pyproject.toml
@@ -0,0 +1,70 @@
+[tool.ruff]
+# Exclude a variety of commonly ignored directories.
+exclude = [
+ ".bzr",
+ ".direnv",
+ ".eggs",
+ ".git",
+ ".git-rewrite",
+ ".hg",
+ ".mypy_cache",
+ ".nox",
+ ".pants.d",
+ ".pytype",
+ ".ruff_cache",
+ ".svn",
+ ".tox",
+ ".venv",
+ "__pypackages__",
+ "_build",
+ "buck-out",
+ "build",
+ "dist",
+ "node_modules",
+ "venv",
+ "migrations",
+ "aioredis",
+ "tests",
+
+]
+
+# Same as Black.
+line-length = 120
+indent-width = 4
+
+# Assume Python 3.8
+target-version = "py311"
+
+[tool.ruff.lint]
+# Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default.
+select = ["E", "F", "W"]
+ignore = []
+
+# Allow fix for all enabled rules (when `--fix`) is provided.
+fixable = ["ALL"]
+unfixable = []
+
+# Allow unused variables when underscore-prefixed.
+dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
+
+[tool.ruff.format]
+# Like Black, use double quotes for strings.
+quote-style = "double"
+
+# Like Black, indent with spaces, rather than tabs.
+indent-style = "space"
+
+# Like Black, respect magic trailing commas.
+skip-magic-trailing-comma = false
+
+# Like Black, automatically detect the appropriate line ending.
+line-ending = "auto"
+
+
+[tool.mypy]
+exclude = [
+ "venv",
+ "src.aioredis"
+]
+explicit_package_bases = true
+mypy_path = "src"
diff --git a/backend/requirements.txt b/backend/requirements.txt
index 18e411a..cad9231 100644
--- a/backend/requirements.txt
+++ b/backend/requirements.txt
@@ -1,66 +1,52 @@
aiosqlite==0.17.0
amqp==5.2.0
annotated-types==0.6.0
-anyio==4.2.0
-asgiref==3.7.2
+anyio==4.3.0
async-timeout==4.0.3
asyncpg==0.29.0
billiard==4.2.0
celery==5.3.6
-certifi==2024.2.2
-charset-normalizer==3.3.2
click==8.1.7
-click-didyoumean==0.3.0
+click-didyoumean==0.3.1
click-plugins==1.1.1
click-repl==0.3.0
-contourpy==1.2.0
+contourpy==1.2.1
cycler==0.12.1
-dnspython==2.5.0
-ecdsa==0.18.0
-email-validator==2.1.0.post1
-fastapi==0.109.2
+dnspython==2.6.1
+ecdsa==0.19.0
+email_validator==2.1.1
+fastapi==0.110.1
fastapi-authtools==0.6.2
-fonttools==4.48.1
-gunicorn==21.2.0
-h11==0.14.0
-httpcore==1.0.2
-httpx==0.26.0
+fonttools==4.51.0
idna==3.6
iso8601==1.1.0
kiwisolver==1.4.5
-kombu==5.3.5
-matplotlib==3.8.2
-motor==3.3.2
-mpmath==1.3.0
-nest-asyncio==1.6.0
+kombu==5.3.6
+matplotlib==3.8.4
numpy==1.26.4
-packaging==23.2
-pandas==2.2.0
+packaging==24.0
+pandas==2.2.1
passlib==1.7.4
-pillow==10.2.0
+pillow==10.3.0
prompt-toolkit==3.0.43
-pyasn1==0.5.1
-pydantic==2.6.1
-pydantic-settings==2.1.0
-pydantic_core==2.16.2
-pymongo==4.6.1
-pyparsing==3.1.1
+pyasn1==0.6.0
+pydantic==2.0.2
+pydantic-settings==2.2.1
+pydantic_core==2.1.2
+pyparsing==3.1.2
pypika-tortoise==0.1.6
-python-dateutil==2.8.2
+python-dateutil==2.9.0.post0
python-dotenv==1.0.1
python-jose==3.3.0
pytz==2024.1
-redis==5.0.1
-requests==2.31.0
+redis==5.0.3
rsa==4.9
+ruff==0.3.5
six==1.16.0
-sniffio==1.3.0
-starlette==0.36.3
-sympy==1.12
+sniffio==1.3.1
+starlette==0.37.2
tortoise-orm==0.20.0
-typing_extensions==4.9.0
+typing_extensions==4.11.0
tzdata==2024.1
-urllib3==2.2.0
-uvicorn==0.27.1
vine==5.1.0
wcwidth==0.2.13
diff --git a/backend/src/apps/cabinets/routes.py b/backend/src/apps/cabinets/routes.py
index beb4be6..4f7b025 100644
--- a/backend/src/apps/cabinets/routes.py
+++ b/backend/src/apps/cabinets/routes.py
@@ -1,25 +1,33 @@
from fastapi import APIRouter, Request, Depends
from fastapi.responses import FileResponse, RedirectResponse
-from fastapi_authtools import login_required
from .dependencies import HistoryParser
from .models import History
+from .schemas import HistoryListSchema
from .services import delete_history
+from ..users.permissions import login_required
router = APIRouter(prefix="/cabinet", tags=["Cabinets"])
-@router.get('/history')
+@router.get('/history', response_model=list[HistoryListSchema])
@login_required
-async def history(request: Request):
+async def history_list_view(request: Request):
"""History view."""
- history_list = await History.filter(user__id=request.user.id)
- return history_list
+ history_list = await History.filter(user__id=request.user.id).select_related("formula", "formula__category")
+ return [
+ {
+ **history.as_dict(),
+ "formula": history.formula.as_dict(),
+ "category": history.formula.category.as_dict(),
+ }
+ for history in history_list
+ ]
@router.post('/history/download')
@login_required
-async def history(request: Request, filedata: str = Depends(HistoryParser())):
+async def history_download_view(request: Request, filedata: str = Depends(HistoryParser())):
if filedata is not None:
filepath, filename = filedata
return FileResponse(path=filepath, filename=filename)
@@ -29,6 +37,6 @@ async def history(request: Request, filedata: str = Depends(HistoryParser())):
@router.delete('/history')
@login_required
-async def history(request: Request):
+async def history_delete_view(request: Request):
await delete_history(request.user)
return {"detail": "History deletes successfully"}
diff --git a/backend/src/apps/cabinets/schemas.py b/backend/src/apps/cabinets/schemas.py
index 374f010..8bfa2ce 100644
--- a/backend/src/apps/cabinets/schemas.py
+++ b/backend/src/apps/cabinets/schemas.py
@@ -1,6 +1,18 @@
+from datetime import datetime
+
from pydantic import BaseModel
+from src.apps.sciences.schemas import FormulaListSchema, CategoryListSchema
+
class DownloadFile(BaseModel):
filename: str
extension: str
+
+
+class HistoryListSchema(BaseModel):
+ id: str
+ result: float | str
+ date_time: datetime
+ formula: FormulaListSchema
+ category: CategoryListSchema
diff --git a/backend/src/apps/main/routes.py b/backend/src/apps/main/routes.py
index cb1b6c6..f2e7b8a 100644
--- a/backend/src/apps/main/routes.py
+++ b/backend/src/apps/main/routes.py
@@ -1,5 +1,4 @@
from fastapi import APIRouter, Request
-from fastapi.responses import RedirectResponse
router = APIRouter(prefix='', tags=["Main"])
@@ -9,12 +8,3 @@
async def homepage(request: Request):
"""Main page."""
return {"detail": "Application is started."}
-
-
-@router.get("/github")
-async def github_redirect(request: Request):
- """Redirect to the GitHub project repository."""
- return RedirectResponse(
- url="https://github.com/michael7nightingale/Calculations-FastAPI-Fullstack",
- status_code=303,
- )
diff --git a/backend/src/apps/sciences/dependencies.py b/backend/src/apps/sciences/dependencies.py
index e7dd848..8e691a4 100644
--- a/backend/src/apps/sciences/dependencies.py
+++ b/backend/src/apps/sciences/dependencies.py
@@ -16,6 +16,7 @@ async def get_mongodb_db(request: Request):
def get_mongodb_repository(repository_class):
def inner(db=Depends(get_mongodb_db)):
return repository_class(db)
+
return inner
@@ -37,7 +38,7 @@ async def get_science_dependency(science_slug: str) -> Science:
async def get_category_dependency(category_slug: str) -> Category:
- category = await Formula.get_or_none(slug=category_slug)
+ category = await Category.get_or_none(slug=category_slug)
if category is None:
raise HTTPException(status_code=404, detail="Category is not found.")
return category
diff --git a/backend/src/apps/sciences/models.py b/backend/src/apps/sciences/models.py
index 9337689..26d62e8 100644
--- a/backend/src/apps/sciences/models.py
+++ b/backend/src/apps/sciences/models.py
@@ -9,6 +9,9 @@ class Science(TortoiseModel):
image_path = fields.CharField(max_length=255, null=True)
slug = fields.CharField(max_length=40, unique=True, index=True)
+ class Meta:
+ ordering = ["title"]
+
def __str__(self):
return self.title
@@ -32,6 +35,9 @@ class Category(TortoiseModel):
slug = fields.CharField(max_length=40, unique=True, index=True)
is_special = fields.BooleanField(default=False)
+ class Meta:
+ ordering = ["title"]
+
def __str__(self):
return self.title
@@ -55,6 +61,7 @@ class Formula(TortoiseModel):
related_name="formulas"
)
slug = fields.CharField(max_length=40, unique=True, index=True)
+ data = fields.JSONField(null=True)
def __str__(self):
return self.title
diff --git a/backend/src/apps/sciences/routes.py b/backend/src/apps/sciences/routes.py
index 36b2de1..d4dd88f 100644
--- a/backend/src/apps/sciences/routes.py
+++ b/backend/src/apps/sciences/routes.py
@@ -1,15 +1,16 @@
from fastapi import APIRouter, Request, Body, Depends
-from fastapi_authtools import login_required
from fastapi.responses import FileResponse, JSONResponse
import os
from .models import Science, Category, Formula
from ..cabinets.models import History
+from ..users.permissions import login_required
from ...services.formulas import counter, mathem_extra_counter
from src.services.formulas.plots import Plot
-from .schemas import RequestSchema, RequestData, DownloadPlot, PlotData, EquationsData
+from .schemas import RequestSchema, RequestData, DownloadPlot, PlotData, EquationsData, \
+ ScienceDetailSchema, CategoryDetailSchema, ScienceListSchema, FormulaDetailSchema
from src.services.formulas.metadata import Formula as FormulaObject
-from .dependencies import get_formula_mongo_repository, get_formula_dependency, get_science_dependency, \
+from .dependencies import get_formula_dependency, get_science_dependency, \
get_category_dependency
router = APIRouter(prefix='/sciences', tags=['Sciences'])
@@ -53,7 +54,7 @@ async def plots_view_post(request: Request, data: PlotData = Body()):
message = "На ноль делить нет смысла."
except ArithmeticError:
message = "Вычислительно невозможное выражение"
- except ValueError as e: # raises from Plot class
+ except ValueError as e: # raises from Plot class
message = str(e)
else:
return {"plotPath": plot_path}
@@ -64,14 +65,14 @@ async def plots_view_post(request: Request, data: PlotData = Body()):
@router.post('/special-category/plots/download')
@login_required
-async def plots_view_post(request: Request, filedata: DownloadPlot = Body()):
+async def plots_view_download(request: Request, filedata: DownloadPlot = Body()):
"""Plot file download view"""
plot_path = PLOTS_DIR + f'/{request.user.id}.png'
full_plot_path = request.app.state.STATIC_DIR + plot_path
if os.path.exists(full_plot_path):
return FileResponse(path=full_plot_path, filename=filedata.filename + ".png")
else:
- return JSONResponse({"detail": "Missing any plots."}, status_code=404)
+ return JSONResponse({"detail": "Missing any plots."}, 404)
# ======================================= EQUATIONS ===================================== #
@@ -100,63 +101,62 @@ async def equations_view_post(request: Request, data: EquationsData = Body()):
return {"detail": message}
-@router.get('/')
-async def sciences_all():
+@router.get('/', response_model=list[ScienceListSchema])
+async def sciences_list_view():
"""All sciences list endpoint."""
sciences = await Science.all()
return sciences
-@router.get('/science/{science_slug}')
-async def science_get(science: Science = Depends(get_science_dependency)):
+@router.get('/science/{science_slug}', response_model=ScienceDetailSchema)
+async def science_detail_view(science: Science = Depends(get_science_dependency)):
"""Science detail endpoint."""
return {
- "science": science.as_dict(),
- "categories": [i.as_dict() for i in science.categories.all()]
+ **science.as_dict(),
+ "categories": (i.as_dict() for i in science.categories)
}
-@router.get('/category/{category_slug}')
-async def category_get(
+@router.get('/category/{category_slug}', response_model=CategoryDetailSchema)
+async def category_detail_view(
request: Request,
category: Category = Depends(get_category_dependency),
):
"""Category GET view."""
return {
- "category": category.as_dict(),
+ **category.as_dict(),
"science": category.science.as_dict(),
- "formulas": [f.as_dict() for f in category.formulas.all()]
+ "formulas": [f.as_dict() for f in category.formulas]
}
-@router.get('/formula/{formula_slug}')
-async def formula_get(
+@router.get('/formula/{formula_slug}', response_model=FormulaDetailSchema)
+async def formula_detail_view(
formula: Formula = Depends(get_formula_dependency),
- formula_repository=Depends(get_formula_mongo_repository)
+ # formula_repository: FormulaRepository = Depends(get_formula_mongo_repository)
):
"""Science GET view."""
- formula_data = await formula_repository.get(slug=formula.slug)
- formula_obj = FormulaObject.from_dict(formula_data)
+ # formula_data = await formula_repository.get(slug=formula.slug)
+ formula_obj = FormulaObject.from_dict(formula.data)
if formula_obj is None:
return JSONResponse({"detail": "Cannot find formula metadata."}, status_code=404)
return {
- "formula": formula.as_dict(),
+ **formula.as_dict(),
"category": formula.category.as_dict(),
+ "science": (await Science.get(id=formula.category.science_id)).as_dict(),
"info": formula_obj.as_dict()
}
@router.post('/formula/{formula_slug}')
@login_required
-async def formula_post(
+async def formula_calculate_view(
request: Request,
formula: Formula = Depends(get_formula_dependency),
request_data: RequestData = Body(),
- formula_repository=Depends(get_formula_mongo_repository)
):
"""Request form to calculate."""
- formula_data = await formula_repository.get(slug=formula.slug)
- formula_obj = FormulaObject.from_dict(formula_data)
+ formula_obj = FormulaObject.from_dict(formula.data)
request_schema = RequestSchema(
formula_id=str(formula.id),
url=request.url.path,
@@ -171,8 +171,8 @@ async def formula_post(
if is_success:
await History.create(
formula_id=formula.id,
- user_id=result.user_id,
+ user_id=request.user.id,
result=result
)
- return JSONResponse({"result": result}, status_code=200)
- return JSONResponse({"detail": result}, status_code=400)
+ return JSONResponse({"result": result}, 200)
+ return JSONResponse({"detail": result}, 400)
diff --git a/backend/src/apps/sciences/schemas.py b/backend/src/apps/sciences/schemas.py
index e8cc21a..42358d3 100644
--- a/backend/src/apps/sciences/schemas.py
+++ b/backend/src/apps/sciences/schemas.py
@@ -1,5 +1,4 @@
from pydantic import BaseModel, Field
-from enum import Enum
class RequestSchema(BaseModel):
@@ -43,6 +42,41 @@ class DownloadPlot(BaseModel):
filename: str
-class ScienceEnum(Enum):
- physics = "physics"
- mathem = "mathem"
+class ScienceListSchema(BaseModel):
+ id: str
+ title: str
+ slug: str
+ image_path: str | None = None
+ content: str
+
+
+class CategoryListSchema(BaseModel):
+ id: str
+ title: str
+ slug: str
+ content: str
+ image_path: str | None = None
+ is_special: bool
+
+
+class ScienceDetailSchema(ScienceListSchema):
+ categories: list[CategoryListSchema]
+
+
+class FormulaListSchema(BaseModel):
+ id: str
+ title: str
+ slug: str
+ formula: str
+ image_path: str | None = None
+
+
+class CategoryDetailSchema(CategoryListSchema):
+ science: ScienceListSchema
+ formulas: list[FormulaListSchema]
+
+
+class FormulaDetailSchema(FormulaListSchema):
+ info: dict
+ category: CategoryListSchema
+ science: ScienceListSchema
diff --git a/backend/src/apps/users/models.py b/backend/src/apps/users/models.py
index 2cdf2a5..7a12f9f 100644
--- a/backend/src/apps/users/models.py
+++ b/backend/src/apps/users/models.py
@@ -19,6 +19,9 @@ class User(TortoiseModel):
time_registered = fields.DatetimeField(auto_now=True)
last_login = fields.DatetimeField(auto_now_add=True, null=True)
+ def __str__(self):
+ return self.username
+
@classmethod
async def login(cls, password: str, username: str | None = None, email: str | None = None):
if username:
@@ -27,7 +30,6 @@ async def login(cls, password: str, username: str | None = None, email: str | No
user = await cls.get_or_none(email=email)
else:
return None, None
- print(123123, user)
if user is not None:
return user, verify_password(password, user.password)
return None, None
@@ -38,7 +40,6 @@ async def register(cls, **kwargs):
try:
user = await cls.create(**kwargs, active=True)
except IntegrityError:
- raise
return
return user
@@ -46,9 +47,6 @@ async def activate(self) -> None:
self.is_active = True
await self.save()
- def __str__(self):
- return self.username
-
def full_name(self) -> str:
if self.first_name or self.last_name:
return f"{self.first_name or ''} {self.last_name or ''}"
diff --git a/backend/src/apps/users/permissions.py b/backend/src/apps/users/permissions.py
new file mode 100644
index 0000000..ba11661
--- /dev/null
+++ b/backend/src/apps/users/permissions.py
@@ -0,0 +1,29 @@
+from functools import wraps
+from typing import Callable
+
+from fastapi import Request, HTTPException, WebSocket
+from starlette.authentication import UnauthenticatedUser
+
+
+def login_required(view_func: Callable):
+ """Decorator for api view to check token header."""
+
+ @wraps(view_func)
+ async def inner(request: Request, *args, **kwargs):
+ if isinstance(request.user, UnauthenticatedUser): # raise exception if user is not found
+ raise HTTPException(403, "Authentication required.")
+ return await view_func(request, *args, **kwargs)
+
+ return inner
+
+
+def ws_login_required(view_func: Callable):
+ """Decorator for websocket view to check token header."""
+
+ @wraps(view_func)
+ async def inner(websocket: WebSocket, *args, **kwargs):
+ if isinstance(websocket.user, UnauthenticatedUser): # raise exception if user is not found
+ raise HTTPException(403, "Authentication required.")
+ return await view_func(websocket, *args, **kwargs)
+
+ return inner
diff --git a/backend/src/apps/users/routes.py b/backend/src/apps/users/routes.py
index 6bfdc85..e731c28 100644
--- a/backend/src/apps/users/routes.py
+++ b/backend/src/apps/users/routes.py
@@ -1,16 +1,16 @@
from fastapi import APIRouter, Body, Request, Depends
from fastapi.responses import JSONResponse
-from fastapi_authtools import login_required
-from fastapi_authtools.exceptions import raise_invalid_credentials
from tortoise.exceptions import IntegrityError
from .dependencies import get_oauth_provider
from .models import User, ActivationCode
from src.services.oauth import Providers
+from .permissions import login_required
from .schemas import UserRegister, UserCustomModel, UserLogin, ActivationCodeScheme
from src.core.config import get_app_settings
from .tasks import send_email_task
from ...services.email import build_activation_email
+from ...services.jwt import encode_jwt_token
router = APIRouter(prefix='/auth', tags=["Authentication"])
@@ -32,7 +32,7 @@ async def provider_callback_view(request: Request, code: str, provider=Depends(g
except IntegrityError:
user = await User.get(email=user_data['email'], username=user_data['username'])
user_model = UserCustomModel(**user.as_dict())
- access_token = request.app.state.auth_manager.create_token(user_model)
+ access_token = encode_jwt_token(user_id=user_model.id)
return {"access_token": access_token}
@@ -42,14 +42,21 @@ async def get_token_view(request: Request, user_token_data: UserLogin = Body()):
user, password_correct = await User.login(
**user_token_data.model_dump(exclude={"login"})
)
- print(await User.all().values_list("email", flat=True))
- print(user_token_data.model_dump())
- print(123123, await User.get_or_none(email=user_token_data.login))
+ if user is None:
+ return JSONResponse(
+ {"detail": "User does not exists."},
+ status_code=404
+ )
+ if not password_correct:
+ return JSONResponse(
+ {"detail": "Password is invalid."},
+ status_code=400
+ )
if not user.is_active:
activation_code = await ActivationCode.create_activation_code(user=user)
send_email_task.apply_async(
kwargs={
- "body": build_activation_email(activation_code),
+ "body": build_activation_email(activation_code.code),
"to_addrs": [user.email],
"subject": "Activation",
}
@@ -58,13 +65,8 @@ async def get_token_view(request: Request, user_token_data: UserLogin = Body()):
{"detail": "Activation required check you email."},
status_code=403
)
- if not password_correct:
- return JSONResponse(
- {"detail": "Password is invalid."},
- status_code=400
- )
user_model = UserCustomModel(**user.as_dict())
- token = request.app.state.auth_manager.create_token(user_model)
+ token = encode_jwt_token(user_id=user_model.id)
return {"access_token": token}
@@ -77,7 +79,7 @@ async def register_view(request: Request, user_data: UserRegister = Body()):
activation_code = await ActivationCode.create_activation_code(user=new_user)
send_email_task.apply_async(
kwargs={
- "body": build_activation_email(activation_code),
+ "body": build_activation_email(activation_code.code),
"to_addrs": [new_user.email],
"subject": "Activation",
}
diff --git a/backend/src/apps/users/schemas.py b/backend/src/apps/users/schemas.py
index ba8197b..ee84138 100644
--- a/backend/src/apps/users/schemas.py
+++ b/backend/src/apps/users/schemas.py
@@ -1,6 +1,6 @@
from datetime import datetime
-from pydantic import BaseModel, EmailStr, Field
+from pydantic import BaseModel, EmailStr
class UserCustomModel(BaseModel):
diff --git a/backend/src/apps/users/tasks.py b/backend/src/apps/users/tasks.py
index 36a7607..ca6ed57 100644
--- a/backend/src/apps/users/tasks.py
+++ b/backend/src/apps/users/tasks.py
@@ -1,6 +1,6 @@
from email.message import EmailMessage
-from src.core.celery import app
+from src.core.worker import app
from ...core.config import get_app_settings
from ...services.email import EmailServer
diff --git a/backend/src/core/app.py b/backend/src/core/app.py
index a29c473..6f24e6c 100644
--- a/backend/src/core/app.py
+++ b/backend/src/core/app.py
@@ -1,16 +1,17 @@
+import logging
+import sys
+
from fastapi import FastAPI
-from fastapi_authtools import AuthManager
+from starlette.middleware.authentication import AuthenticationMiddleware
from starlette.staticfiles import StaticFiles
from src.apps import __routers__
from src.core.config import get_app_settings
-from src.apps.users.schemas import UserCustomModel
from src.core.middleware.time import process_time_middleware
from .middleware.cors import use_cors_middleware
-from .middleware.authentication import use_authentication_middleware
-from src.db.events import create_superuser, register_mongodb_db, register_db, authentication_user_getter
+from .middleware.authentication import AuthenticationBackend
+from src.db.events import create_superuser, register_db
from src.db.redis import create_redis_client
-from src.data.load_data import load_all_data, load_all_data_mongo
class Application:
@@ -41,28 +42,27 @@ def _configurate_app(self) -> None:
self.app.add_event_handler(event_type="startup", func=self._on_startup_event)
self.app.add_event_handler(event_type="shutdown", func=self._on_shutdown_event)
self.app.state.SECRET_KEY = self.settings.SECRET_KEY
-
- # auth manager settings
- self.app.state.auth_manager = AuthManager(
- app=self.app,
- use_cookies=False,
- user_model=UserCustomModel,
- algorithm=self.settings.ALGORITHM,
- secret_key=self.settings.SECRET_KEY,
- expire_minutes=self.settings.EXPIRE_MINUTES,
- user_getter=authentication_user_getter,
+ fmt = logging.Formatter(
+ fmt="%(asctime)s - %(name)s:%(lineno)d - %(levelname)s - %(message)s",
+ datefmt="%Y-%m-%d %H:%M:%S",
)
+ sh = logging.StreamHandler(sys.stdout)
+ sh.setLevel(getattr(logging, "DEBUG"))
+ sh.setFormatter(fmt)
+ logger_db_client = logging.getLogger("tortoise.db_client")
+ logger_db_client.setLevel(getattr(logging, "DEBUG"))
+ logger_db_client.addHandler(sh)
+ # auth manager settings
self.app.mount("/static", StaticFiles(directory="src/public/static/"), name="static")
self.app.state.STATIC_DIR = "src/public/static/"
def _configurate_middleware(self) -> None:
use_cors_middleware(self.app)
- use_authentication_middleware(self.app)
+ self.app.add_middleware(AuthenticationMiddleware, backend=AuthenticationBackend())
self.app.middleware("http")(process_time_middleware)
def _configurate_db(self) -> None:
"""Configurate database."""
- self.app.state.mongodb_db = register_mongodb_db(self.settings.MONGODB_URL, self.settings.MONGODB_NAME)
self.app.state.redis = create_redis_client(self.settings.REDIS_URL)
register_db(
app=self.app,
@@ -86,8 +86,7 @@ def _configure_services(self):
async def _load_data(self):
"""Data loading function."""
await create_superuser(settings=self.settings)
- await load_all_data()
- await load_all_data_mongo(self.app.state.mongodb_db)
+ # await load_all_data()
async def _on_startup_event(self):
"""Startup handler."""
diff --git a/backend/src/core/middleware/authentication.py b/backend/src/core/middleware/authentication.py
index fb02307..7f75c60 100644
--- a/backend/src/core/middleware/authentication.py
+++ b/backend/src/core/middleware/authentication.py
@@ -1,6 +1,4 @@
-from fastapi import FastAPI
from starlette.middleware import authentication
-from starlette.middleware.authentication import AuthenticationMiddleware
from starlette.requests import HTTPConnection
from src.apps.users.models import User
@@ -31,7 +29,7 @@ async def verify_token(token: str | None) -> tuple[list, RequestUser]:
return scopes, user
@staticmethod
- def get_token_ws(conn: HTTPConnection) -> str:
+ def get_token_ws(conn: HTTPConnection) -> str | None:
"""Get token from current http connection."""
query_token = conn.query_params.get("authorization")
if query_token is None:
@@ -58,7 +56,3 @@ async def authenticate(
response = await self.verify_token(token)
scopes, user = response
return authentication.AuthCredentials(scopes=scopes), user
-
-
-def use_authentication_middleware(app: FastAPI) -> None:
- app.add_middleware(AuthenticationMiddleware, backend=AuthenticationBackend())
diff --git a/backend/src/core/middleware/time.py b/backend/src/core/middleware/time.py
index ed19564..a9089f2 100644
--- a/backend/src/core/middleware/time.py
+++ b/backend/src/core/middleware/time.py
@@ -5,6 +5,5 @@
async def process_time_middleware(request: Request, call_next) -> Response:
start_time = time.time()
response = await call_next(request)
- finished_time = time.time()
- response.headers['X-Process-Time'] = str(finished_time - start_time)
+ response.headers['X-Process-Time'] = str(time.time() - start_time)
return response
diff --git a/backend/src/core/settings/base.py b/backend/src/core/settings/base.py
index 9fb1fe3..f8d0be1 100644
--- a/backend/src/core/settings/base.py
+++ b/backend/src/core/settings/base.py
@@ -1,8 +1,8 @@
from pydantic_settings import BaseSettings
-from enum import StrEnum
+from enum import Enum
-class AppEnvTypes(StrEnum):
+class AppEnvTypes(Enum):
prod = "prod"
dev = "dev"
test = "test"
@@ -37,6 +37,8 @@ class BaseAppSettings(BaseSettings):
MONGODB_URL: str
MONGODB_NAME: str
+ BASE_URL: str
+
@property
def REDIS_URL(self) -> str:
return f"redis://{self.REDIS_HOST}:{self.REDIS_PORT}"
diff --git a/backend/src/core/celery.py b/backend/src/core/worker.py
similarity index 100%
rename from backend/src/core/celery.py
rename to backend/src/core/worker.py
diff --git a/backend/src/db/events.py b/backend/src/db/events.py
index 6bfa623..992b755 100644
--- a/backend/src/db/events.py
+++ b/backend/src/db/events.py
@@ -1,7 +1,7 @@
from fastapi import FastAPI
from tortoise.contrib.fastapi import register_tortoise
from tortoise.exceptions import IntegrityError
-from motor.motor_asyncio import AsyncIOMotorClient
+# from motor.motor_asyncio import AsyncIOMotorClient
from src.apps.users.models import User
from src.services.password import hash_password
@@ -42,7 +42,6 @@ async def create_superuser(settings) -> None:
except IntegrityError:
pass
-
-def register_mongodb_db(db_url: str, db_name: str):
- client = AsyncIOMotorClient(db_url)
- return getattr(client, db_name)
+# def register_mongodb_db(db_url: str, db_name: str):
+# client = AsyncIOMotorClient(db_url)
+# return getattr(client, db_name)
diff --git a/backend/src/db/migrations/README b/backend/src/db/migrations/README
deleted file mode 100644
index e0d0858..0000000
--- a/backend/src/db/migrations/README
+++ /dev/null
@@ -1 +0,0 @@
-Generic single-database configuration with an async dbapi.
\ No newline at end of file
diff --git a/backend/src/db/migrations/__init__.py b/backend/src/db/migrations/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/backend/src/db/migrations/env.py b/backend/src/db/migrations/env.py
deleted file mode 100644
index 9c4999e..0000000
--- a/backend/src/db/migrations/env.py
+++ /dev/null
@@ -1,95 +0,0 @@
-import asyncio
-from logging.config import fileConfig
-
-from sqlalchemy import pool
-from sqlalchemy.engine import Connection
-from sqlalchemy.ext.asyncio import async_engine_from_config
-
-from alembic import context
-
-from app.core.config import get_app_settings
-from app.db import Base
-from app.db.models import User, Science, Category, Formula, History # noqa: F401
-
-
-# this is the Alembic Config object, which provides
-# access to the values within the .ini file in use.
-config = context.config
-config.set_main_option("db_uri", get_app_settings().db_uri)
-
-# Interpret the config file for Python logging.
-# This line sets up loggers basically.
-if config.config_file_name is not None:
- fileConfig(config.config_file_name)
-
-# add your model's MetaData object here
-# for 'autogenerate' support
-# from myapp import mymodel
-# target_metadata = mymodel.Base.metadata
-target_metadata = Base.metadata
-
-# other values from the config, defined by the needs of env.py,
-# can be acquired:
-# my_important_option = config.get_main_option("my_important_option")
-# ... etc.
-
-
-def run_migrations_offline() -> None:
- """Run migrations in 'offline' mode.
-
- This configures the context with just a URL
- and not an Engine, though an Engine is acceptable
- here as well. By skipping the Engine creation
- we don't even need a DBAPI to be available.
-
- Calls to context.execute() here emit the given string to the
- script output.
-
- """
- url = config.get_main_option("sqlalchemy.url")
- context.configure(
- url=url,
- target_metadata=target_metadata,
- literal_binds=True,
- dialect_opts={"paramstyle": "named"},
- )
-
- with context.begin_transaction():
- context.run_migrations()
-
-
-def do_run_migrations(connection: Connection) -> None:
- context.configure(connection=connection, target_metadata=target_metadata)
-
- with context.begin_transaction():
- context.run_migrations()
-
-
-async def run_async_migrations() -> None:
- """In this scenario we need to create an Engine
- and associate a connection with the context.
-
- """
-
- connectable = async_engine_from_config(
- config.get_section(config.config_ini_section, {}),
- prefix="sqlalchemy.",
- poolclass=pool.NullPool,
- )
-
- async with connectable.connect() as connection:
- await connection.run_sync(do_run_migrations)
-
- await connectable.dispose()
-
-
-def run_migrations_online() -> None:
- """Run migrations in 'online' mode."""
-
- asyncio.run(run_async_migrations())
-
-
-if context.is_offline_mode():
- run_migrations_offline()
-else:
- run_migrations_online()
diff --git a/backend/src/db/migrations/script.py.mako b/backend/src/db/migrations/script.py.mako
deleted file mode 100644
index 55df286..0000000
--- a/backend/src/db/migrations/script.py.mako
+++ /dev/null
@@ -1,24 +0,0 @@
-"""${message}
-
-Revision ID: ${up_revision}
-Revises: ${down_revision | comma,n}
-Create Date: ${create_date}
-
-"""
-from alembic import op
-import sqlalchemy as sa
-${imports if imports else ""}
-
-# revision identifiers, used by Alembic.
-revision = ${repr(up_revision)}
-down_revision = ${repr(down_revision)}
-branch_labels = ${repr(branch_labels)}
-depends_on = ${repr(depends_on)}
-
-
-def upgrade() -> None:
- ${upgrades if upgrades else "pass"}
-
-
-def downgrade() -> None:
- ${downgrades if downgrades else "pass"}
diff --git a/backend/src/db/migrations/versions/273df632e57f_.py b/backend/src/db/migrations/versions/273df632e57f_.py
deleted file mode 100644
index df3c280..0000000
--- a/backend/src/db/migrations/versions/273df632e57f_.py
+++ /dev/null
@@ -1,28 +0,0 @@
-"""empty message
-
-Revision ID: 273df632e57f
-Revises: f33e63753166
-Create Date: 2023-07-23 13:36:53.898680
-
-"""
-from alembic import op
-import sqlalchemy as sa # noqa: F401
-
-
-# revision identifiers, used by Alembic.
-revision = '273df632e57f'
-down_revision = 'f33e63753166'
-branch_labels = None
-depends_on = None
-
-
-def upgrade() -> None:
- # ### commands auto generated by Alembic - please adjust! ###
- op.create_foreign_key(None, 'problems', 'solutions', ['solution_id'], ['id'], ondelete='SET NULL')
- # ### end Alembic commands ###
-
-
-def downgrade() -> None:
- # ### commands auto generated by Alembic - please adjust! ###
- op.drop_constraint(None, 'problems', type_='foreignkey')
- # ### end Alembic commands ###
diff --git a/backend/src/db/migrations/versions/5256d9890caa_.py b/backend/src/db/migrations/versions/5256d9890caa_.py
deleted file mode 100644
index bc1b3e0..0000000
--- a/backend/src/db/migrations/versions/5256d9890caa_.py
+++ /dev/null
@@ -1,28 +0,0 @@
-"""empty message
-
-Revision ID: 5256d9890caa
-Revises: 273df632e57f
-Create Date: 2023-07-27 23:28:38.867470
-
-"""
-from alembic import op
-import sqlalchemy as sa
-
-
-# revision identifiers, used by Alembic.
-revision = '5256d9890caa'
-down_revision = '273df632e57f'
-branch_labels = None
-depends_on = None
-
-
-def upgrade() -> None:
- # ### commands auto generated by Alembic - please adjust! ###
- op.add_column('users', sa.Column('is_active', sa.Boolean(), nullable=True))
- # ### end Alembic commands ###
-
-
-def downgrade() -> None:
- # ### commands auto generated by Alembic - please adjust! ###
- op.drop_column('users', 'is_active')
- # ### end Alembic commands ###
diff --git a/backend/src/db/migrations/versions/__init__.py b/backend/src/db/migrations/versions/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/backend/src/db/migrations/versions/f33e63753166_.py b/backend/src/db/migrations/versions/f33e63753166_.py
deleted file mode 100644
index 253299e..0000000
--- a/backend/src/db/migrations/versions/f33e63753166_.py
+++ /dev/null
@@ -1,147 +0,0 @@
-"""empty message
-
-Revision ID: f33e63753166
-Revises:
-Create Date: 2023-07-23 13:23:03.953111
-
-"""
-from alembic import op
-import sqlalchemy as sa
-
-
-# revision identifiers, used by Alembic.
-revision = 'f33e63753166'
-down_revision = None
-branch_labels = None
-depends_on = None
-
-
-def upgrade() -> None:
- # ### commands auto generated by Alembic - please adjust! ###
- op.create_table(
- 'users',
- sa.Column('username', sa.String(length=40), nullable=True),
- sa.Column('email', sa.String(length=40), nullable=True),
- sa.Column('password', sa.String(length=100), nullable=True),
- sa.Column('last_login', sa.String(length=50), nullable=True),
- sa.Column('joined', sa.String(length=50), nullable=True),
- sa.Column('is_stuff', sa.Boolean(), nullable=True),
- sa.Column('is_superuser', sa.Boolean(), nullable=True),
- sa.Column('id', sa.String(length=100), nullable=False),
- sa.PrimaryKeyConstraint('id'),
- sa.UniqueConstraint('email'),
- sa.UniqueConstraint('username')
- )
- op.create_table(
- 'sciences',
- sa.Column('title', sa.String(length=40), nullable=True),
- sa.Column('content', sa.Text(), nullable=True),
- sa.Column('image_path', sa.String(length=100), nullable=True),
- sa.Column('slug', sa.String(length=40), nullable=True),
- sa.Column('id', sa.String(length=100), nullable=False),
- sa.PrimaryKeyConstraint('id'),
- sa.UniqueConstraint('slug'),
- sa.UniqueConstraint('title')
- )
- op.create_table(
- 'categories',
- sa.Column('title', sa.String(length=40), nullable=True),
- sa.Column('content', sa.Text(), nullable=True),
- sa.Column('image_path', sa.String(length=100), nullable=True),
- sa.Column('science_id', sa.String(length=100), nullable=True),
- sa.Column('slug', sa.String(length=40), nullable=True),
- sa.Column('id', sa.String(length=100), nullable=False),
- sa.ForeignKeyConstraint(['science_id'], ['sciences.id'], ),
- sa.PrimaryKeyConstraint('id'),
- sa.UniqueConstraint('slug'),
- sa.UniqueConstraint('title')
- )
- op.create_table(
- 'formulas',
- sa.Column('title', sa.String(length=40), nullable=True),
- sa.Column('formula', sa.String(length=40), nullable=True),
- sa.Column('content', sa.Text(), nullable=True),
- sa.Column('image_path', sa.String(length=100), nullable=True),
- sa.Column('category_id', sa.String(length=100), nullable=True),
- sa.Column('slug', sa.String(length=40), nullable=True),
- sa.Column('id', sa.String(length=100), nullable=False),
- sa.ForeignKeyConstraint(['category_id'], ['categories.id'], ),
- sa.PrimaryKeyConstraint('id'),
- sa.UniqueConstraint('slug'),
- sa.UniqueConstraint('title')
- )
- op.create_table(
- 'problems',
- sa.Column('title', sa.String(length=100), nullable=True),
- sa.Column('text', sa.Text(), nullable=True),
- sa.Column('time_asked', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
- sa.Column('time_answered', sa.DateTime(timezone=True), nullable=True),
- sa.Column('is_solved', sa.Boolean(), nullable=True),
- # sa.Column('solution_id', sa.String(length=100), nullable=True),
- sa.Column('science_id', sa.String(length=100), nullable=True),
- sa.Column('user_id', sa.String(length=100), nullable=True),
- sa.Column('id', sa.String(length=100), nullable=False),
- sa.ForeignKeyConstraint(['science_id'], ['sciences.id'], ondelete='CASCADE'),
- # sa.ForeignKeyConstraint(['solution_id'], ['solutions.id'], ondelete='SET NULL'),
- sa.ForeignKeyConstraint(['user_id'], ['users.id'], ),
- sa.PrimaryKeyConstraint('id')
- )
- op.create_table(
- 'problemmedias',
- sa.Column('problem_id', sa.String(length=100), nullable=True),
- sa.Column('media_path', sa.String(length=255), nullable=True),
- sa.Column('id', sa.String(length=100), nullable=False),
- sa.ForeignKeyConstraint(['problem_id'], ['problems.id'], ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('id')
- )
- op.create_table(
- 'solutions',
- sa.Column('author_id', sa.String(length=100), nullable=True),
- sa.Column('problem_id', sa.String(length=100), nullable=True),
- sa.Column('text', sa.Text(), nullable=True),
- sa.Column('time_created', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
- sa.Column('id', sa.String(length=100), nullable=False),
- sa.ForeignKeyConstraint(['author_id'], ['users.id'], ondelete='CASCADE'),
- sa.ForeignKeyConstraint(['problem_id'], ['problems.id'], ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('id')
- )
- op.create_table(
- 'solutionmedias',
- sa.Column('solution_id', sa.String(length=100), nullable=True),
- sa.Column('media_path', sa.String(length=255), nullable=True),
- sa.Column('id', sa.String(length=100), nullable=False),
- sa.ForeignKeyConstraint(['solution_id'], ['solutions.id'], ondelete='CASCADE'),
- sa.PrimaryKeyConstraint('id')
- )
- op.create_table(
- 'history',
- sa.Column('formula_id', sa.String(length=100), nullable=True),
- sa.Column('result', sa.String(length=100), nullable=True),
- sa.Column('formula_url', sa.String(length=50), nullable=True),
- sa.Column('date_time', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=True),
- sa.Column('user_id', sa.String(length=100), nullable=True),
- sa.Column('id', sa.String(length=100), nullable=False),
- sa.ForeignKeyConstraint(['formula_id'], ['formulas.id'], ),
- sa.ForeignKeyConstraint(['user_id'], ['users.id'], ),
- sa.PrimaryKeyConstraint('id')
- )
- op.add_column(
- 'problems',
- sa.Column("solution_id", sa.String(200), nullable=True)
- )
-
- # ### end Alembic commands ###
-
-
-def downgrade() -> None:
- # ### commands auto generated by Alembic - please adjust! ###
- op.drop_table('history')
- op.drop_table('formulas')
- op.drop_table('solutionmedias')
- op.drop_table('problemmedias')
- op.drop_table('categories')
- op.drop_table('users')
- op.drop_table('solutions')
- op.drop_table('sciences')
- op.drop_table('problems')
- # ### end Alembic commands ###
diff --git a/backend/src/public/static/files/plots/122199262.png b/backend/src/public/static/files/plots/122199262.png
new file mode 100644
index 0000000..9d7b736
Binary files /dev/null and b/backend/src/public/static/files/plots/122199262.png differ
diff --git a/backend/src/public/static/files/plots/e1632a02-948b-4fff-909c-1280395bf5e8.png b/backend/src/public/static/files/plots/e1632a02-948b-4fff-909c-1280395bf5e8.png
new file mode 100644
index 0000000..deb2972
Binary files /dev/null and b/backend/src/public/static/files/plots/e1632a02-948b-4fff-909c-1280395bf5e8.png differ
diff --git a/backend/src/public/static/sciences/images/categories/123.webp b/backend/src/public/static/sciences/images/categories/123.webp
new file mode 100644
index 0000000..bcdb161
Binary files /dev/null and b/backend/src/public/static/sciences/images/categories/123.webp differ
diff --git a/backend/src/public/static/sciences/images/categories/51588.jpg b/backend/src/public/static/sciences/images/categories/51588.jpg
new file mode 100644
index 0000000..3cc75d4
Binary files /dev/null and b/backend/src/public/static/sciences/images/categories/51588.jpg differ
diff --git a/backend/src/public/static/sciences/images/categories/graphics.png b/backend/src/public/static/sciences/images/categories/graphics.png
new file mode 100644
index 0000000..3c536bc
Binary files /dev/null and b/backend/src/public/static/sciences/images/categories/graphics.png differ
diff --git a/backend/src/public/static/sciences/images/categories/hydrostatics.png b/backend/src/public/static/sciences/images/categories/hydrostatics.png
new file mode 100644
index 0000000..2762a44
Binary files /dev/null and b/backend/src/public/static/sciences/images/categories/hydrostatics.png differ
diff --git a/backend/src/public/static/sciences/images/categories/kinematics.png b/backend/src/public/static/sciences/images/categories/kinematics.png
new file mode 100644
index 0000000..7676c2e
Binary files /dev/null and b/backend/src/public/static/sciences/images/categories/kinematics.png differ
diff --git a/backend/src/public/static/sciences/images/categories/magnethism.webp b/backend/src/public/static/sciences/images/categories/magnethism.webp
new file mode 100644
index 0000000..e9a8ca7
Binary files /dev/null and b/backend/src/public/static/sciences/images/categories/magnethism.webp differ
diff --git a/backend/src/public/static/sciences/images/categories/mechanics.png b/backend/src/public/static/sciences/images/categories/mechanics.png
new file mode 100644
index 0000000..10f1524
Binary files /dev/null and b/backend/src/public/static/sciences/images/categories/mechanics.png differ
diff --git a/backend/src/public/static/sciences/images/categories/molecular.webp b/backend/src/public/static/sciences/images/categories/molecular.webp
new file mode 100644
index 0000000..fff570b
Binary files /dev/null and b/backend/src/public/static/sciences/images/categories/molecular.webp differ
diff --git a/backend/src/public/static/sciences/images/categories/nuclear.png b/backend/src/public/static/sciences/images/categories/nuclear.png
new file mode 100644
index 0000000..66c947e
Binary files /dev/null and b/backend/src/public/static/sciences/images/categories/nuclear.png differ
diff --git a/backend/src/public/static/sciences/images/categories/optics.webp b/backend/src/public/static/sciences/images/categories/optics.webp
new file mode 100644
index 0000000..bdc7b9d
Binary files /dev/null and b/backend/src/public/static/sciences/images/categories/optics.webp differ
diff --git a/backend/src/public/static/sciences/images/categories/oscillation.png b/backend/src/public/static/sciences/images/categories/oscillation.png
new file mode 100644
index 0000000..22492ec
Binary files /dev/null and b/backend/src/public/static/sciences/images/categories/oscillation.png differ
diff --git a/backend/src/public/static/sciences/images/categories/statics.webp b/backend/src/public/static/sciences/images/categories/statics.webp
new file mode 100644
index 0000000..a89e32e
Binary files /dev/null and b/backend/src/public/static/sciences/images/categories/statics.webp differ
diff --git a/backend/src/public/static/sciences/images/categories/thermodynamics.png b/backend/src/public/static/sciences/images/categories/thermodynamics.png
new file mode 100644
index 0000000..090c205
Binary files /dev/null and b/backend/src/public/static/sciences/images/categories/thermodynamics.png differ
diff --git a/backend/src/public/static/sciences/images/categories/triangles.webp b/backend/src/public/static/sciences/images/categories/triangles.webp
new file mode 100644
index 0000000..481121c
Binary files /dev/null and b/backend/src/public/static/sciences/images/categories/triangles.webp differ
diff --git a/backend/src/public/static/sciences/images/sciences/mathem.png b/backend/src/public/static/sciences/images/sciences/mathem.png
index e69de29..5448b26 100644
Binary files a/backend/src/public/static/sciences/images/sciences/mathem.png and b/backend/src/public/static/sciences/images/sciences/mathem.png differ
diff --git a/backend/src/public/static/sciences/images/sciences/physics.jpg b/backend/src/public/static/sciences/images/sciences/physics.jpg
deleted file mode 100644
index e69de29..0000000
diff --git a/backend/src/public/static/sciences/images/sciences/physics.png b/backend/src/public/static/sciences/images/sciences/physics.png
new file mode 100644
index 0000000..8e4944d
Binary files /dev/null and b/backend/src/public/static/sciences/images/sciences/physics.png differ
diff --git a/backend/src/services/formulas/counter.py b/backend/src/services/formulas/counter.py
index 4392c7f..5bdff78 100644
--- a/backend/src/services/formulas/counter.py
+++ b/backend/src/services/formulas/counter.py
@@ -176,6 +176,7 @@ def count_result(request: RequestSchema, formula_obj: Formula):
result = formula_obj.match(
**dict(zip(find_args, nums * si))
)[0]
+ print(result, nums_comma)
result = round(float(result), nums_comma)
except (SyntaxError, NameError):
diff --git a/backend/src/services/tables/__init__.py b/backend/src/services/tables/__init__.py
index 2f0919d..6c81366 100644
--- a/backend/src/services/tables/__init__.py
+++ b/backend/src/services/tables/__init__.py
@@ -1 +1,3 @@
from .tables import CsvTableManager, PandasTableManager
+
+__all__ = ("CsvTableManager", "PandasTableManager")
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index c74db02..9980b54 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -3253,8 +3253,7 @@
"commander": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
- "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
- "dev": true
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="
},
"commondir": {
"version": "1.0.1",
@@ -5508,6 +5507,14 @@
"universalify": "^2.0.0"
}
},
+ "katex": {
+ "version": "0.16.9",
+ "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.9.tgz",
+ "integrity": "sha512-fsSYjWS0EEOwvy81j3vRA8TEAhQhKiqO+FQaKWp0m39qwOzHVBgAUBIXWj1pB+O2W3fIpNa6Y9KSKCVbfPhyAQ==",
+ "requires": {
+ "commander": "^8.3.0"
+ }
+ },
"kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
@@ -5867,9 +5874,9 @@
}
},
"mathjax": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/mathjax/-/mathjax-3.2.2.tgz",
- "integrity": "sha512-Bt+SSVU8eBG27zChVewOicYs7Xsdt40qm4+UpHyX7k0/O9NliPc+x77k1/FEsPsjKPZGJvtRZM1vO+geW0OhGw=="
+ "version": "2.7.9",
+ "resolved": "https://registry.npmjs.org/mathjax/-/mathjax-2.7.9.tgz",
+ "integrity": "sha512-NOGEDTIM9+MrsqnjPEjVGNx4q0GQxqm61yQwSK+/5S59i26wId5IC5gNu9/bu8+CCVl5p9G2IHcAl/wJa+5+BQ=="
},
"mdn-data": {
"version": "2.0.14",
@@ -7001,7 +7008,6 @@
"version": "2.8.8",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
- "dev": true,
"optional": true
},
"pretty-error": {
@@ -8380,6 +8386,21 @@
"integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
"dev": true
},
+ "vue-katex": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/vue-katex/-/vue-katex-0.5.0.tgz",
+ "integrity": "sha512-KsjSK4ftpw9q8SP1OJbigPOozdthOS46+6GmqkToXZVmmPejBHGGmDUxJ/2UtkyAuHf5dHL+2RvOXi/RV77YOA==",
+ "requires": {
+ "deepmerge": "^4.2.2"
+ },
+ "dependencies": {
+ "deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="
+ }
+ }
+ },
"vue-loader": {
"version": "17.2.2",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.2.2.tgz",
@@ -8451,27 +8472,33 @@
"vue": "^2.6.11"
},
"dependencies": {
+ "@babel/parser": {
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz",
+ "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg=="
+ },
"@vue/compiler-sfc": {
- "version": "2.7.14",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz",
- "integrity": "sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==",
+ "version": "2.7.16",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz",
+ "integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==",
"requires": {
- "@babel/parser": "^7.18.4",
+ "@babel/parser": "^7.23.5",
"postcss": "^8.4.14",
+ "prettier": "^1.18.2 || ^2.0.0",
"source-map": "^0.6.1"
}
},
"csstype": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
- "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
},
"vue": {
- "version": "2.7.14",
- "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.14.tgz",
- "integrity": "sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==",
+ "version": "2.7.16",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.16.tgz",
+ "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==",
"requires": {
- "@vue/compiler-sfc": "2.7.14",
+ "@vue/compiler-sfc": "2.7.16",
"csstype": "^3.1.0"
}
}
diff --git a/frontend/package.json b/frontend/package.json
index 1b8b246..f570287 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -11,9 +11,11 @@
"@tailwindcss/forms": "^0.5.7",
"axios": "^1.4.0",
"core-js": "^3.8.3",
- "mathjax": "^3.2.2",
+ "katex": "^0.16.9",
+ "mathjax": "^2.7.9",
"tailwindcss": "^3.4.1",
"vue": "^3.2.26",
+ "vue-katex": "^0.5.0",
"vue-mathjax": "^0.1.1",
"vue-router": "^4.0.3",
"vue-tailwind": "^2.5.1"
diff --git a/frontend/public/index.html b/frontend/public/index.html
index e9173bd..e4120d9 100644
--- a/frontend/public/index.html
+++ b/frontend/public/index.html
@@ -8,16 +8,15 @@
Сайт для вычислений
-
-
+
+
-
+
-
diff --git a/frontend/src/App.vue b/frontend/src/App.vue
index d5208be..d81e786 100644
--- a/frontend/src/App.vue
+++ b/frontend/src/App.vue
@@ -6,14 +6,13 @@ export default {
name: "AppItem",
components: {
Footer,
-
},
data() {
return {
publicPath: process.env.BASE_URL,
- editMeUrl: 'https://github.com/michael7nightingale/FastAPI-Science',
-
+ githubUrl: 'https://github.com/michael7nightingale/FastAPI-Science',
+ menuOpened: false
}
},
@@ -28,18 +27,32 @@ export default {
logoutUser()
window.location.reload();
},
- githubOpen() {
- window.open(this.editMeUrl, "_blank");
- },
openMobileMenu() {
- const menuElement = document.getElementById("mobile-nav");
- if (menuElement.style.display === 'none') {
- menuElement.style.display = 'block';
- } else {
- menuElement.style.display = 'none';
+ this.menuOpened = !this.menuOpened;
+ },
+ checkLogin(){
+ let user = getUser();
+ if (!user){
+ window.location = this.$router.resolve({name: "login"}).fullPath;
}
}
},
+ watch: {
+ // eslint-disable-next-line no-unused-vars
+ $route(to, from) {
+ this.menuOpened = false;
+ document.title = to.meta.title ? `${to.meta.title} | Сайт для вычислений` : 'Сайт для вычислений'
+ const description = document.querySelector('meta[name="description"]')
+ if (description) {
+ description.setAttribute("content", to.meta.description ? `${to.meta.description} | Сайт для вычислений` : 'Сайт для вычислений')
+ }
+ let loginRequired = to.loginRequired || false;
+ if (loginRequired){
+ this.checkLogin();
+ }
+ }
+ }
+
}
@@ -47,7 +60,7 @@ export default {
-
+
-
+
-
@@ -113,23 +126,25 @@ export default {
+ class="-mx-3 block rounded-lg px-3 py-2 text-base font-semibold leading-7 text-gray-900 hover:bg-gray-50">
Главная
+ class="-mx-3 block rounded-lg px-3 py-2 text-base font-semibold leading-7 text-gray-900 hover:bg-gray-50">
О портале
Кабинет
+ class="-mx-3 block rounded-lg px-3 py-2 text-base font-semibold leading-7 text-gray-900 hover:bg-gray-50">
+ Кабинет
+
+ :href="githubUrl" target="_blank">
GitHub
+ class="-mx-3 block rounded-lg px-3 py-2.5 text-base font-semibold leading-7 text-gray-900 hover:bg-gray-50">
Выйти
-
+
diff --git a/frontend/src/assets/css/activation.css b/frontend/src/assets/css/activation.css
index c459b42..71c5017 100644
--- a/frontend/src/assets/css/activation.css
+++ b/frontend/src/assets/css/activation.css
@@ -1,70 +1,64 @@
-/* Import Google font - Poppins */
-@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700&display=swap");
-* {
- margin: 0;
- padding: 0;
- box-sizing: border-box;
- font-family: "Poppins", sans-serif;
-}
-.container {
- background: #fff;
- padding: 10px;
- border-radius: 12px;
- row-gap: 20px;
- box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
-}
-.container header {
- height: 65px;
- width: 65px;
- background: #4070f4;
- color: #fff;
- font-size: 2.5rem;
- border-radius: 50%;
-}
-.container h4 {
- font-size: 1.25rem;
- color: #333;
- font-weight: 500;
-}
-form .input-field {
- flex-direction: row;
- column-gap: 10px;
-}
-.input-field input {
- height: 45px;
- width: 42px;
- border-radius: 6px;
- outline: none;
- font-size: 1.125rem;
- text-align: center;
- border: 1px solid #ddd;
-}
-.input-field input:focus {
- box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
-}
-.input-field input::-webkit-inner-spin-button,
-.input-field input::-webkit-outer-spin-button {
- display: none;
-}
-.activation-btn {
- margin-top: 25px;
- width: 100%;
- color: #fff;
- font-size: 1rem;
- border: none;
- padding: 9px 0;
- cursor: pointer;
- border-radius: 6px;
- background: #6e93f7;
- transition: all 0.2s ease;
-}
-.activation-btn.active {
- background: #4070f4;
-}
-.activation-btn:hover {
- background: #0e4bf1;
-}
-input[type="number"]{
- margin: 4px;
-}
+/*!* Import Google font - Poppins *!*/
+/*@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700&display=swap");*/
+/** {*/
+/* margin: 0;*/
+/* padding: 0;*/
+/* box-sizing: border-box;*/
+/* font-family: "Poppins", sans-serif;*/
+/*}*/
+
+/*.container header {*/
+/* height: 65px;*/
+/* width: 65px;*/
+/* background: #4070f4;*/
+/* color: #fff;*/
+/* font-size: 2.5rem;*/
+/* border-radius: 50%;*/
+/*}*/
+/*.container h4 {*/
+/* font-size: 1.25rem;*/
+/* color: #333;*/
+/* font-weight: 500;*/
+/*}*/
+/*form .input-field {*/
+/* flex-direction: row;*/
+/* column-gap: 10px;*/
+/*}*/
+/*.input-field input {*/
+/* height: 45px;*/
+/* width: 42px;*/
+/* border-radius: 6px;*/
+/* outline: none;*/
+/* font-size: 1.125rem;*/
+/* text-align: center;*/
+/* border: 1px solid #ddd;*/
+/*}*/
+/*.input-field input:focus {*/
+/* box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);*/
+/*}*/
+/*.input-field input::-webkit-inner-spin-button,*/
+/*.input-field input::-webkit-outer-spin-button {*/
+/* display: none;*/
+/*}*/
+/*.activation-btn {*/
+/* margin-top: 25px;*/
+/* width: 100%;*/
+/* color: #fff;*/
+/* font-size: 1rem;*/
+/* border: none;*/
+/* padding: 9px 0;*/
+/* cursor: pointer;*/
+/* border-radius: 6px;*/
+/* background: #6e93f7;*/
+/* transition: all 0.2s ease;*/
+/*}*/
+/*.activation-btn.active {*/
+/* background: #4070f4;*/
+/*}*/
+/*.activation-btn:hover {*/
+/* background: #0e4bf1;*/
+/*}*/
+/*input[type="number"]{*/
+/* margin: 4px;*/
+/*}*/
diff --git a/frontend/src/assets/css/global.css b/frontend/src/assets/css/global.css
index 53cbc11..4d9ec8e 100644
--- a/frontend/src/assets/css/global.css
+++ b/frontend/src/assets/css/global.css
@@ -9,7 +9,7 @@
}
.hero-title {
- margin: 0;
+ margin-left: 20px;
color: #fff;
font-weight: 600;
font-size: 50px;
@@ -18,18 +18,18 @@
letter-spacing: -.01em;
}
-.hero-text-container{
+.hero-text-container {
padding: 20px 20px 20px 20px;
}
-.hero-text-block{
+.hero-text-block {
color: #fff;
- margin-top: 1rem!important;
+ margin-top: 1rem !important;
text-align: left;
}
-.title{
+.title {
margin: 0;
font-weight: bold;
font-size: 32px;
@@ -42,29 +42,22 @@
color: whitesmoke;
}
-#app {
- font-family: Avenir, Helvetica, Arial, sans-serif;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- text-align: center;
- color: #2c3e50;
-}
-
+@media (max-width: 1100px)
-@media(max-width: 1100px)
-.science-card-wrapper{
- grid-template-columns: repeat(2,1fr);
+.science-card-wrapper {
+ grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 991px)
+
.science-card-wrapper {
grid-template-columns: 1fr;
row-gap: 8px;
}
-.science-card-wrapper{
+.science-card-wrapper {
display: grid;
grid-template-columns: 3fr 3fr;
-moz-column-gap: 24px;
@@ -72,102 +65,18 @@
row-gap: 32px;
}
-.science-card{
+.science-card {
display: flex;
gap: 24px;
}
-.science-card img{
+.science-card img {
width: 80px;
height: 80px;
border-radius: 8px;
}
-#faq {
- margin: 10px;
- text-align: center;
-}
-
-section.faq {
- padding-top: 2em;
- padding-bottom: 3em;
-}
-
-
-#faq h1 {
- color: #000;
- margin-bottom: 30px;
- margin-top: 0;
-}
-
-#faq h2 {
- color: #cc071e;
- font-family: 'hm_light', sans-serif;
- font-size: 20px;
- line-height: 34px;
- text-align: left;
- padding: 15px 15px 0;
- text-transform: none;
- font-weight: 300;
- letter-spacing: 1px;
- display: block;
- margin: 0;
- cursor: pointer;
- transition: .2s;
-}
-
-#faq p {
- color: #333;
- text-align: left;
- font-family: 'hm_light', sans-serif;
- font-size: 17px;
- line-height: 1.45;
- position: relative;
- overflow: hidden;
- max-height: 250px;
- will-change: max-height;
- contain: layout;
- display: inline-block;
- opacity: 1;
- transform: translate(0, 0);
- margin-top: 5px;
- margin-bottom: 15px;
- padding: 0 50px 0 15px;
- transition: .3s opacity, .6s max-height;
- hyphens: auto;
- z-index: 2;
-}
-
-
-* {
- box-sizing: border-box;
- margin: 0;
- padding: 0;
-}
-
-html, body {
- height: 100%;
-}
-
-a,
-a:visited,
-a:focus,
-a:active,
-a:link {
- text-decoration: none;
- outline: 0;
-}
-
-a {
- color: currentColor;
- transition: .2s ease-in-out;
-}
-
-h1, h2, h3, h4 {
- margin: .3em 0;
-}
-
.button-blue {
color: white;
margin: 20px;
@@ -200,6 +109,28 @@ h1, h2, h3, h4 {
margin: 10px
}
-footer{
- margin-top: 60px;
+footer {
+ flex-shrink: 0!important;;
+ margin: 25px 0;
+}
+
+
+#app {
+ display: flex!important;
+ flex-direction: column!important;;
+ min-height: 100vh!important;;
+}
+
+
+main {
+ flex-grow: 1!important;;
}
+
+.body-content {
+ padding-top: 1.25rem;
+ padding-left: 3.75rem;
+ padding-right: 3.75rem;
+}
+
+
+
diff --git a/frontend/src/assets/css/output.css b/frontend/src/assets/css/output.css
new file mode 100644
index 0000000..680f650
--- /dev/null
+++ b/frontend/src/assets/css/output.css
@@ -0,0 +1,3908 @@
+/*
+! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com
+*/
+
+/*
+1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
+2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
+*/
+
+*,
+::before,
+::after {
+ box-sizing: border-box;
+ /* 1 */
+ border-width: 0;
+ /* 2 */
+ border-style: solid;
+ /* 2 */
+ border-color: #e5e7eb;
+ /* 2 */
+}
+
+::before,
+::after {
+ --tw-content: '';
+}
+
+/*
+1. Use a consistent sensible line-height in all browsers.
+2. Prevent adjustments of font size after orientation changes in iOS.
+3. Use a more readable tab size.
+4. Use the user's configured `sans` font-family by default.
+5. Use the user's configured `sans` font-feature-settings by default.
+6. Use the user's configured `sans` font-variation-settings by default.
+7. Disable tap highlights on iOS
+*/
+
+html,
+:host {
+ line-height: 1.5;
+ /* 1 */
+ -webkit-text-size-adjust: 100%;
+ /* 2 */
+ -moz-tab-size: 4;
+ /* 3 */
+ -o-tab-size: 4;
+ tab-size: 4;
+ /* 3 */
+ font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+ /* 4 */
+ font-feature-settings: normal;
+ /* 5 */
+ font-variation-settings: normal;
+ /* 6 */
+ -webkit-tap-highlight-color: transparent;
+ /* 7 */
+}
+
+/*
+1. Remove the margin in all browsers.
+2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
+*/
+
+body {
+ margin: 0;
+ /* 1 */
+ line-height: inherit;
+ /* 2 */
+}
+
+/*
+1. Add the correct height in Firefox.
+2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
+3. Ensure horizontal rules are visible by default.
+*/
+
+hr {
+ height: 0;
+ /* 1 */
+ color: inherit;
+ /* 2 */
+ border-top-width: 1px;
+ /* 3 */
+}
+
+/*
+Add the correct text decoration in Chrome, Edge, and Safari.
+*/
+
+abbr:where([title]) {
+ -webkit-text-decoration: underline dotted;
+ text-decoration: underline dotted;
+}
+
+/*
+Remove the default font size and weight for headings.
+*/
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-size: inherit;
+ font-weight: inherit;
+}
+
+/*
+Reset links to optimize for opt-in styling instead of opt-out.
+*/
+
+a {
+ color: inherit;
+ text-decoration: inherit;
+}
+
+/*
+Add the correct font weight in Edge and Safari.
+*/
+
+b,
+strong {
+ font-weight: bolder;
+}
+
+/*
+1. Use the user's configured `mono` font-family by default.
+2. Use the user's configured `mono` font-feature-settings by default.
+3. Use the user's configured `mono` font-variation-settings by default.
+4. Correct the odd `em` font sizing in all browsers.
+*/
+
+code,
+kbd,
+samp,
+pre {
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+ /* 1 */
+ font-feature-settings: normal;
+ /* 2 */
+ font-variation-settings: normal;
+ /* 3 */
+ font-size: 1em;
+ /* 4 */
+}
+
+/*
+Add the correct font size in all browsers.
+*/
+
+small {
+ font-size: 80%;
+}
+
+/*
+Prevent `sub` and `sup` elements from affecting the line height in all browsers.
+*/
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+sup {
+ top: -0.5em;
+}
+
+/*
+1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
+2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
+3. Remove gaps between table borders by default.
+*/
+
+table {
+ text-indent: 0;
+ /* 1 */
+ border-color: inherit;
+ /* 2 */
+ border-collapse: collapse;
+ /* 3 */
+}
+
+/*
+1. Change the font styles in all browsers.
+2. Remove the margin in Firefox and Safari.
+3. Remove default padding in all browsers.
+*/
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ font-family: inherit;
+ /* 1 */
+ font-feature-settings: inherit;
+ /* 1 */
+ font-variation-settings: inherit;
+ /* 1 */
+ font-size: 100%;
+ /* 1 */
+ font-weight: inherit;
+ /* 1 */
+ line-height: inherit;
+ /* 1 */
+ color: inherit;
+ /* 1 */
+ margin: 0;
+ /* 2 */
+ padding: 0;
+ /* 3 */
+}
+
+/*
+Remove the inheritance of text transform in Edge and Firefox.
+*/
+
+button,
+select {
+ text-transform: none;
+}
+
+/*
+1. Correct the inability to style clickable types in iOS and Safari.
+2. Remove default button styles.
+*/
+
+button,
+[type='button'],
+[type='reset'],
+[type='submit'] {
+ -webkit-appearance: button;
+ /* 1 */
+ background-color: transparent;
+ /* 2 */
+ background-image: none;
+ /* 2 */
+}
+
+/*
+Use the modern Firefox focus style for all focusable elements.
+*/
+
+:-moz-focusring {
+ outline: auto;
+}
+
+/*
+Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
+*/
+
+:-moz-ui-invalid {
+ box-shadow: none;
+}
+
+/*
+Add the correct vertical alignment in Chrome and Firefox.
+*/
+
+progress {
+ vertical-align: baseline;
+}
+
+/*
+Correct the cursor style of increment and decrement buttons in Safari.
+*/
+
+::-webkit-inner-spin-button,
+::-webkit-outer-spin-button {
+ height: auto;
+}
+
+/*
+1. Correct the odd appearance in Chrome and Safari.
+2. Correct the outline style in Safari.
+*/
+
+[type='search'] {
+ -webkit-appearance: textfield;
+ /* 1 */
+ outline-offset: -2px;
+ /* 2 */
+}
+
+/*
+Remove the inner padding in Chrome and Safari on macOS.
+*/
+
+::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/*
+1. Correct the inability to style clickable types in iOS and Safari.
+2. Change font properties to `inherit` in Safari.
+*/
+
+::-webkit-file-upload-button {
+ -webkit-appearance: button;
+ /* 1 */
+ font: inherit;
+ /* 2 */
+}
+
+/*
+Add the correct display in Chrome and Safari.
+*/
+
+summary {
+ display: list-item;
+}
+
+/*
+Removes the default spacing and border for appropriate elements.
+*/
+
+blockquote,
+dl,
+dd,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+hr,
+figure,
+p,
+pre {
+ margin: 0;
+}
+
+fieldset {
+ margin: 0;
+ padding: 0;
+}
+
+legend {
+ padding: 0;
+}
+
+ol,
+ul,
+menu {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+/*
+Reset default styling for dialogs.
+*/
+
+dialog {
+ padding: 0;
+}
+
+/*
+Prevent resizing textareas horizontally by default.
+*/
+
+textarea {
+ resize: vertical;
+}
+
+/*
+1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
+2. Set the default placeholder color to the user's configured gray 400 color.
+*/
+
+input::-moz-placeholder, textarea::-moz-placeholder {
+ opacity: 1;
+ /* 1 */
+ color: #9ca3af;
+ /* 2 */
+}
+
+input::placeholder,
+textarea::placeholder {
+ opacity: 1;
+ /* 1 */
+ color: #9ca3af;
+ /* 2 */
+}
+
+/*
+Set the default cursor for buttons.
+*/
+
+button,
+[role="button"] {
+ cursor: pointer;
+}
+
+/*
+Make sure disabled buttons don't get the pointer cursor.
+*/
+
+:disabled {
+ cursor: default;
+}
+
+/*
+1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
+2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
+ This can trigger a poorly considered lint error in some tools but is included by design.
+*/
+
+img,
+svg,
+video,
+canvas,
+audio,
+iframe,
+embed,
+object {
+ display: block;
+ /* 1 */
+ vertical-align: middle;
+ /* 2 */
+}
+
+/*
+Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
+*/
+
+img,
+video {
+ max-width: 100%;
+ height: auto;
+}
+
+/* Make elements with the HTML hidden attribute stay hidden by default */
+
+[hidden] {
+ display: none;
+}
+
+*, ::before, ::after {
+ --tw-border-spacing-x: 0;
+ --tw-border-spacing-y: 0;
+ --tw-translate-x: 0;
+ --tw-translate-y: 0;
+ --tw-rotate: 0;
+ --tw-skew-x: 0;
+ --tw-skew-y: 0;
+ --tw-scale-x: 1;
+ --tw-scale-y: 1;
+ --tw-pan-x: ;
+ --tw-pan-y: ;
+ --tw-pinch-zoom: ;
+ --tw-scroll-snap-strictness: proximity;
+ --tw-gradient-from-position: ;
+ --tw-gradient-via-position: ;
+ --tw-gradient-to-position: ;
+ --tw-ordinal: ;
+ --tw-slashed-zero: ;
+ --tw-numeric-figure: ;
+ --tw-numeric-spacing: ;
+ --tw-numeric-fraction: ;
+ --tw-ring-inset: ;
+ --tw-ring-offset-width: 0px;
+ --tw-ring-offset-color: #fff;
+ --tw-ring-color: rgb(59 130 246 / 0.5);
+ --tw-ring-offset-shadow: 0 0 #0000;
+ --tw-ring-shadow: 0 0 #0000;
+ --tw-shadow: 0 0 #0000;
+ --tw-shadow-colored: 0 0 #0000;
+ --tw-blur: ;
+ --tw-brightness: ;
+ --tw-contrast: ;
+ --tw-grayscale: ;
+ --tw-hue-rotate: ;
+ --tw-invert: ;
+ --tw-saturate: ;
+ --tw-sepia: ;
+ --tw-drop-shadow: ;
+ --tw-backdrop-blur: ;
+ --tw-backdrop-brightness: ;
+ --tw-backdrop-contrast: ;
+ --tw-backdrop-grayscale: ;
+ --tw-backdrop-hue-rotate: ;
+ --tw-backdrop-invert: ;
+ --tw-backdrop-opacity: ;
+ --tw-backdrop-saturate: ;
+ --tw-backdrop-sepia: ;
+}
+
+::backdrop {
+ --tw-border-spacing-x: 0;
+ --tw-border-spacing-y: 0;
+ --tw-translate-x: 0;
+ --tw-translate-y: 0;
+ --tw-rotate: 0;
+ --tw-skew-x: 0;
+ --tw-skew-y: 0;
+ --tw-scale-x: 1;
+ --tw-scale-y: 1;
+ --tw-pan-x: ;
+ --tw-pan-y: ;
+ --tw-pinch-zoom: ;
+ --tw-scroll-snap-strictness: proximity;
+ --tw-gradient-from-position: ;
+ --tw-gradient-via-position: ;
+ --tw-gradient-to-position: ;
+ --tw-ordinal: ;
+ --tw-slashed-zero: ;
+ --tw-numeric-figure: ;
+ --tw-numeric-spacing: ;
+ --tw-numeric-fraction: ;
+ --tw-ring-inset: ;
+ --tw-ring-offset-width: 0px;
+ --tw-ring-offset-color: #fff;
+ --tw-ring-color: rgb(59 130 246 / 0.5);
+ --tw-ring-offset-shadow: 0 0 #0000;
+ --tw-ring-shadow: 0 0 #0000;
+ --tw-shadow: 0 0 #0000;
+ --tw-shadow-colored: 0 0 #0000;
+ --tw-blur: ;
+ --tw-brightness: ;
+ --tw-contrast: ;
+ --tw-grayscale: ;
+ --tw-hue-rotate: ;
+ --tw-invert: ;
+ --tw-saturate: ;
+ --tw-sepia: ;
+ --tw-drop-shadow: ;
+ --tw-backdrop-blur: ;
+ --tw-backdrop-brightness: ;
+ --tw-backdrop-contrast: ;
+ --tw-backdrop-grayscale: ;
+ --tw-backdrop-hue-rotate: ;
+ --tw-backdrop-invert: ;
+ --tw-backdrop-opacity: ;
+ --tw-backdrop-saturate: ;
+ --tw-backdrop-sepia: ;
+}
+*, ::before, ::after { box-sizing: border-box; border-width: 0px; border-style: solid; border-color: rgb(229, 231, 235); }
+::before, ::after { --tw-content: ""; }
+html, :host { line-height: 1.5; text-size-adjust: 100%; tab-size: 4; font-family: "Inter var", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-feature-settings: "cv02", "cv03", "cv04", "cv11"; font-variation-settings: normal; -webkit-tap-highlight-color: transparent; }
+body { margin: 0px; line-height: inherit; }
+hr { height: 0px; color: inherit; border-top-width: 1px; }
+abbr:where([title]) { text-decoration: underline dotted; }
+h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; }
+a { color: inherit; text-decoration: inherit; }
+b, strong { font-weight: bolder; }
+code, kbd, samp, pre { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-feature-settings: normal; font-variation-settings: normal; font-size: 1em; }
+small { font-size: 80%; }
+sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
+sub { bottom: -0.25em; }
+sup { top: -0.5em; }
+table { text-indent: 0px; border-color: inherit; border-collapse: collapse; }
+button, input, optgroup, select, textarea { font-family: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-size: 100%; font-weight: inherit; line-height: inherit; color: inherit; margin: 0px; padding: 0px; }
+button, select { text-transform: none; }
+button, [type="button"], [type="reset"], [type="submit"] { appearance: button; background-color: transparent; background-image: none; }
+progress { vertical-align: baseline; }
+::-webkit-inner-spin-button, ::-webkit-outer-spin-button { height: auto; }
+[type="search"] { appearance: textfield; outline-offset: -2px; }
+::-webkit-search-decoration { appearance: none; }
+::-webkit-file-upload-button { appearance: button; font: inherit; }
+summary { display: list-item; }
+blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre { margin: 0px; }
+fieldset { margin: 0px; padding: 0px; }
+legend { padding: 0px; }
+ol, ul, menu { list-style: none; margin: 0px; padding: 0px; }
+dialog { padding: 0px; }
+textarea { resize: vertical; }
+input::placeholder, textarea::placeholder { opacity: 1; color: rgb(156, 163, 175); }
+button, [role="button"] { cursor: pointer; }
+:disabled { cursor: default; }
+img, svg, video, canvas, audio, iframe, embed, object { display: block; vertical-align: middle; }
+img, video { max-width: 100%; height: auto; }
+[hidden] { display: none; }
+[type="text"], input:where(:not([type])), [type="email"], [type="url"], [type="password"], [type="number"], [type="date"], [type="datetime-local"], [type="month"], [type="search"], [type="tel"], [type="time"], [type="week"], [multiple], textarea, select { appearance: none; background-color: rgb(255, 255, 255); border-color: rgb(107, 114, 128); border-width: 1px; border-radius: 0px; padding: 0.5rem 0.75rem; font-size: 1rem; line-height: 1.5rem; --tw-shadow: 0 0 #0000; }
+[type="text"]:focus, input:where(:not([type])):focus, [type="email"]:focus, [type="url"]:focus, [type="password"]:focus, [type="number"]:focus, [type="date"]:focus, [type="datetime-local"]:focus, [type="month"]:focus, [type="search"]:focus, [type="tel"]:focus, [type="time"]:focus, [type="week"]:focus, [multiple]:focus, textarea:focus, select:focus { outline: transparent solid 2px; outline-offset: 2px; --tw-ring-inset: var(--tw-empty, ); --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: #2563eb; --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); border-color: rgb(37, 99, 235); }
+input::placeholder, textarea::placeholder { color: rgb(107, 114, 128); opacity: 1; }
+::-webkit-datetime-edit-fields-wrapper { padding: 0px; }
+::-webkit-date-and-time-value { min-height: 1.5em; text-align: inherit; }
+::-webkit-datetime-edit { display: inline-flex; }
+::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field { padding-top: 0px; padding-bottom: 0px; }
+select { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e"); background-position: right 0.5rem center; background-repeat: no-repeat; background-size: 1.5em 1.5em; padding-right: 2.5rem; -webkit-print-color-adjust: exact; }
+[multiple], [size]:where(select:not([size="1"])) { background-image: initial; background-position: initial; background-repeat: unset; background-size: initial; padding-right: 0.75rem; -webkit-print-color-adjust: unset; }
+[type="checkbox"], [type="radio"] { appearance: none; padding: 0px; -webkit-print-color-adjust: exact; display: inline-block; vertical-align: middle; background-origin: border-box; user-select: none; flex-shrink: 0; height: 1rem; width: 1rem; color: rgb(37, 99, 235); background-color: rgb(255, 255, 255); border-color: rgb(107, 114, 128); border-width: 1px; --tw-shadow: 0 0 #0000; }
+[type="checkbox"] { border-radius: 0px; }
+[type="radio"] { border-radius: 100%; }
+[type="checkbox"]:focus, [type="radio"]:focus { outline: transparent solid 2px; outline-offset: 2px; --tw-ring-inset: var(--tw-empty, ); --tw-ring-offset-width: 2px; --tw-ring-offset-color: #fff; --tw-ring-color: #2563eb; --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); }
+[type="checkbox"]:checked, [type="radio"]:checked { border-color: transparent; background-color: currentcolor; background-size: 100% 100%; background-position: center center; background-repeat: no-repeat; }
+[type="checkbox"]:checked { background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e"); }
+@media (forced-colors: active) {
+ [type="checkbox"]:checked { appearance: auto; }
+}
+[type="radio"]:checked { background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e"); }
+@media (forced-colors: active) {
+ [type="radio"]:checked { appearance: auto; }
+}
+[type="checkbox"]:checked:hover, [type="checkbox"]:checked:focus, [type="radio"]:checked:hover, [type="radio"]:checked:focus { border-color: transparent; background-color: currentcolor; }
+[type="checkbox"]:indeterminate { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e"); border-color: transparent; background-color: currentcolor; background-size: 100% 100%; background-position: center center; background-repeat: no-repeat; }
+@media (forced-colors: active) {
+ [type="checkbox"]:indeterminate { appearance: auto; }
+}
+[type="checkbox"]:indeterminate:hover, [type="checkbox"]:indeterminate:focus { border-color: transparent; background-color: currentcolor; }
+[type="file"] { background: unset; border-color: inherit; border-width: 0px; border-radius: 0px; padding: 0px; font-size: unset; line-height: inherit; }
+[type="file"]:focus { outline: -webkit-focus-ring-color auto 1px; }
+*, ::before, ::after { --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; }
+::backdrop { --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; }
+html { font-feature-settings: "cv03", "cv04", "cv11"; }
+body { overflow: hidden; --tw-bg-opacity: 1; background-color: rgb(229 231 235 / var(--tw-bg-opacity)); font-family: "Inter var", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-feature-settings: "cv02", "cv03", "cv04", "cv11"; -webkit-font-smoothing: antialiased; }
+.container { width: 100%; }
+@media (min-width: 640px) {
+ .container { max-width: 640px; }
+}
+@media (min-width: 768px) {
+ .container { max-width: 768px; }
+}
+@media (min-width: 1024px) {
+ .container { max-width: 1024px; }
+}
+@media (min-width: 1280px) {
+ .container { max-width: 1280px; }
+}
+@media (min-width: 1536px) {
+ .container { max-width: 1536px; }
+}
+.aspect-h-1 { --tw-aspect-h: 1; }
+.aspect-h-2 { --tw-aspect-h: 2; }
+.aspect-h-3 { --tw-aspect-h: 3; }
+.aspect-h-4 { --tw-aspect-h: 4; }
+.aspect-h-5 { --tw-aspect-h: 5; }
+.aspect-h-6 { --tw-aspect-h: 6; }
+.aspect-h-7 { --tw-aspect-h: 7; }
+.aspect-w-1 { position: relative; padding-bottom: calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%); --tw-aspect-w: 1; }
+.aspect-w-1 > * { position: absolute; height: 100%; width: 100%; inset: 0px; }
+.aspect-w-10 { position: relative; padding-bottom: calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%); --tw-aspect-w: 10; }
+.aspect-w-10 > * { position: absolute; height: 100%; width: 100%; inset: 0px; }
+.aspect-w-12 { position: relative; padding-bottom: calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%); --tw-aspect-w: 12; }
+.aspect-w-12 > * { position: absolute; height: 100%; width: 100%; inset: 0px; }
+.aspect-w-2 { position: relative; padding-bottom: calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%); --tw-aspect-w: 2; }
+.aspect-w-2 > * { position: absolute; height: 100%; width: 100%; inset: 0px; }
+.aspect-w-3 { position: relative; padding-bottom: calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%); --tw-aspect-w: 3; }
+.aspect-w-3 > * { position: absolute; height: 100%; width: 100%; inset: 0px; }
+.aspect-w-4 { position: relative; padding-bottom: calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%); --tw-aspect-w: 4; }
+.aspect-w-4 > * { position: absolute; height: 100%; width: 100%; inset: 0px; }
+.aspect-w-5 { position: relative; padding-bottom: calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%); --tw-aspect-w: 5; }
+.aspect-w-5 > * { position: absolute; height: 100%; width: 100%; inset: 0px; }
+.prose { color: var(--tw-prose-body); max-width: 65ch; }
+.prose :where([class~="lead"]):not(:where([class~="not-prose"] *)) { color: var(--tw-prose-lead); font-size: 1.25em; line-height: 1.6; margin-top: 1.2em; margin-bottom: 1.2em; }
+.prose :where(a):not(:where([class~="not-prose"] *)) { color: var(--tw-prose-links); text-decoration: underline; font-weight: 500; }
+.prose :where(strong):not(:where([class~="not-prose"] *)) { color: var(--tw-prose-bold); font-weight: 600; }
+.prose :where(ol):not(:where([class~="not-prose"] *)) { list-style-type: decimal; padding-left: 1.625em; }
+.prose :where(ol[type="A"]):not(:where([class~="not-prose"] *)) { list-style-type: upper-alpha; }
+.prose :where(ol[type="a"]):not(:where([class~="not-prose"] *)) { list-style-type: lower-alpha; }
+.prose :where():not(:where([class~="not-prose"] *)) { list-style-type: upper-alpha; }
+.prose :where():not(:where([class~="not-prose"] *)) { list-style-type: lower-alpha; }
+.prose :where(ol[type="I"]):not(:where([class~="not-prose"] *)) { list-style-type: upper-roman; }
+.prose :where(ol[type="i"]):not(:where([class~="not-prose"] *)) { list-style-type: lower-roman; }
+.prose :where():not(:where([class~="not-prose"] *)) { list-style-type: upper-roman; }
+.prose :where():not(:where([class~="not-prose"] *)) { list-style-type: lower-roman; }
+.prose :where(ol[type="1"]):not(:where([class~="not-prose"] *)) { list-style-type: decimal; }
+.prose :where(ul):not(:where([class~="not-prose"] *)) { list-style-type: disc; padding-left: 1.625em; }
+.prose :where(ol > li):not(:where([class~="not-prose"] *))::marker { font-weight: 400; color: var(--tw-prose-counters); }
+.prose :where(ul > li):not(:where([class~="not-prose"] *))::marker { color: var(--tw-prose-bullets); }
+.prose :where(hr):not(:where([class~="not-prose"] *)) { border-color: var(--tw-prose-hr); border-top-width: 1px; margin-top: 3em; margin-bottom: 3em; }
+.prose :where(blockquote):not(:where([class~="not-prose"] *)) { font-weight: 500; font-style: italic; color: var(--tw-prose-quotes); border-left-width: 0.25rem; border-left-color: var(--tw-prose-quote-borders); quotes: "“" "”" "‘" "’"; margin-top: 1.6em; margin-bottom: 1.6em; padding-left: 1em; }
+.prose :where(blockquote p:first-of-type):not(:where([class~="not-prose"] *))::before { content: open-quote; }
+.prose :where(blockquote p:last-of-type):not(:where([class~="not-prose"] *))::after { content: close-quote; }
+.prose :where(h1):not(:where([class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 800; font-size: 2.25em; margin-top: 0px; margin-bottom: 0.888889em; line-height: 1.11111; }
+.prose :where(h1 strong):not(:where([class~="not-prose"] *)) { font-weight: 900; }
+.prose :where(h2):not(:where([class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 700; font-size: 1.5em; margin-top: 2em; margin-bottom: 1em; line-height: 1.33333; }
+.prose :where(h2 strong):not(:where([class~="not-prose"] *)) { font-weight: 800; }
+.prose :where(h3):not(:where([class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 600; font-size: 1.25em; margin-top: 1.6em; margin-bottom: 0.6em; line-height: 1.6; }
+.prose :where(h3 strong):not(:where([class~="not-prose"] *)) { font-weight: 700; }
+.prose :where(h4):not(:where([class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 600; margin-top: 1.5em; margin-bottom: 0.5em; line-height: 1.5; }
+.prose :where(h4 strong):not(:where([class~="not-prose"] *)) { font-weight: 700; }
+.prose :where(figure > *):not(:where([class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0px; }
+.prose :where(figcaption):not(:where([class~="not-prose"] *)) { color: var(--tw-prose-captions); font-size: 0.875em; line-height: 1.42857; margin-top: 0.857143em; }
+.prose :where(code):not(:where([class~="not-prose"] *)) { color: var(--tw-prose-code); font-weight: 600; font-size: 0.875em; }
+.prose :where(code):not(:where([class~="not-prose"] *))::before { content: "`"; }
+.prose :where(code):not(:where([class~="not-prose"] *))::after { content: "`"; }
+.prose :where(a code):not(:where([class~="not-prose"] *)) { color: var(--tw-prose-links); }
+.prose :where(pre):not(:where([class~="not-prose"] *)) { color: var(--tw-prose-pre-code); background-color: var(--tw-prose-pre-bg); overflow-x: auto; font-weight: 400; font-size: 0.875em; line-height: 1.71429; margin-top: 1.71429em; margin-bottom: 1.71429em; border-radius: 0.375rem; padding: 0.857143em 1.14286em; }
+.prose :where(pre code):not(:where([class~="not-prose"] *)) { background-color: transparent; border-width: 0px; border-radius: 0px; padding: 0px; font-weight: inherit; color: inherit; font-size: inherit; font-family: inherit; line-height: inherit; }
+.prose :where(pre code):not(:where([class~="not-prose"] *))::before { content: none; }
+.prose :where(pre code):not(:where([class~="not-prose"] *))::after { content: none; }
+.prose :where(table):not(:where([class~="not-prose"] *)) { width: 100%; table-layout: auto; text-align: left; margin-top: 2em; margin-bottom: 2em; font-size: 0.875em; line-height: 1.71429; }
+.prose :where(thead):not(:where([class~="not-prose"] *)) { border-bottom-width: 1px; border-bottom-color: var(--tw-prose-th-borders); }
+.prose :where(thead th):not(:where([class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 600; vertical-align: bottom; padding-right: 0.571429em; padding-bottom: 0.571429em; padding-left: 0.571429em; }
+.prose :where(tbody tr):not(:where([class~="not-prose"] *)) { border-bottom-width: 1px; border-bottom-color: var(--tw-prose-td-borders); }
+.prose :where(tbody tr:last-child):not(:where([class~="not-prose"] *)) { border-bottom-width: 0px; }
+.prose :where(tbody td):not(:where([class~="not-prose"] *)) { vertical-align: baseline; padding: 0.571429em; }
+.prose { --tw-prose-body: #374151; --tw-prose-headings: #111827; --tw-prose-lead: #4b5563; --tw-prose-links: #111827; --tw-prose-bold: #111827; --tw-prose-counters: #6b7280; --tw-prose-bullets: #d1d5db; --tw-prose-hr: #e5e7eb; --tw-prose-quotes: #111827; --tw-prose-quote-borders: #e5e7eb; --tw-prose-captions: #6b7280; --tw-prose-code: #111827; --tw-prose-pre-code: #e5e7eb; --tw-prose-pre-bg: #1f2937; --tw-prose-th-borders: #d1d5db; --tw-prose-td-borders: #e5e7eb; --tw-prose-invert-body: #d1d5db; --tw-prose-invert-headings: #fff; --tw-prose-invert-lead: #9ca3af; --tw-prose-invert-links: #fff; --tw-prose-invert-bold: #fff; --tw-prose-invert-counters: #9ca3af; --tw-prose-invert-bullets: #4b5563; --tw-prose-invert-hr: #374151; --tw-prose-invert-quotes: #f3f4f6; --tw-prose-invert-quote-borders: #374151; --tw-prose-invert-captions: #9ca3af; --tw-prose-invert-code: #fff; --tw-prose-invert-pre-code: #d1d5db; --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%); --tw-prose-invert-th-borders: #4b5563; --tw-prose-invert-td-borders: #374151; font-size: 1rem; line-height: 1.75; }
+.prose :where(p):not(:where([class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; }
+.prose :where(img):not(:where([class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; }
+.prose :where(video):not(:where([class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; }
+.prose :where(figure):not(:where([class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; }
+.prose :where(h2 code):not(:where([class~="not-prose"] *)) { font-size: 0.875em; }
+.prose :where(h3 code):not(:where([class~="not-prose"] *)) { font-size: 0.9em; }
+.prose :where(li):not(:where([class~="not-prose"] *)) { margin-top: 0.5em; margin-bottom: 0.5em; }
+.prose :where(ol > li):not(:where([class~="not-prose"] *)) { padding-left: 0.375em; }
+.prose :where(ul > li):not(:where([class~="not-prose"] *)) { padding-left: 0.375em; }
+.prose > :where(ul > li p):not(:where([class~="not-prose"] *)) { margin-top: 0.75em; margin-bottom: 0.75em; }
+.prose > :where(ul > li > :first-child):not(:where([class~="not-prose"] *)) { margin-top: 1.25em; }
+.prose > :where(ul > li > :last-child):not(:where([class~="not-prose"] *)) { margin-bottom: 1.25em; }
+.prose > :where(ol > li > :first-child):not(:where([class~="not-prose"] *)) { margin-top: 1.25em; }
+.prose > :where(ol > li > :last-child):not(:where([class~="not-prose"] *)) { margin-bottom: 1.25em; }
+.prose :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"] *)) { margin-top: 0.75em; margin-bottom: 0.75em; }
+.prose :where(hr + *):not(:where([class~="not-prose"] *)) { margin-top: 0px; }
+.prose :where(h2 + *):not(:where([class~="not-prose"] *)) { margin-top: 0px; }
+.prose :where(h3 + *):not(:where([class~="not-prose"] *)) { margin-top: 0px; }
+.prose :where(h4 + *):not(:where([class~="not-prose"] *)) { margin-top: 0px; }
+.prose :where(thead th:first-child):not(:where([class~="not-prose"] *)) { padding-left: 0px; }
+.prose :where(thead th:last-child):not(:where([class~="not-prose"] *)) { padding-right: 0px; }
+.prose :where(tbody td:first-child):not(:where([class~="not-prose"] *)) { padding-left: 0px; }
+.prose :where(tbody td:last-child):not(:where([class~="not-prose"] *)) { padding-right: 0px; }
+.prose > :where(:first-child):not(:where([class~="not-prose"] *)) { margin-top: 0px; }
+.prose > :where(:last-child):not(:where([class~="not-prose"] *)) { margin-bottom: 0px; }
+.prose-sm { font-size: 0.875rem; line-height: 1.71429; }
+.prose-sm :where(p):not(:where([class~="not-prose"] *)) { margin-top: 1.14286em; margin-bottom: 1.14286em; }
+.prose-sm :where([class~="lead"]):not(:where([class~="not-prose"] *)) { font-size: 1.28571em; line-height: 1.55556; margin-top: 0.888889em; margin-bottom: 0.888889em; }
+.prose-sm :where(blockquote):not(:where([class~="not-prose"] *)) { margin-top: 1.33333em; margin-bottom: 1.33333em; padding-left: 1.11111em; }
+.prose-sm :where(h1):not(:where([class~="not-prose"] *)) { font-size: 2.14286em; margin-top: 0px; margin-bottom: 0.8em; line-height: 1.2; }
+.prose-sm :where(h2):not(:where([class~="not-prose"] *)) { font-size: 1.42857em; margin-top: 1.6em; margin-bottom: 0.8em; line-height: 1.4; }
+.prose-sm :where(h3):not(:where([class~="not-prose"] *)) { font-size: 1.28571em; margin-top: 1.55556em; margin-bottom: 0.444444em; line-height: 1.55556; }
+.prose-sm :where(h4):not(:where([class~="not-prose"] *)) { margin-top: 1.42857em; margin-bottom: 0.571429em; line-height: 1.42857; }
+.prose-sm :where(img):not(:where([class~="not-prose"] *)) { margin-top: 1.71429em; margin-bottom: 1.71429em; }
+.prose-sm :where(video):not(:where([class~="not-prose"] *)) { margin-top: 1.71429em; margin-bottom: 1.71429em; }
+.prose-sm :where(figure):not(:where([class~="not-prose"] *)) { margin-top: 1.71429em; margin-bottom: 1.71429em; }
+.prose-sm :where(figure > *):not(:where([class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0px; }
+.prose-sm :where(figcaption):not(:where([class~="not-prose"] *)) { font-size: 0.857143em; line-height: 1.33333; margin-top: 0.666667em; }
+.prose-sm :where(code):not(:where([class~="not-prose"] *)) { font-size: 0.857143em; }
+.prose-sm :where(h2 code):not(:where([class~="not-prose"] *)) { font-size: 0.9em; }
+.prose-sm :where(h3 code):not(:where([class~="not-prose"] *)) { font-size: 0.888889em; }
+.prose-sm :where(pre):not(:where([class~="not-prose"] *)) { font-size: 0.857143em; line-height: 1.66667; margin-top: 1.66667em; margin-bottom: 1.66667em; border-radius: 0.25rem; padding: 0.666667em 1em; }
+.prose-sm :where(ol):not(:where([class~="not-prose"] *)) { padding-left: 1.57143em; }
+.prose-sm :where(ul):not(:where([class~="not-prose"] *)) { padding-left: 1.57143em; }
+.prose-sm :where(li):not(:where([class~="not-prose"] *)) { margin-top: 0.285714em; margin-bottom: 0.285714em; }
+.prose-sm :where(ol > li):not(:where([class~="not-prose"] *)) { padding-left: 0.428571em; }
+.prose-sm :where(ul > li):not(:where([class~="not-prose"] *)) { padding-left: 0.428571em; }
+.prose-sm > :where(ul > li p):not(:where([class~="not-prose"] *)) { margin-top: 0.571429em; margin-bottom: 0.571429em; }
+.prose-sm > :where(ul > li > :first-child):not(:where([class~="not-prose"] *)) { margin-top: 1.14286em; }
+.prose-sm > :where(ul > li > :last-child):not(:where([class~="not-prose"] *)) { margin-bottom: 1.14286em; }
+.prose-sm > :where(ol > li > :first-child):not(:where([class~="not-prose"] *)) { margin-top: 1.14286em; }
+.prose-sm > :where(ol > li > :last-child):not(:where([class~="not-prose"] *)) { margin-bottom: 1.14286em; }
+.prose-sm :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"] *)) { margin-top: 0.571429em; margin-bottom: 0.571429em; }
+.prose-sm :where(hr):not(:where([class~="not-prose"] *)) { margin-top: 2.85714em; margin-bottom: 2.85714em; }
+.prose-sm :where(hr + *):not(:where([class~="not-prose"] *)) { margin-top: 0px; }
+.prose-sm :where(h2 + *):not(:where([class~="not-prose"] *)) { margin-top: 0px; }
+.prose-sm :where(h3 + *):not(:where([class~="not-prose"] *)) { margin-top: 0px; }
+.prose-sm :where(h4 + *):not(:where([class~="not-prose"] *)) { margin-top: 0px; }
+.prose-sm :where(table):not(:where([class~="not-prose"] *)) { font-size: 0.857143em; line-height: 1.5; }
+.prose-sm :where(thead th):not(:where([class~="not-prose"] *)) { padding-right: 1em; padding-bottom: 0.666667em; padding-left: 1em; }
+.prose-sm :where(thead th:first-child):not(:where([class~="not-prose"] *)) { padding-left: 0px; }
+.prose-sm :where(thead th:last-child):not(:where([class~="not-prose"] *)) { padding-right: 0px; }
+.prose-sm :where(tbody td):not(:where([class~="not-prose"] *)) { padding: 0.666667em 1em; }
+.prose-sm :where(tbody td:first-child):not(:where([class~="not-prose"] *)) { padding-left: 0px; }
+.prose-sm :where(tbody td:last-child):not(:where([class~="not-prose"] *)) { padding-right: 0px; }
+.prose-sm > :where(:first-child):not(:where([class~="not-prose"] *)) { margin-top: 0px; }
+.prose-sm > :where(:last-child):not(:where([class~="not-prose"] *)) { margin-bottom: 0px; }
+.prose-lg { font-size: 1.125rem; line-height: 1.77778; }
+.prose-lg :where(p):not(:where([class~="not-prose"] *)) { margin-top: 1.33333em; margin-bottom: 1.33333em; }
+.prose-lg :where([class~="lead"]):not(:where([class~="not-prose"] *)) { font-size: 1.22222em; line-height: 1.45455; margin-top: 1.09091em; margin-bottom: 1.09091em; }
+.prose-lg :where(blockquote):not(:where([class~="not-prose"] *)) { margin-top: 1.66667em; margin-bottom: 1.66667em; padding-left: 1em; }
+.prose-lg :where(h1):not(:where([class~="not-prose"] *)) { font-size: 2.66667em; margin-top: 0px; margin-bottom: 0.833333em; line-height: 1; }
+.prose-lg :where(h2):not(:where([class~="not-prose"] *)) { font-size: 1.66667em; margin-top: 1.86667em; margin-bottom: 1.06667em; line-height: 1.33333; }
+.prose-lg :where(h3):not(:where([class~="not-prose"] *)) { font-size: 1.33333em; margin-top: 1.66667em; margin-bottom: 0.666667em; line-height: 1.5; }
+.prose-lg :where(h4):not(:where([class~="not-prose"] *)) { margin-top: 1.77778em; margin-bottom: 0.444444em; line-height: 1.55556; }
+.prose-lg :where(img):not(:where([class~="not-prose"] *)) { margin-top: 1.77778em; margin-bottom: 1.77778em; }
+.prose-lg :where(video):not(:where([class~="not-prose"] *)) { margin-top: 1.77778em; margin-bottom: 1.77778em; }
+.prose-lg :where(figure):not(:where([class~="not-prose"] *)) { margin-top: 1.77778em; margin-bottom: 1.77778em; }
+.prose-lg :where(figure > *):not(:where([class~="not-prose"] *)) { margin-top: 0px; margin-bottom: 0px; }
+.prose-lg :where(figcaption):not(:where([class~="not-prose"] *)) { font-size: 0.888889em; line-height: 1.5; margin-top: 1em; }
+.prose-lg :where(code):not(:where([class~="not-prose"] *)) { font-size: 0.888889em; }
+.prose-lg :where(h2 code):not(:where([class~="not-prose"] *)) { font-size: 0.866667em; }
+.prose-lg :where(h3 code):not(:where([class~="not-prose"] *)) { font-size: 0.875em; }
+.prose-lg :where(pre):not(:where([class~="not-prose"] *)) { font-size: 0.888889em; line-height: 1.75; margin-top: 2em; margin-bottom: 2em; border-radius: 0.375rem; padding: 1em 1.5em; }
+.prose-lg :where(ol):not(:where([class~="not-prose"] *)) { padding-left: 1.55556em; }
+.prose-lg :where(ul):not(:where([class~="not-prose"] *)) { padding-left: 1.55556em; }
+.prose-lg :where(li):not(:where([class~="not-prose"] *)) { margin-top: 0.666667em; margin-bottom: 0.666667em; }
+.prose-lg :where(ol > li):not(:where([class~="not-prose"] *)) { padding-left: 0.444444em; }
+.prose-lg :where(ul > li):not(:where([class~="not-prose"] *)) { padding-left: 0.444444em; }
+.prose-lg > :where(ul > li p):not(:where([class~="not-prose"] *)) { margin-top: 0.888889em; margin-bottom: 0.888889em; }
+.prose-lg > :where(ul > li > :first-child):not(:where([class~="not-prose"] *)) { margin-top: 1.33333em; }
+.prose-lg > :where(ul > li > :last-child):not(:where([class~="not-prose"] *)) { margin-bottom: 1.33333em; }
+.prose-lg > :where(ol > li > :first-child):not(:where([class~="not-prose"] *)) { margin-top: 1.33333em; }
+.prose-lg > :where(ol > li > :last-child):not(:where([class~="not-prose"] *)) { margin-bottom: 1.33333em; }
+.prose-lg :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"] *)) { margin-top: 0.888889em; margin-bottom: 0.888889em; }
+.prose-lg :where(hr):not(:where([class~="not-prose"] *)) { margin-top: 3.11111em; margin-bottom: 3.11111em; }
+.prose-lg :where(hr + *):not(:where([class~="not-prose"] *)) { margin-top: 0px; }
+.prose-lg :where(h2 + *):not(:where([class~="not-prose"] *)) { margin-top: 0px; }
+.prose-lg :where(h3 + *):not(:where([class~="not-prose"] *)) { margin-top: 0px; }
+.prose-lg :where(h4 + *):not(:where([class~="not-prose"] *)) { margin-top: 0px; }
+.prose-lg :where(table):not(:where([class~="not-prose"] *)) { font-size: 0.888889em; line-height: 1.5; }
+.prose-lg :where(thead th):not(:where([class~="not-prose"] *)) { padding-right: 0.75em; padding-bottom: 0.75em; padding-left: 0.75em; }
+.prose-lg :where(thead th:first-child):not(:where([class~="not-prose"] *)) { padding-left: 0px; }
+.prose-lg :where(thead th:last-child):not(:where([class~="not-prose"] *)) { padding-right: 0px; }
+.prose-lg :where(tbody td):not(:where([class~="not-prose"] *)) { padding: 0.75em; }
+.prose-lg :where(tbody td:first-child):not(:where([class~="not-prose"] *)) { padding-left: 0px; }
+.prose-lg :where(tbody td:last-child):not(:where([class~="not-prose"] *)) { padding-right: 0px; }
+.prose-lg > :where(:first-child):not(:where([class~="not-prose"] *)) { margin-top: 0px; }
+.prose-lg > :where(:last-child):not(:where([class~="not-prose"] *)) { margin-bottom: 0px; }
+.prose-indigo { --tw-prose-links: #4f46e5; --tw-prose-invert-links: #6366f1; }
+.sr-only { position: absolute; width: 1px; height: 1px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border-width: 0px; }
+.pointer-events-none { pointer-events: none; }
+.pointer-events-auto { pointer-events: auto; }
+.visible { visibility: visible; }
+.invisible { visibility: hidden; }
+.static { position: static; }
+.fixed { position: fixed; }
+.absolute { position: absolute; }
+.relative { position: relative; }
+.sticky { position: sticky; }
+.-inset-0 { inset: 0px; }
+.-inset-0\.5 { inset: -0.125rem; }
+.-inset-1 { inset: -0.25rem; }
+.-inset-1\.5 { inset: -0.375rem; }
+.-inset-2 { inset: -0.5rem; }
+.-inset-2\.5 { inset: -0.625rem; }
+.-inset-px { inset: -1px; }
+.inset-0 { inset: 0px; }
+.inset-1 { inset: 0.25rem; }
+.-inset-x-20 { left: -5rem; right: -5rem; }
+.-inset-y-px { top: -1px; bottom: -1px; }
+.inset-x-0 { left: 0px; right: 0px; }
+.inset-x-4 { left: 1rem; right: 1rem; }
+.inset-x-8 { left: 2rem; right: 2rem; }
+.inset-x-px { left: 1px; right: 1px; }
+.inset-y-0 { top: 0px; bottom: 0px; }
+.-bottom-0 { bottom: 0px; }
+.-bottom-0\.5 { bottom: -0.125rem; }
+.-bottom-24 { bottom: -6rem; }
+.-bottom-48 { bottom: -12rem; }
+.-bottom-6 { bottom: -1.5rem; }
+.-bottom-8 { bottom: -2rem; }
+.-bottom-px { bottom: -1px; }
+.-left-1 { left: -0.25rem; }
+.-left-1\.5 { left: -0.375rem; }
+.-left-2 { left: -0.5rem; }
+.-left-3 { left: -0.75rem; }
+.-left-40 { left: -10rem; }
+.-left-56 { left: -14rem; }
+.-left-8 { left: -2rem; }
+.-left-80 { left: -20rem; }
+.-left-96 { left: -24rem; }
+.-right-1 { right: -0.25rem; }
+.-right-1\.5 { right: -0.375rem; }
+.-right-14 { right: -3.5rem; }
+.-right-2 { right: -0.5rem; }
+.-top-1 { top: -0.25rem; }
+.-top-10 { top: -2.5rem; }
+.-top-12 { top: -3rem; }
+.-top-16 { top: -4rem; }
+.-top-2 { top: -0.5rem; }
+.-top-24 { top: -6rem; }
+.-top-3 { top: -0.75rem; }
+.-top-32 { top: -8rem; }
+.-top-4 { top: -1rem; }
+.-top-40 { top: -10rem; }
+.-top-52 { top: -13rem; }
+.-top-56 { top: -14rem; }
+.-top-80 { top: -20rem; }
+.-top-\[40rem\] { top: -40rem; }
+.-top-px { top: -1px; }
+.bottom-0 { bottom: 0px; }
+.bottom-10 { bottom: 2.5rem; }
+.bottom-6 { bottom: 1.5rem; }
+.bottom-full { bottom: 100%; }
+.left-0 { left: 0px; }
+.left-1 { left: 0.25rem; }
+.left-1\/2 { left: 50%; }
+.left-12 { left: 3rem; }
+.left-14 { left: 3.5rem; }
+.left-16 { left: 4rem; }
+.left-2 { left: 0.5rem; }
+.left-20 { left: 5rem; }
+.left-24 { left: 6rem; }
+.left-3\/4 { left: 75%; }
+.left-4 { left: 1rem; }
+.left-5 { left: 1.25rem; }
+.left-6 { left: 1.5rem; }
+.left-72 { left: 18rem; }
+.left-8 { left: 2rem; }
+.left-\[calc\(50\%\+3rem\)\] { left: calc(50% + 3rem); }
+.left-\[calc\(50\%-11rem\)\] { left: calc(50% - 11rem); }
+.left-\[calc\(50\%-19rem\)\] { left: calc(50% - 19rem); }
+.left-\[calc\(50\%-4rem\)\] { left: calc(50% - 4rem); }
+.left-\[max\(-7rem\,calc\(50\%-52rem\)\)\] { left: max(-7rem, 50% - 52rem); }
+.left-\[max\(45rem\,calc\(50\%\+8rem\)\)\] { left: max(45rem, 50% + 8rem); }
+.left-\[max\(50\%\,25rem\)\] { left: max(50%, 25rem); }
+.left-\[max\(6rem\,33\%\)\] { left: max(6rem, 33%); }
+.left-full { left: 100%; }
+.right-0 { right: 0px; }
+.right-1\/2 { right: 50%; }
+.right-10 { right: 2.5rem; }
+.right-3 { right: 0.75rem; }
+.right-4 { right: 1rem; }
+.right-6 { right: 1.5rem; }
+.right-8 { right: 2rem; }
+.right-9 { right: 2.25rem; }
+.right-full { right: 100%; }
+.top-0 { top: 0px; }
+.top-1 { top: 0.25rem; }
+.top-1\/2 { top: 50%; }
+.top-10 { top: 2.5rem; }
+.top-16 { top: 4rem; }
+.top-3 { top: 0.75rem; }
+.top-3\.5 { top: 0.875rem; }
+.top-4 { top: 1rem; }
+.top-5 { top: 1.25rem; }
+.top-6 { top: 1.5rem; }
+.top-8 { top: 2rem; }
+.top-\[-10rem\] { top: -10rem; }
+.top-\[calc\(100\%-13rem\)\] { top: calc(100% - 13rem); }
+.top-\[calc\(50\%-36rem\)\] { top: calc(50% - 36rem); }
+.top-full { top: 100%; }
+.isolate { isolation: isolate; }
+.-z-10 { z-index: -10; }
+.-z-20 { z-index: -20; }
+.z-0 { z-index: 0; }
+.z-10 { z-index: 10; }
+.z-20 { z-index: 20; }
+.z-30 { z-index: 30; }
+.z-40 { z-index: 40; }
+.z-50 { z-index: 50; }
+.order-1 { order: 1; }
+.order-2 { order: 2; }
+.order-3 { order: 3; }
+.order-first { order: -9999; }
+.order-last { order: 9999; }
+.col-span-1 { grid-column: span 1 / span 1; }
+.col-span-12 { grid-column: span 12 / span 12; }
+.col-span-2 { grid-column: span 2 / span 2; }
+.col-span-3 { grid-column: span 3 / span 3; }
+.col-span-4 { grid-column: span 4 / span 4; }
+.col-span-6 { grid-column: span 6 / span 6; }
+.col-span-8 { grid-column: span 8 / span 8; }
+.col-span-full { grid-column: 1 / -1; }
+.col-start-1 { grid-column-start: 1; }
+.col-start-2 { grid-column-start: 2; }
+.col-start-3 { grid-column-start: 3; }
+.col-start-4 { grid-column-start: 4; }
+.col-start-5 { grid-column-start: 5; }
+.col-start-6 { grid-column-start: 6; }
+.col-start-7 { grid-column-start: 7; }
+.col-start-8 { grid-column-start: 8; }
+.col-end-1 { grid-column-end: 1; }
+.col-end-2 { grid-column-end: 2; }
+.col-end-3 { grid-column-end: 3; }
+.row-span-2 { grid-row: span 2 / span 2; }
+.row-span-full { grid-row: 1 / -1; }
+.row-start-1 { grid-row-start: 1; }
+.row-end-1 { grid-row-end: 1; }
+.row-end-2 { grid-row-end: 2; }
+.-m-0 { margin: 0px; }
+.-m-0\.5 { margin: -0.125rem; }
+.-m-1 { margin: -0.25rem; }
+.-m-1\.5 { margin: -0.375rem; }
+.-m-2 { margin: -0.5rem; }
+.-m-2\.5 { margin: -0.625rem; }
+.-m-3 { margin: -0.75rem; }
+.m-1 { margin: 0.25rem; }
+.-mx-0 { margin-left: 0px; margin-right: 0px; }
+.-mx-0\.5 { margin-left: -0.125rem; margin-right: -0.125rem; }
+.-mx-1 { margin-left: -0.25rem; margin-right: -0.25rem; }
+.-mx-1\.5 { margin-left: -0.375rem; margin-right: -0.375rem; }
+.-mx-2 { margin-left: -0.5rem; margin-right: -0.5rem; }
+.-mx-3 { margin-left: -0.75rem; margin-right: -0.75rem; }
+.-mx-4 { margin-left: -1rem; margin-right: -1rem; }
+.-mx-5 { margin-left: -1.25rem; margin-right: -1.25rem; }
+.-mx-6 { margin-left: -1.5rem; margin-right: -1.5rem; }
+.-mx-8 { margin-left: -2rem; margin-right: -2rem; }
+.-mx-px { margin-left: -1px; margin-right: -1px; }
+.-my-1 { margin-top: -0.25rem; margin-bottom: -0.25rem; }
+.-my-1\.5 { margin-top: -0.375rem; margin-bottom: -0.375rem; }
+.-my-10 { margin-top: -2.5rem; margin-bottom: -2.5rem; }
+.-my-12 { margin-top: -3rem; margin-bottom: -3rem; }
+.-my-2 { margin-top: -0.5rem; margin-bottom: -0.5rem; }
+.-my-3 { margin-top: -0.75rem; margin-bottom: -0.75rem; }
+.-my-4 { margin-top: -1rem; margin-bottom: -1rem; }
+.-my-5 { margin-top: -1.25rem; margin-bottom: -1.25rem; }
+.-my-6 { margin-top: -1.5rem; margin-bottom: -1.5rem; }
+.-my-8 { margin-top: -2rem; margin-bottom: -2rem; }
+.mx-0 { margin-left: 0px; margin-right: 0px; }
+.mx-0\.5 { margin-left: 0.125rem; margin-right: 0.125rem; }
+.mx-1 { margin-left: 0.25rem; margin-right: 0.25rem; }
+.mx-2 { margin-left: 0.5rem; margin-right: 0.5rem; }
+.mx-3 { margin-left: 0.75rem; margin-right: 0.75rem; }
+.mx-4 { margin-left: 1rem; margin-right: 1rem; }
+.mx-auto { margin-left: auto; margin-right: auto; }
+.mx-px { margin-left: 1px; margin-right: 1px; }
+.my-24 { margin-top: 6rem; margin-bottom: 6rem; }
+.my-5 { margin-top: 1.25rem; margin-bottom: 1.25rem; }
+.-mb-1 { margin-bottom: -0.25rem; }
+.-mb-10 { margin-bottom: -2.5rem; }
+.-mb-12 { margin-bottom: -3rem; }
+.-mb-16 { margin-bottom: -4rem; }
+.-mb-2 { margin-bottom: -0.5rem; }
+.-mb-20 { margin-bottom: -5rem; }
+.-mb-48 { margin-bottom: -12rem; }
+.-mb-6 { margin-bottom: -1.5rem; }
+.-mb-8 { margin-bottom: -2rem; }
+.-mb-px { margin-bottom: -1px; }
+.-ml-0 { margin-left: 0px; }
+.-ml-0\.5 { margin-left: -0.125rem; }
+.-ml-1 { margin-left: -0.25rem; }
+.-ml-1\.5 { margin-left: -0.375rem; }
+.-ml-12 { margin-left: -3rem; }
+.-ml-14 { margin-left: -3.5rem; }
+.-ml-16 { margin-left: -4rem; }
+.-ml-2 { margin-left: -0.5rem; }
+.-ml-20 { margin-left: -5rem; }
+.-ml-24 { margin-left: -6rem; }
+.-ml-3 { margin-left: -0.75rem; }
+.-ml-4 { margin-left: -1rem; }
+.-ml-48 { margin-left: -12rem; }
+.-ml-6 { margin-left: -1.5rem; }
+.-ml-8 { margin-left: -2rem; }
+.-ml-px { margin-left: -1px; }
+.-mr-0 { margin-right: 0px; }
+.-mr-0\.5 { margin-right: -0.125rem; }
+.-mr-1 { margin-right: -0.25rem; }
+.-mr-1\.5 { margin-right: -0.375rem; }
+.-mr-10 { margin-right: -2.5rem; }
+.-mr-12 { margin-right: -3rem; }
+.-mr-14 { margin-right: -3.5rem; }
+.-mr-2 { margin-right: -0.5rem; }
+.-mr-20 { margin-right: -5rem; }
+.-mr-3 { margin-right: -0.75rem; }
+.-mr-40 { margin-right: -10rem; }
+.-mr-48 { margin-right: -12rem; }
+.-mr-96 { margin-right: -24rem; }
+.-mr-px { margin-right: -1px; }
+.-mt-0 { margin-top: 0px; }
+.-mt-0\.5 { margin-top: -0.125rem; }
+.-mt-1 { margin-top: -0.25rem; }
+.-mt-12 { margin-top: -3rem; }
+.-mt-16 { margin-top: -4rem; }
+.-mt-2 { margin-top: -0.5rem; }
+.-mt-2\.5 { margin-top: -0.625rem; }
+.-mt-20 { margin-top: -5rem; }
+.-mt-24 { margin-top: -6rem; }
+.-mt-32 { margin-top: -8rem; }
+.-mt-4 { margin-top: -1rem; }
+.-mt-6 { margin-top: -1.5rem; }
+.-mt-72 { margin-top: -18rem; }
+.-mt-8 { margin-top: -2rem; }
+.-mt-80 { margin-top: -20rem; }
+.-mt-96 { margin-top: -24rem; }
+.-mt-px { margin-top: -1px; }
+.mb-1 { margin-bottom: 0.25rem; }
+.mb-2 { margin-bottom: 0.5rem; }
+.mb-4 { margin-bottom: 1rem; }
+.mb-48 { margin-bottom: 12rem; }
+.mb-6 { margin-bottom: 1.5rem; }
+.mb-8 { margin-bottom: 2rem; }
+.mb-\[-12\%\] { margin-bottom: -12%; }
+.ml-0 { margin-left: 0px; }
+.ml-0\.5 { margin-left: 0.125rem; }
+.ml-1 { margin-left: 0.25rem; }
+.ml-1\.5 { margin-left: 0.375rem; }
+.ml-10 { margin-left: 2.5rem; }
+.ml-16 { margin-left: 4rem; }
+.ml-2 { margin-left: 0.5rem; }
+.ml-2\.5 { margin-left: 0.625rem; }
+.ml-24 { margin-left: 6rem; }
+.ml-3 { margin-left: 0.75rem; }
+.ml-4 { margin-left: 1rem; }
+.ml-5 { margin-left: 1.25rem; }
+.ml-6 { margin-left: 1.5rem; }
+.ml-8 { margin-left: 2rem; }
+.ml-9 { margin-left: 2.25rem; }
+.ml-\[-22rem\] { margin-left: -22rem; }
+.ml-\[max\(50\%\,38rem\)\] { margin-left: max(50%, 38rem); }
+.ml-auto { margin-left: auto; }
+.ml-px { margin-left: 1px; }
+.mr-0 { margin-right: 0px; }
+.mr-0\.5 { margin-right: 0.125rem; }
+.mr-1 { margin-right: 0.25rem; }
+.mr-1\.5 { margin-right: 0.375rem; }
+.mr-12 { margin-right: 3rem; }
+.mr-16 { margin-right: 4rem; }
+.mr-2 { margin-right: 0.5rem; }
+.mr-3 { margin-right: 0.75rem; }
+.mr-4 { margin-right: 1rem; }
+.mr-6 { margin-right: 1.5rem; }
+.mr-8 { margin-right: 2rem; }
+.mr-auto { margin-right: auto; }
+.mt-0 { margin-top: 0px; }
+.mt-0\.5 { margin-top: 0.125rem; }
+.mt-1 { margin-top: 0.25rem; }
+.mt-1\.5 { margin-top: 0.375rem; }
+.mt-10 { margin-top: 2.5rem; }
+.mt-11 { margin-top: 2.75rem; }
+.mt-12 { margin-top: 3rem; }
+.mt-14 { margin-top: 3.5rem; }
+.mt-16 { margin-top: 4rem; }
+.mt-2 { margin-top: 0.5rem; }
+.mt-2\.5 { margin-top: 0.625rem; }
+.mt-20 { margin-top: 5rem; }
+.mt-24 { margin-top: 6rem; }
+.mt-3 { margin-top: 0.75rem; }
+.mt-32 { margin-top: 8rem; }
+.mt-4 { margin-top: 1rem; }
+.mt-40 { margin-top: 10rem; }
+.mt-5 { margin-top: 1.25rem; }
+.mt-6 { margin-top: 1.5rem; }
+.mt-7 { margin-top: 1.75rem; }
+.mt-8 { margin-top: 2rem; }
+.mt-9 { margin-top: 2.25rem; }
+.mt-96 { margin-top: 24rem; }
+.mt-auto { margin-top: auto; }
+.mt-px { margin-top: 1px; }
+.box-content { box-sizing: content-box; }
+.line-clamp-2 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
+.line-clamp-3 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
+.block { display: block; }
+.inline-block { display: inline-block; }
+.inline { display: inline; }
+.flex { display: flex; }
+.inline-flex { display: inline-flex; }
+.table { display: table; }
+.flow-root { display: flow-root; }
+.grid { display: grid; }
+.contents { display: contents; }
+.hidden { display: none; }
+.aspect-\[1097\/1023\] { aspect-ratio: 1097 / 1023; }
+.aspect-\[1097\/845\] { aspect-ratio: 1097 / 845; }
+.aspect-\[1108\/632\] { aspect-ratio: 1108 / 632; }
+.aspect-\[1154\/678\] { aspect-ratio: 1154 / 678; }
+.aspect-\[1155\/678\] { aspect-ratio: 1155 / 678; }
+.aspect-\[1266\/975\] { aspect-ratio: 1266 / 975; }
+.aspect-\[1313\/771\] { aspect-ratio: 1313 / 771; }
+.aspect-\[1318\/752\] { aspect-ratio: 1318 / 752; }
+.aspect-\[14\/13\] { aspect-ratio: 14 / 13; }
+.aspect-\[1404\/767\] { aspect-ratio: 1404 / 767; }
+.aspect-\[16\/9\] { aspect-ratio: 16 / 9; }
+.aspect-\[2\/1\] { aspect-ratio: 2 / 1; }
+.aspect-\[2\/3\] { aspect-ratio: 2 / 3; }
+.aspect-\[3\/2\] { aspect-ratio: 3 / 2; }
+.aspect-\[4\/3\] { aspect-ratio: 4 / 3; }
+.aspect-\[4\/5\] { aspect-ratio: 4 / 5; }
+.aspect-\[5\/2\] { aspect-ratio: 5 / 2; }
+.aspect-\[577\/310\] { aspect-ratio: 577 / 310; }
+.aspect-\[6\/5\] { aspect-ratio: 6 / 5; }
+.aspect-\[7\/5\] { aspect-ratio: 7 / 5; }
+.aspect-\[801\/1036\] { aspect-ratio: 801 / 1036; }
+.aspect-\[9\/4\] { aspect-ratio: 9 / 4; }
+.aspect-video { aspect-ratio: 16 / 9; }
+.h-0 { height: 0px; }
+.h-0\.5 { height: 0.125rem; }
+.h-1 { height: 0.25rem; }
+.h-1\.5 { height: 0.375rem; }
+.h-1\/2 { height: 50%; }
+.h-1\/3 { height: 33.3333%; }
+.h-10 { height: 2.5rem; }
+.h-11 { height: 2.75rem; }
+.h-12 { height: 3rem; }
+.h-14 { height: 3.5rem; }
+.h-16 { height: 4rem; }
+.h-2 { height: 0.5rem; }
+.h-2\.5 { height: 0.625rem; }
+.h-2\/3 { height: 66.6667%; }
+.h-20 { height: 5rem; }
+.h-24 { height: 6rem; }
+.h-3 { height: 0.75rem; }
+.h-3\.5 { height: 0.875rem; }
+.h-3\/4 { height: 75%; }
+.h-32 { height: 8rem; }
+.h-36 { height: 9rem; }
+.h-4 { height: 1rem; }
+.h-40 { height: 10rem; }
+.h-48 { height: 12rem; }
+.h-5 { height: 1.25rem; }
+.h-5\/6 { height: 83.3333%; }
+.h-56 { height: 14rem; }
+.h-6 { height: 1.5rem; }
+.h-64 { height: 16rem; }
+.h-7 { height: 1.75rem; }
+.h-72 { height: 18rem; }
+.h-8 { height: 2rem; }
+.h-80 { height: 20rem; }
+.h-9 { height: 2.25rem; }
+.h-96 { height: 24rem; }
+.h-\[1008px\] { height: 1008px; }
+.h-\[1024px\] { height: 1024px; }
+.h-\[1078px\] { height: 1078px; }
+.h-\[1152px\] { height: 1152px; }
+.h-\[1923px\] { height: 1923px; }
+.h-\[192px\] { height: 192px; }
+.h-\[256px\] { height: 256px; }
+.h-\[367px\] { height: 367px; }
+.h-\[40rem\] { height: 40rem; }
+.h-\[415px\] { height: 415px; }
+.h-\[485px\] { height: 485px; }
+.h-\[495px\] { height: 495px; }
+.h-\[50rem\] { height: 50rem; }
+.h-\[576px\] { height: 576px; }
+.h-\[640px\] { height: 640px; }
+.h-\[64rem\] { height: 64rem; }
+.h-\[672px\] { height: 672px; }
+.h-\[720px\] { height: 720px; }
+.h-\[768px\] { height: 768px; }
+.h-\[802px\] { height: 802px; }
+.h-\[900px\] { height: 900px; }
+.h-\[940px\] { height: 940px; }
+.h-auto { height: auto; }
+.h-full { height: 100%; }
+.h-px { height: 1px; }
+.max-h-12 { max-height: 3rem; }
+.max-h-56 { max-height: 14rem; }
+.max-h-60 { max-height: 15rem; }
+.max-h-72 { max-height: 18rem; }
+.max-h-80 { max-height: 20rem; }
+.max-h-96 { max-height: 24rem; }
+.max-h-\[600px\] { max-height: 600px; }
+.max-h-\[800px\] { max-height: 800px; }
+.min-h-0 { min-height: 0px; }
+.min-h-\[1007px\] { min-height: 1007px; }
+.min-h-\[1024px\] { min-height: 1024px; }
+.min-h-\[1100px\] { min-height: 1100px; }
+.min-h-\[1117px\] { min-height: 1117px; }
+.min-h-\[192px\] { min-height: 192px; }
+.min-h-\[448px\] { min-height: 448px; }
+.min-h-\[464px\] { min-height: 464px; }
+.min-h-\[480px\] { min-height: 480px; }
+.min-h-\[500px\] { min-height: 500px; }
+.min-h-\[564px\] { min-height: 564px; }
+.min-h-\[583px\] { min-height: 583px; }
+.min-h-\[592px\] { min-height: 592px; }
+.min-h-\[600px\] { min-height: 600px; }
+.min-h-\[640px\] { min-height: 640px; }
+.min-h-\[64rem\] { min-height: 64rem; }
+.min-h-\[660px\] { min-height: 660px; }
+.min-h-\[678px\] { min-height: 678px; }
+.min-h-\[700px\] { min-height: 700px; }
+.min-h-\[712px\] { min-height: 712px; }
+.min-h-\[720px\] { min-height: 720px; }
+.min-h-\[730px\] { min-height: 730px; }
+.min-h-\[768px\] { min-height: 768px; }
+.min-h-\[772px\] { min-height: 772px; }
+.min-h-\[800px\] { min-height: 800px; }
+.min-h-\[830px\] { min-height: 830px; }
+.min-h-\[840px\] { min-height: 840px; }
+.min-h-\[850px\] { min-height: 850px; }
+.min-h-\[851px\] { min-height: 851px; }
+.min-h-\[867px\] { min-height: 867px; }
+.min-h-\[873px\] { min-height: 873px; }
+.min-h-\[896px\] { min-height: 896px; }
+.min-h-\[900px\] { min-height: 900px; }
+.min-h-\[960px\] { min-height: 960px; }
+.min-h-\[979px\] { min-height: 979px; }
+.min-h-\[980px\] { min-height: 980px; }
+.min-h-full { min-height: 100%; }
+.w-0 { width: 0px; }
+.w-0\.5 { width: 0.125rem; }
+.w-1 { width: 0.25rem; }
+.w-1\.5 { width: 0.375rem; }
+.w-1\/2 { width: 50%; }
+.w-1\/4 { width: 25%; }
+.w-1\/5 { width: 20%; }
+.w-10 { width: 2.5rem; }
+.w-11 { width: 2.75rem; }
+.w-12 { width: 3rem; }
+.w-14 { width: 3.5rem; }
+.w-16 { width: 4rem; }
+.w-2 { width: 0.5rem; }
+.w-2\.5 { width: 0.625rem; }
+.w-20 { width: 5rem; }
+.w-24 { width: 6rem; }
+.w-28 { width: 7rem; }
+.w-3 { width: 0.75rem; }
+.w-3\.5 { width: 0.875rem; }
+.w-32 { width: 8rem; }
+.w-36 { width: 9rem; }
+.w-4 { width: 1rem; }
+.w-40 { width: 10rem; }
+.w-44 { width: 11rem; }
+.w-48 { width: 12rem; }
+.w-5 { width: 1.25rem; }
+.w-52 { width: 13rem; }
+.w-56 { width: 14rem; }
+.w-6 { width: 1.5rem; }
+.w-60 { width: 15rem; }
+.w-64 { width: 16rem; }
+.w-7 { width: 1.75rem; }
+.w-72 { width: 18rem; }
+.w-8 { width: 2rem; }
+.w-80 { width: 20rem; }
+.w-9 { width: 2.25rem; }
+.w-96 { width: 24rem; }
+.w-\[128rem\] { width: 128rem; }
+.w-\[150vw\] { width: 150vw; }
+.w-\[175\.5rem\] { width: 175.5rem; }
+.w-\[200\%\] { width: 200%; }
+.w-\[22\.875rem\] { width: 22.875rem; }
+.w-\[24rem\] { width: 24rem; }
+.w-\[36\.0625rem\] { width: 36.0625rem; }
+.w-\[36\.125rem\] { width: 36.125rem; }
+.w-\[37rem\] { width: 37rem; }
+.w-\[48rem\] { width: 48rem; }
+.w-\[50\.0625rem\] { width: 50.0625rem; }
+.w-\[57\.875rem\] { width: 57.875rem; }
+.w-\[57rem\] { width: 57rem; }
+.w-\[64rem\] { width: 64rem; }
+.w-\[68\.5625rem\] { width: 68.5625rem; }
+.w-\[69\.25rem\] { width: 69.25rem; }
+.w-\[72\.125rem\] { width: 72.125rem; }
+.w-\[72\.1875rem\] { width: 72.1875rem; }
+.w-\[76rem\] { width: 76rem; }
+.w-\[79\.125rem\] { width: 79.125rem; }
+.w-\[80rem\] { width: 80rem; }
+.w-\[82\.0625rem\] { width: 82.0625rem; }
+.w-\[82\.375rem\] { width: 82.375rem; }
+.w-\[87\.75rem\] { width: 87.75rem; }
+.w-\[90rem\] { width: 90rem; }
+.w-auto { width: auto; }
+.w-full { width: 100%; }
+.w-px { width: 1px; }
+.w-screen { width: 100vw; }
+.min-w-0 { min-width: 0px; }
+.min-w-\[12rem\] { min-width: 12rem; }
+.min-w-full { min-width: 100%; }
+.min-w-max { min-width: max-content; }
+.max-w-0 { max-width: 0px; }
+.max-w-2xl { max-width: 42rem; }
+.max-w-3xl { max-width: 48rem; }
+.max-w-4xl { max-width: 56rem; }
+.max-w-5xl { max-width: 64rem; }
+.max-w-6xl { max-width: 72rem; }
+.max-w-7xl { max-width: 80rem; }
+.max-w-full { max-width: 100%; }
+.max-w-lg { max-width: 32rem; }
+.max-w-max { max-width: max-content; }
+.max-w-md { max-width: 28rem; }
+.max-w-min { max-width: min-content; }
+.max-w-none { max-width: none; }
+.max-w-prose { max-width: 65ch; }
+.max-w-screen-xl { max-width: 1280px; }
+.max-w-sm { max-width: 24rem; }
+.max-w-xl { max-width: 36rem; }
+.max-w-xs { max-width: 20rem; }
+.flex-1 { flex: 1 1 0%; }
+.flex-auto { flex: 1 1 auto; }
+.flex-none { flex: 0 0 auto; }
+.flex-shrink-0 { flex-shrink: 0; }
+.shrink { flex-shrink: 1; }
+.shrink-0 { flex-shrink: 0; }
+.flex-grow { flex-grow: 1; }
+.grow { flex-grow: 1; }
+.table-fixed { table-layout: fixed; }
+.border-separate { border-collapse: separate; }
+.border-spacing-0 { --tw-border-spacing-x: 0px; --tw-border-spacing-y: 0px; border-spacing: var(--tw-border-spacing-x) var(--tw-border-spacing-y); }
+.border-spacing-x-8 { --tw-border-spacing-x: 2rem; border-spacing: var(--tw-border-spacing-x) var(--tw-border-spacing-y); }
+.origin-bottom-left { transform-origin: left bottom; }
+.origin-bottom-right { transform-origin: right bottom; }
+.origin-top { transform-origin: center top; }
+.origin-top-left { transform-origin: left top; }
+.origin-top-right { transform-origin: right top; }
+.-translate-x-0 { --tw-translate-x: 0px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-translate-x-0\.5 { --tw-translate-x: -0.125rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-translate-x-1\/2 { --tw-translate-x: -50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-translate-x-1\/3 { --tw-translate-x: -33.3333%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-translate-x-1\/4 { --tw-translate-x: -25%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-translate-x-2\/3 { --tw-translate-x: -66.6667%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-translate-x-3 { --tw-translate-x: -0.75rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-translate-x-full { --tw-translate-x: -100%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-translate-y-0 { --tw-translate-y: 0px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-translate-y-0\.5 { --tw-translate-y: -0.125rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-translate-y-1 { --tw-translate-y: -0.25rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-translate-y-1\/2 { --tw-translate-y: -50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-translate-y-1\/3 { --tw-translate-y: -33.3333%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-translate-y-1\/4 { --tw-translate-y: -25%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-translate-y-16 { --tw-translate-y: -4rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-translate-y-2 { --tw-translate-y: -0.5rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-translate-y-3\/4 { --tw-translate-y: -75%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-translate-y-8 { --tw-translate-y: -2rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-translate-y-px { --tw-translate-y: -1px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-x-0 { --tw-translate-x: 0px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-x-0\.5 { --tw-translate-x: 0.125rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-x-1\/2 { --tw-translate-x: 50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-x-1\/4 { --tw-translate-x: 25%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-x-3 { --tw-translate-x: 0.75rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-x-3\.5 { --tw-translate-x: 0.875rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-x-5 { --tw-translate-x: 1.25rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-x-6 { --tw-translate-x: 1.5rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-x-64 { --tw-translate-x: 16rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-x-full { --tw-translate-x: 100%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-y-0 { --tw-translate-y: 0px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-y-1 { --tw-translate-y: 0.25rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-y-1\/2 { --tw-translate-y: 50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-y-1\/3 { --tw-translate-y: 33.3333%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-y-1\/4 { --tw-translate-y: 25%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-y-12 { --tw-translate-y: 3rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-y-16 { --tw-translate-y: 4rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-y-2 { --tw-translate-y: 0.5rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-y-4 { --tw-translate-y: 1rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-y-40 { --tw-translate-y: 10rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-y-6 { --tw-translate-y: 1.5rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-y-full { --tw-translate-y: 100%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.translate-y-px { --tw-translate-y: 1px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-rotate-180 { --tw-rotate: -180deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-rotate-45 { --tw-rotate: -45deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.-rotate-90 { --tw-rotate: -90deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.rotate-0 { --tw-rotate: 0deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.rotate-180 { --tw-rotate: 180deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.rotate-45 { --tw-rotate: 45deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.rotate-90 { --tw-rotate: 90deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.rotate-\[30deg\] { --tw-rotate: 30deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.skew-x-\[-30deg\] { --tw-skew-x: -30deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.scale-100 { --tw-scale-x: 1; --tw-scale-y: 1; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.scale-105 { --tw-scale-x: 1.05; --tw-scale-y: 1.05; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.scale-110 { --tw-scale-x: 1.1; --tw-scale-y: 1.1; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.scale-75 { --tw-scale-x: 0.75; --tw-scale-y: 0.75; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.scale-95 { --tw-scale-x: 0.95; --tw-scale-y: 0.95; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.transform { transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.transform-gpu { transform: translate3d(var(--tw-translate-x), var(--tw-translate-y), 0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+.cursor-auto { cursor: auto; }
+.cursor-default { cursor: default; }
+.cursor-ew-resize { cursor: ew-resize; }
+.cursor-nesw-resize { cursor: nesw-resize; }
+.cursor-not-allowed { cursor: not-allowed; }
+.cursor-ns-resize { cursor: ns-resize; }
+.cursor-nwse-resize { cursor: nwse-resize; }
+.cursor-pointer { cursor: pointer; }
+.select-none { user-select: none; }
+.select-all { user-select: all; }
+.resize-none { resize: none; }
+.resize { resize: both; }
+.scroll-py-10 { scroll-padding-top: 2.5rem; scroll-padding-bottom: 2.5rem; }
+.scroll-py-2 { scroll-padding-top: 0.5rem; scroll-padding-bottom: 0.5rem; }
+.scroll-py-3 { scroll-padding-top: 0.75rem; scroll-padding-bottom: 0.75rem; }
+.scroll-py-4 { scroll-padding-top: 1rem; scroll-padding-bottom: 1rem; }
+.scroll-pb-2 { scroll-padding-bottom: 0.5rem; }
+.scroll-pt-11 { scroll-padding-top: 2.75rem; }
+.list-disc { list-style-type: disc; }
+.appearance-none { appearance: none; }
+.columns-2 { columns: auto 2; }
+.auto-rows-fr { grid-auto-rows: minmax(0px, 1fr); }
+.auto-rows-min { grid-auto-rows: min-content; }
+.grid-cols-1 { grid-template-columns: repeat(1, minmax(0px, 1fr)); }
+.grid-cols-12 { grid-template-columns: repeat(12, minmax(0px, 1fr)); }
+.grid-cols-2 { grid-template-columns: repeat(2, minmax(0px, 1fr)); }
+.grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }
+.grid-cols-4 { grid-template-columns: repeat(4, minmax(0px, 1fr)); }
+.grid-cols-6 { grid-template-columns: repeat(6, minmax(0px, 1fr)); }
+.grid-cols-7 { grid-template-columns: repeat(7, minmax(0px, 1fr)); }
+.grid-rows-1 { grid-template-rows: repeat(1, minmax(0px, 1fr)); }
+.grid-rows-2 { grid-template-rows: repeat(2, minmax(0px, 1fr)); }
+.grid-rows-6 { grid-template-rows: repeat(6, minmax(0px, 1fr)); }
+.grid-rows-\[1fr\,auto\,1fr\] { grid-template-rows: 1fr auto 1fr; }
+.flex-col { flex-direction: column; }
+.flex-col-reverse { flex-direction: column-reverse; }
+.flex-wrap { flex-wrap: wrap; }
+.flex-wrap-reverse { flex-wrap: wrap-reverse; }
+.flex-nowrap { flex-wrap: nowrap; }
+.place-items-center { place-items: center; }
+.items-start { align-items: flex-start; }
+.items-end { align-items: flex-end; }
+.items-center { align-items: center; }
+.items-baseline { align-items: baseline; }
+.items-stretch { align-items: stretch; }
+.justify-start { justify-content: flex-start; }
+.justify-end { justify-content: flex-end; }
+.justify-center { justify-content: center; }
+.justify-between { justify-content: space-between; }
+.justify-around { justify-content: space-around; }
+.justify-stretch { justify-content: stretch; }
+.gap-0 { gap: 0px; }
+.gap-0\.5 { gap: 0.125rem; }
+.gap-10 { gap: 2.5rem; }
+.gap-12 { gap: 3rem; }
+.gap-16 { gap: 4rem; }
+.gap-2 { gap: 0.5rem; }
+.gap-3 { gap: 0.75rem; }
+.gap-4 { gap: 1rem; }
+.gap-5 { gap: 1.25rem; }
+.gap-6 { gap: 1.5rem; }
+.gap-7 { gap: 1.75rem; }
+.gap-8 { gap: 2rem; }
+.gap-px { gap: 1px; }
+.gap-x-0 { column-gap: 0px; }
+.gap-x-0\.5 { column-gap: 0.125rem; }
+.gap-x-1 { column-gap: 0.25rem; }
+.gap-x-1\.5 { column-gap: 0.375rem; }
+.gap-x-12 { column-gap: 3rem; }
+.gap-x-14 { column-gap: 3.5rem; }
+.gap-x-16 { column-gap: 4rem; }
+.gap-x-2 { column-gap: 0.5rem; }
+.gap-x-2\.5 { column-gap: 0.625rem; }
+.gap-x-20 { column-gap: 5rem; }
+.gap-x-3 { column-gap: 0.75rem; }
+.gap-x-4 { column-gap: 1rem; }
+.gap-x-5 { column-gap: 1.25rem; }
+.gap-x-6 { column-gap: 1.5rem; }
+.gap-x-8 { column-gap: 2rem; }
+.gap-y-1 { row-gap: 0.25rem; }
+.gap-y-10 { row-gap: 2.5rem; }
+.gap-y-12 { row-gap: 3rem; }
+.gap-y-14 { row-gap: 3.5rem; }
+.gap-y-16 { row-gap: 4rem; }
+.gap-y-2 { row-gap: 0.5rem; }
+.gap-y-20 { row-gap: 5rem; }
+.gap-y-3 { row-gap: 0.75rem; }
+.gap-y-4 { row-gap: 1rem; }
+.gap-y-5 { row-gap: 1.25rem; }
+.gap-y-6 { row-gap: 1.5rem; }
+.gap-y-7 { row-gap: 1.75rem; }
+.gap-y-8 { row-gap: 2rem; }
+.-space-x-0 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0px * var(--tw-space-x-reverse)); margin-left: calc(0px * calc(1 - var(--tw-space-x-reverse))); }
+.-space-x-0\.5 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(-0.125rem * var(--tw-space-x-reverse)); margin-left: calc(-0.125rem * calc(1 - var(--tw-space-x-reverse))); }
+.-space-x-1 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(-0.25rem * var(--tw-space-x-reverse)); margin-left: calc(-0.25rem * calc(1 - var(--tw-space-x-reverse))); }
+.-space-x-2 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(-0.5rem * var(--tw-space-x-reverse)); margin-left: calc(-0.5rem * calc(1 - var(--tw-space-x-reverse))); }
+.-space-x-px > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(-1px * var(--tw-space-x-reverse)); margin-left: calc(-1px * calc(1 - var(--tw-space-x-reverse))); }
+.-space-y-px > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(-1px * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(-1px * var(--tw-space-y-reverse)); }
+.space-x-1 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0.25rem * var(--tw-space-x-reverse)); margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse))); }
+.space-x-10 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(2.5rem * var(--tw-space-x-reverse)); margin-left: calc(2.5rem * calc(1 - var(--tw-space-x-reverse))); }
+.space-x-12 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(3rem * var(--tw-space-x-reverse)); margin-left: calc(3rem * calc(1 - var(--tw-space-x-reverse))); }
+.space-x-2 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0.5rem * var(--tw-space-x-reverse)); margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse))); }
+.space-x-2\.5 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0.625rem * var(--tw-space-x-reverse)); margin-left: calc(0.625rem * calc(1 - var(--tw-space-x-reverse))); }
+.space-x-3 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0.75rem * var(--tw-space-x-reverse)); margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse))); }
+.space-x-4 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(1rem * var(--tw-space-x-reverse)); margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); }
+.space-x-5 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(1.25rem * var(--tw-space-x-reverse)); margin-left: calc(1.25rem * calc(1 - var(--tw-space-x-reverse))); }
+.space-x-6 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(1.5rem * var(--tw-space-x-reverse)); margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse))); }
+.space-x-7 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(1.75rem * var(--tw-space-x-reverse)); margin-left: calc(1.75rem * calc(1 - var(--tw-space-x-reverse))); }
+.space-x-8 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(2rem * var(--tw-space-x-reverse)); margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse))); }
+.space-y-1 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)); }
+.space-y-10 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(2.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(2.5rem * var(--tw-space-y-reverse)); }
+.space-y-12 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(3rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(3rem * var(--tw-space-y-reverse)); }
+.space-y-16 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(4rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(4rem * var(--tw-space-y-reverse)); }
+.space-y-2 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)); }
+.space-y-20 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(5rem * var(--tw-space-y-reverse)); }
+.space-y-24 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(6rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(6rem * var(--tw-space-y-reverse)); }
+.space-y-3 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.75rem * var(--tw-space-y-reverse)); }
+.space-y-4 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1rem * var(--tw-space-y-reverse)); }
+.space-y-5 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1.25rem * var(--tw-space-y-reverse)); }
+.space-y-6 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1.5rem * var(--tw-space-y-reverse)); }
+.space-y-8 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(2rem * var(--tw-space-y-reverse)); }
+.space-y-reverse > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 1; }
+.divide-x > :not([hidden]) ~ :not([hidden]) { --tw-divide-x-reverse: 0; border-right-width: calc(1px * var(--tw-divide-x-reverse)); border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse))); }
+.divide-y > :not([hidden]) ~ :not([hidden]) { --tw-divide-y-reverse: 0; border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(1px * var(--tw-divide-y-reverse)); }
+.divide-y-2 > :not([hidden]) ~ :not([hidden]) { --tw-divide-y-reverse: 0; border-top-width: calc(2px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(2px * var(--tw-divide-y-reverse)); }
+.divide-cyan-800 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(21 94 117 / var(--tw-divide-opacity)); }
+.divide-gray-100 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(243 244 246 / var(--tw-divide-opacity)); }
+.divide-gray-200 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(229 231 235 / var(--tw-divide-opacity)); }
+.divide-gray-300 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(209 213 219 / var(--tw-divide-opacity)); }
+.divide-gray-50 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(249 250 251 / var(--tw-divide-opacity)); }
+.divide-gray-500 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(107 114 128 / var(--tw-divide-opacity)); }
+.divide-gray-500\/10 > :not([hidden]) ~ :not([hidden]) { border-color: rgba(107, 114, 128, 0.1); }
+.divide-gray-500\/25 > :not([hidden]) ~ :not([hidden]) { border-color: rgba(107, 114, 128, 0.25); }
+.divide-gray-700 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(55 65 81 / var(--tw-divide-opacity)); }
+.divide-gray-800 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(31 41 55 / var(--tw-divide-opacity)); }
+.divide-gray-900\/10 > :not([hidden]) ~ :not([hidden]) { border-color: rgba(17, 24, 39, 0.1); }
+.divide-gray-900\/5 > :not([hidden]) ~ :not([hidden]) { border-color: rgba(17, 24, 39, 0.05); }
+.divide-indigo-500 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(99 102 241 / var(--tw-divide-opacity)); }
+.divide-indigo-700 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(67 56 202 / var(--tw-divide-opacity)); }
+.divide-purple-600 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(147 51 234 / var(--tw-divide-opacity)); }
+.divide-slate-200 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(226 232 240 / var(--tw-divide-opacity)); }
+.divide-stone-200 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(231 229 228 / var(--tw-divide-opacity)); }
+.divide-white > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(255 255 255 / var(--tw-divide-opacity)); }
+.divide-white\/10 > :not([hidden]) ~ :not([hidden]) { border-color: rgba(255, 255, 255, 0.1); }
+.divide-white\/5 > :not([hidden]) ~ :not([hidden]) { border-color: rgba(255, 255, 255, 0.05); }
+.divide-opacity-10 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 0.1; }
+.divide-opacity-20 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 0.2; }
+.divide-opacity-75 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 0.75; }
+.self-start { align-self: flex-start; }
+.self-end { align-self: flex-end; }
+.self-center { align-self: center; }
+.self-stretch { align-self: stretch; }
+.overflow-auto { overflow: auto; }
+.overflow-hidden { overflow: hidden; }
+.overflow-visible { overflow: visible; }
+.overflow-x-auto { overflow-x: auto; }
+.overflow-y-auto { overflow-y: auto; }
+.overflow-y-scroll { overflow-y: scroll; }
+.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
+.whitespace-nowrap { white-space: nowrap; }
+.whitespace-pre { white-space: pre; }
+.whitespace-pre-wrap { white-space: pre-wrap; }
+.rounded { border-radius: 0.25rem; }
+.rounded-2xl { border-radius: 1rem; }
+.rounded-3xl { border-radius: 1.5rem; }
+.rounded-full { border-radius: 9999px; }
+.rounded-lg { border-radius: 0.5rem; }
+.rounded-md { border-radius: 0.375rem; }
+.rounded-none { border-radius: 0px; }
+.rounded-sm { border-radius: 0.125rem; }
+.rounded-xl { border-radius: 0.75rem; }
+.rounded-b-lg { border-bottom-right-radius: 0.5rem; border-bottom-left-radius: 0.5rem; }
+.rounded-b-md { border-bottom-right-radius: 0.375rem; border-bottom-left-radius: 0.375rem; }
+.rounded-b-none { border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; }
+.rounded-l-3xl { border-top-left-radius: 1.5rem; border-bottom-left-radius: 1.5rem; }
+.rounded-l-lg { border-top-left-radius: 0.5rem; border-bottom-left-radius: 0.5rem; }
+.rounded-l-md { border-top-left-radius: 0.375rem; border-bottom-left-radius: 0.375rem; }
+.rounded-l-none { border-top-left-radius: 0px; border-bottom-left-radius: 0px; }
+.rounded-r-3xl { border-top-right-radius: 1.5rem; border-bottom-right-radius: 1.5rem; }
+.rounded-r-lg { border-top-right-radius: 0.5rem; border-bottom-right-radius: 0.5rem; }
+.rounded-r-md { border-top-right-radius: 0.375rem; border-bottom-right-radius: 0.375rem; }
+.rounded-t-3xl { border-top-left-radius: 1.5rem; border-top-right-radius: 1.5rem; }
+.rounded-t-lg { border-top-left-radius: 0.5rem; border-top-right-radius: 0.5rem; }
+.rounded-t-md { border-top-left-radius: 0.375rem; border-top-right-radius: 0.375rem; }
+.rounded-t-none { border-top-left-radius: 0px; border-top-right-radius: 0px; }
+.rounded-t-xl { border-top-left-radius: 0.75rem; border-top-right-radius: 0.75rem; }
+.rounded-bl-2xl { border-bottom-left-radius: 1rem; }
+.rounded-bl-lg { border-bottom-left-radius: 0.5rem; }
+.rounded-bl-md { border-bottom-left-radius: 0.375rem; }
+.rounded-br-2xl { border-bottom-right-radius: 1rem; }
+.rounded-br-lg { border-bottom-right-radius: 0.5rem; }
+.rounded-br-md { border-bottom-right-radius: 0.375rem; }
+.rounded-tl { border-top-left-radius: 0.25rem; }
+.rounded-tl-lg { border-top-left-radius: 0.5rem; }
+.rounded-tl-md { border-top-left-radius: 0.375rem; }
+.rounded-tl-xl { border-top-left-radius: 0.75rem; }
+.rounded-tr-lg { border-top-right-radius: 0.5rem; }
+.rounded-tr-md { border-top-right-radius: 0.375rem; }
+.border { border-width: 1px; }
+.border-0 { border-width: 0px; }
+.border-2 { border-width: 2px; }
+.border-4 { border-width: 4px; }
+.border-x { border-left-width: 1px; border-right-width: 1px; }
+.border-y { border-top-width: 1px; border-bottom-width: 1px; }
+.border-b { border-bottom-width: 1px; }
+.border-b-0 { border-bottom-width: 0px; }
+.border-b-2 { border-bottom-width: 2px; }
+.border-l { border-left-width: 1px; }
+.border-l-4 { border-left-width: 4px; }
+.border-r { border-right-width: 1px; }
+.border-r-0 { border-right-width: 0px; }
+.border-t { border-top-width: 1px; }
+.border-t-0 { border-top-width: 0px; }
+.border-t-2 { border-top-width: 2px; }
+.border-dashed { border-style: dashed; }
+.border-none { border-style: none; }
+.border-black { --tw-border-opacity: 1; border-color: rgb(0 0 0 / var(--tw-border-opacity)); }
+.border-blue-400 { --tw-border-opacity: 1; border-color: rgb(96 165 250 / var(--tw-border-opacity)); }
+.border-gray-100 { --tw-border-opacity: 1; border-color: rgb(243 244 246 / var(--tw-border-opacity)); }
+.border-gray-200 { --tw-border-opacity: 1; border-color: rgb(229 231 235 / var(--tw-border-opacity)); }
+.border-gray-300 { --tw-border-opacity: 1; border-color: rgb(209 213 219 / var(--tw-border-opacity)); }
+.border-gray-400 { --tw-border-opacity: 1; border-color: rgb(156 163 175 / var(--tw-border-opacity)); }
+.border-gray-600\/10 { border-color: rgba(75, 85, 99, 0.1); }
+.border-gray-700 { --tw-border-opacity: 1; border-color: rgb(55 65 81 / var(--tw-border-opacity)); }
+.border-gray-800 { --tw-border-opacity: 1; border-color: rgb(31 41 55 / var(--tw-border-opacity)); }
+.border-gray-900\/10 { border-color: rgba(17, 24, 39, 0.1); }
+.border-gray-900\/25 { border-color: rgba(17, 24, 39, 0.25); }
+.border-gray-900\/5 { border-color: rgba(17, 24, 39, 0.05); }
+.border-indigo-200 { --tw-border-opacity: 1; border-color: rgb(199 210 254 / var(--tw-border-opacity)); }
+.border-indigo-300 { --tw-border-opacity: 1; border-color: rgb(165 180 252 / var(--tw-border-opacity)); }
+.border-indigo-400 { --tw-border-opacity: 1; border-color: rgb(129 140 248 / var(--tw-border-opacity)); }
+.border-indigo-500 { --tw-border-opacity: 1; border-color: rgb(99 102 241 / var(--tw-border-opacity)); }
+.border-indigo-600 { --tw-border-opacity: 1; border-color: rgb(79 70 229 / var(--tw-border-opacity)); }
+.border-indigo-700 { --tw-border-opacity: 1; border-color: rgb(67 56 202 / var(--tw-border-opacity)); }
+.border-indigo-800 { --tw-border-opacity: 1; border-color: rgb(55 48 163 / var(--tw-border-opacity)); }
+.border-indigo-900 { --tw-border-opacity: 1; border-color: rgb(49 46 129 / var(--tw-border-opacity)); }
+.border-orange-200 { --tw-border-opacity: 1; border-color: rgb(254 215 170 / var(--tw-border-opacity)); }
+.border-pink-500 { --tw-border-opacity: 1; border-color: rgb(236 72 153 / var(--tw-border-opacity)); }
+.border-purple-500 { --tw-border-opacity: 1; border-color: rgb(168 85 247 / var(--tw-border-opacity)); }
+.border-purple-600 { --tw-border-opacity: 1; border-color: rgb(147 51 234 / var(--tw-border-opacity)); }
+.border-sky-200 { --tw-border-opacity: 1; border-color: rgb(186 230 253 / var(--tw-border-opacity)); }
+.border-sky-500 { --tw-border-opacity: 1; border-color: rgb(14 165 233 / var(--tw-border-opacity)); }
+.border-sky-800 { --tw-border-opacity: 1; border-color: rgb(7 89 133 / var(--tw-border-opacity)); }
+.border-slate-200 { --tw-border-opacity: 1; border-color: rgb(226 232 240 / var(--tw-border-opacity)); }
+.border-slate-300 { --tw-border-opacity: 1; border-color: rgb(203 213 225 / var(--tw-border-opacity)); }
+.border-stone-200 { --tw-border-opacity: 1; border-color: rgb(231 229 228 / var(--tw-border-opacity)); }
+.border-stone-300 { --tw-border-opacity: 1; border-color: rgb(214 211 209 / var(--tw-border-opacity)); }
+.border-stone-700 { --tw-border-opacity: 1; border-color: rgb(68 64 60 / var(--tw-border-opacity)); }
+.border-teal-500 { --tw-border-opacity: 1; border-color: rgb(20 184 166 / var(--tw-border-opacity)); }
+.border-transparent { border-color: transparent; }
+.border-white { --tw-border-opacity: 1; border-color: rgb(255 255 255 / var(--tw-border-opacity)); }
+.border-white\/10 { border-color: rgba(255, 255, 255, 0.1); }
+.border-white\/20 { border-color: rgba(255, 255, 255, 0.2); }
+.border-white\/25 { border-color: rgba(255, 255, 255, 0.25); }
+.border-white\/5 { border-color: rgba(255, 255, 255, 0.05); }
+.border-yellow-400 { --tw-border-opacity: 1; border-color: rgb(250 204 21 / var(--tw-border-opacity)); }
+.border-b-gray-200 { --tw-border-opacity: 1; border-bottom-color: rgb(229 231 235 / var(--tw-border-opacity)); }
+.border-b-gray-900\/10 { border-bottom-color: rgba(17, 24, 39, 0.1); }
+.border-b-white\/20 { border-bottom-color: rgba(255, 255, 255, 0.2); }
+.border-r-white\/10 { border-right-color: rgba(255, 255, 255, 0.1); }
+.border-t-gray-100 { --tw-border-opacity: 1; border-top-color: rgb(243 244 246 / var(--tw-border-opacity)); }
+.border-opacity-10 { --tw-border-opacity: 0.1; }
+.border-opacity-20 { --tw-border-opacity: 0.2; }
+.border-opacity-25 { --tw-border-opacity: 0.25; }
+.bg-black { --tw-bg-opacity: 1; background-color: rgb(0 0 0 / var(--tw-bg-opacity)); }
+.bg-black\/10 { background-color: rgba(0, 0, 0, 0.1); }
+.bg-blue-100 { --tw-bg-opacity: 1; background-color: rgb(219 234 254 / var(--tw-bg-opacity)); }
+.bg-blue-400\/10 { background-color: rgba(96, 165, 250, 0.1); }
+.bg-blue-50 { --tw-bg-opacity: 1; background-color: rgb(239 246 255 / var(--tw-bg-opacity)); }
+.bg-blue-500 { --tw-bg-opacity: 1; background-color: rgb(59 130 246 / var(--tw-bg-opacity)); }
+.bg-blue-600 { --tw-bg-opacity: 1; background-color: rgb(37 99 235 / var(--tw-bg-opacity)); }
+.bg-blue-700 { --tw-bg-opacity: 1; background-color: rgb(29 78 216 / var(--tw-bg-opacity)); }
+.bg-blue-900 { --tw-bg-opacity: 1; background-color: rgb(30 58 138 / var(--tw-bg-opacity)); }
+.bg-current { background-color: currentcolor; }
+.bg-cyan-100 { --tw-bg-opacity: 1; background-color: rgb(207 250 254 / var(--tw-bg-opacity)); }
+.bg-cyan-400 { --tw-bg-opacity: 1; background-color: rgb(34 211 238 / var(--tw-bg-opacity)); }
+.bg-cyan-50 { --tw-bg-opacity: 1; background-color: rgb(236 254 255 / var(--tw-bg-opacity)); }
+.bg-cyan-500 { --tw-bg-opacity: 1; background-color: rgb(6 182 212 / var(--tw-bg-opacity)); }
+.bg-cyan-600 { --tw-bg-opacity: 1; background-color: rgb(8 145 178 / var(--tw-bg-opacity)); }
+.bg-cyan-700 { --tw-bg-opacity: 1; background-color: rgb(14 116 144 / var(--tw-bg-opacity)); }
+.bg-cyan-800 { --tw-bg-opacity: 1; background-color: rgb(21 94 117 / var(--tw-bg-opacity)); }
+.bg-emerald-500 { --tw-bg-opacity: 1; background-color: rgb(16 185 129 / var(--tw-bg-opacity)); }
+.bg-emerald-500\/20 { background-color: rgba(16, 185, 129, 0.2); }
+.bg-fuchsia-500 { --tw-bg-opacity: 1; background-color: rgb(217 70 239 / var(--tw-bg-opacity)); }
+.bg-gray-100 { --tw-bg-opacity: 1; background-color: rgb(243 244 246 / var(--tw-bg-opacity)); }
+.bg-gray-100\/10 { background-color: rgba(243, 244, 246, 0.1); }
+.bg-gray-200 { --tw-bg-opacity: 1; background-color: rgb(229 231 235 / var(--tw-bg-opacity)); }
+.bg-gray-300 { --tw-bg-opacity: 1; background-color: rgb(209 213 219 / var(--tw-bg-opacity)); }
+.bg-gray-400 { --tw-bg-opacity: 1; background-color: rgb(156 163 175 / var(--tw-bg-opacity)); }
+.bg-gray-400\/10 { background-color: rgba(156, 163, 175, 0.1); }
+.bg-gray-400\/5 { background-color: rgba(156, 163, 175, 0.05); }
+.bg-gray-50 { --tw-bg-opacity: 1; background-color: rgb(249 250 251 / var(--tw-bg-opacity)); }
+.bg-gray-500 { --tw-bg-opacity: 1; background-color: rgb(107 114 128 / var(--tw-bg-opacity)); }
+.bg-gray-600 { --tw-bg-opacity: 1; background-color: rgb(75 85 99 / var(--tw-bg-opacity)); }
+.bg-gray-700 { --tw-bg-opacity: 1; background-color: rgb(55 65 81 / var(--tw-bg-opacity)); }
+.bg-gray-700\/10 { background-color: rgba(55, 65, 81, 0.1); }
+.bg-gray-700\/40 { background-color: rgba(55, 65, 81, 0.4); }
+.bg-gray-800 { --tw-bg-opacity: 1; background-color: rgb(31 41 55 / var(--tw-bg-opacity)); }
+.bg-gray-800\/40 { background-color: rgba(31, 41, 55, 0.4); }
+.bg-gray-800\/80 { background-color: rgba(31, 41, 55, 0.8); }
+.bg-gray-900 { --tw-bg-opacity: 1; background-color: rgb(17 24 39 / var(--tw-bg-opacity)); }
+.bg-gray-900\/10 { background-color: rgba(17, 24, 39, 0.1); }
+.bg-gray-900\/5 { background-color: rgba(17, 24, 39, 0.05); }
+.bg-gray-900\/80 { background-color: rgba(17, 24, 39, 0.8); }
+.bg-gray-900\/90 { background-color: rgba(17, 24, 39, 0.9); }
+.bg-green-100 { --tw-bg-opacity: 1; background-color: rgb(220 252 231 / var(--tw-bg-opacity)); }
+.bg-green-400 { --tw-bg-opacity: 1; background-color: rgb(74 222 128 / var(--tw-bg-opacity)); }
+.bg-green-400\/10 { background-color: rgba(74, 222, 128, 0.1); }
+.bg-green-50 { --tw-bg-opacity: 1; background-color: rgb(240 253 244 / var(--tw-bg-opacity)); }
+.bg-green-500 { --tw-bg-opacity: 1; background-color: rgb(34 197 94 / var(--tw-bg-opacity)); }
+.bg-green-500\/10 { background-color: rgba(34, 197, 94, 0.1); }
+.bg-indigo-100 { --tw-bg-opacity: 1; background-color: rgb(224 231 255 / var(--tw-bg-opacity)); }
+.bg-indigo-200 { --tw-bg-opacity: 1; background-color: rgb(199 210 254 / var(--tw-bg-opacity)); }
+.bg-indigo-400 { --tw-bg-opacity: 1; background-color: rgb(129 140 248 / var(--tw-bg-opacity)); }
+.bg-indigo-400\/10 { background-color: rgba(129, 140, 248, 0.1); }
+.bg-indigo-50 { --tw-bg-opacity: 1; background-color: rgb(238 242 255 / var(--tw-bg-opacity)); }
+.bg-indigo-500 { --tw-bg-opacity: 1; background-color: rgb(99 102 241 / var(--tw-bg-opacity)); }
+.bg-indigo-500\/10 { background-color: rgba(99, 102, 241, 0.1); }
+.bg-indigo-600 { --tw-bg-opacity: 1; background-color: rgb(79 70 229 / var(--tw-bg-opacity)); }
+.bg-indigo-600\/10 { background-color: rgba(79, 70, 229, 0.1); }
+.bg-indigo-700 { --tw-bg-opacity: 1; background-color: rgb(67 56 202 / var(--tw-bg-opacity)); }
+.bg-indigo-800 { --tw-bg-opacity: 1; background-color: rgb(55 48 163 / var(--tw-bg-opacity)); }
+.bg-indigo-900 { --tw-bg-opacity: 1; background-color: rgb(49 46 129 / var(--tw-bg-opacity)); }
+.bg-orange-100 { --tw-bg-opacity: 1; background-color: rgb(255 237 213 / var(--tw-bg-opacity)); }
+.bg-orange-50 { --tw-bg-opacity: 1; background-color: rgb(255 247 237 / var(--tw-bg-opacity)); }
+.bg-orange-500 { --tw-bg-opacity: 1; background-color: rgb(249 115 22 / var(--tw-bg-opacity)); }
+.bg-pink-100 { --tw-bg-opacity: 1; background-color: rgb(252 231 243 / var(--tw-bg-opacity)); }
+.bg-pink-400 { --tw-bg-opacity: 1; background-color: rgb(244 114 182 / var(--tw-bg-opacity)); }
+.bg-pink-400\/10 { background-color: rgba(244, 114, 182, 0.1); }
+.bg-pink-50 { --tw-bg-opacity: 1; background-color: rgb(253 242 248 / var(--tw-bg-opacity)); }
+.bg-pink-500 { --tw-bg-opacity: 1; background-color: rgb(236 72 153 / var(--tw-bg-opacity)); }
+.bg-pink-600 { --tw-bg-opacity: 1; background-color: rgb(219 39 119 / var(--tw-bg-opacity)); }
+.bg-purple-100 { --tw-bg-opacity: 1; background-color: rgb(243 232 255 / var(--tw-bg-opacity)); }
+.bg-purple-400 { --tw-bg-opacity: 1; background-color: rgb(192 132 252 / var(--tw-bg-opacity)); }
+.bg-purple-400\/10 { background-color: rgba(192, 132, 252, 0.1); }
+.bg-purple-50 { --tw-bg-opacity: 1; background-color: rgb(250 245 255 / var(--tw-bg-opacity)); }
+.bg-purple-500 { --tw-bg-opacity: 1; background-color: rgb(168 85 247 / var(--tw-bg-opacity)); }
+.bg-purple-600 { --tw-bg-opacity: 1; background-color: rgb(147 51 234 / var(--tw-bg-opacity)); }
+.bg-red-100 { --tw-bg-opacity: 1; background-color: rgb(254 226 226 / var(--tw-bg-opacity)); }
+.bg-red-400 { --tw-bg-opacity: 1; background-color: rgb(248 113 113 / var(--tw-bg-opacity)); }
+.bg-red-400\/10 { background-color: rgba(248, 113, 113, 0.1); }
+.bg-red-50 { --tw-bg-opacity: 1; background-color: rgb(254 242 242 / var(--tw-bg-opacity)); }
+.bg-red-500 { --tw-bg-opacity: 1; background-color: rgb(239 68 68 / var(--tw-bg-opacity)); }
+.bg-red-600 { --tw-bg-opacity: 1; background-color: rgb(220 38 38 / var(--tw-bg-opacity)); }
+.bg-rose-400\/10 { background-color: rgba(251, 113, 133, 0.1); }
+.bg-rose-50 { --tw-bg-opacity: 1; background-color: rgb(255 241 242 / var(--tw-bg-opacity)); }
+.bg-rose-500 { --tw-bg-opacity: 1; background-color: rgb(244 63 94 / var(--tw-bg-opacity)); }
+.bg-rose-600 { --tw-bg-opacity: 1; background-color: rgb(225 29 72 / var(--tw-bg-opacity)); }
+.bg-sky-400 { --tw-bg-opacity: 1; background-color: rgb(56 189 248 / var(--tw-bg-opacity)); }
+.bg-sky-50 { --tw-bg-opacity: 1; background-color: rgb(240 249 255 / var(--tw-bg-opacity)); }
+.bg-sky-500 { --tw-bg-opacity: 1; background-color: rgb(14 165 233 / var(--tw-bg-opacity)); }
+.bg-sky-600 { --tw-bg-opacity: 1; background-color: rgb(2 132 199 / var(--tw-bg-opacity)); }
+.bg-sky-700 { --tw-bg-opacity: 1; background-color: rgb(3 105 161 / var(--tw-bg-opacity)); }
+.bg-sky-700\/50 { background-color: rgba(3, 105, 161, 0.5); }
+.bg-sky-800 { --tw-bg-opacity: 1; background-color: rgb(7 89 133 / var(--tw-bg-opacity)); }
+.bg-sky-900 { --tw-bg-opacity: 1; background-color: rgb(12 74 110 / var(--tw-bg-opacity)); }
+.bg-slate-50 { --tw-bg-opacity: 1; background-color: rgb(248 250 252 / var(--tw-bg-opacity)); }
+.bg-slate-600 { --tw-bg-opacity: 1; background-color: rgb(71 85 105 / var(--tw-bg-opacity)); }
+.bg-slate-800 { --tw-bg-opacity: 1; background-color: rgb(30 41 59 / var(--tw-bg-opacity)); }
+.bg-slate-900 { --tw-bg-opacity: 1; background-color: rgb(15 23 42 / var(--tw-bg-opacity)); }
+.bg-stone-100 { --tw-bg-opacity: 1; background-color: rgb(245 245 244 / var(--tw-bg-opacity)); }
+.bg-stone-50 { --tw-bg-opacity: 1; background-color: rgb(250 250 249 / var(--tw-bg-opacity)); }
+.bg-stone-900 { --tw-bg-opacity: 1; background-color: rgb(28 25 23 / var(--tw-bg-opacity)); }
+.bg-teal-50 { --tw-bg-opacity: 1; background-color: rgb(240 253 250 / var(--tw-bg-opacity)); }
+.bg-teal-500 { --tw-bg-opacity: 1; background-color: rgb(20 184 166 / var(--tw-bg-opacity)); }
+.bg-transparent { background-color: transparent; }
+.bg-violet-500 { --tw-bg-opacity: 1; background-color: rgb(139 92 246 / var(--tw-bg-opacity)); }
+.bg-white { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity)); }
+.bg-white\/10 { background-color: rgba(255, 255, 255, 0.1); }
+.bg-white\/20 { background-color: rgba(255, 255, 255, 0.2); }
+.bg-white\/5 { background-color: rgba(255, 255, 255, 0.05); }
+.bg-white\/60 { background-color: rgba(255, 255, 255, 0.6); }
+.bg-yellow-100 { --tw-bg-opacity: 1; background-color: rgb(254 249 195 / var(--tw-bg-opacity)); }
+.bg-yellow-400 { --tw-bg-opacity: 1; background-color: rgb(250 204 21 / var(--tw-bg-opacity)); }
+.bg-yellow-400\/10 { background-color: rgba(250, 204, 21, 0.1); }
+.bg-yellow-50 { --tw-bg-opacity: 1; background-color: rgb(254 252 232 / var(--tw-bg-opacity)); }
+.bg-yellow-500 { --tw-bg-opacity: 1; background-color: rgb(234 179 8 / var(--tw-bg-opacity)); }
+.bg-opacity-0 { --tw-bg-opacity: 0; }
+.bg-opacity-10 { --tw-bg-opacity: 0.1; }
+.bg-opacity-25 { --tw-bg-opacity: 0.25; }
+.bg-opacity-40 { --tw-bg-opacity: 0.4; }
+.bg-opacity-5 { --tw-bg-opacity: 0.05; }
+.bg-opacity-50 { --tw-bg-opacity: 0.5; }
+.bg-opacity-60 { --tw-bg-opacity: 0.6; }
+.bg-opacity-75 { --tw-bg-opacity: 0.75; }
+.bg-opacity-80 { --tw-bg-opacity: 0.8; }
+.bg-opacity-90 { --tw-bg-opacity: 0.9; }
+.bg-\[radial-gradient\(45rem_50rem_at_top\,theme\(colors\.indigo\.100\)\,white\)\] { background-image: radial-gradient(45rem 50rem at center top, rgb(224, 231, 255), white); }
+.bg-\[radial-gradient\(50\%_100\%_at_top\,theme\(colors\.indigo\.100\)\,white\)\] { background-image: radial-gradient(50% 100% at center top, rgb(224, 231, 255), white); }
+.bg-gradient-to-b { background-image: linear-gradient(to bottom, var(--tw-gradient-stops)); }
+.bg-gradient-to-br { background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); }
+.bg-gradient-to-l { background-image: linear-gradient(to left, var(--tw-gradient-stops)); }
+.bg-gradient-to-r { background-image: linear-gradient(to right, var(--tw-gradient-stops)); }
+.bg-gradient-to-t { background-image: linear-gradient(to top, var(--tw-gradient-stops)); }
+.bg-gradient-to-tr { background-image: linear-gradient(to top right, var(--tw-gradient-stops)); }
+.bg-none { background-image: none; }
+.from-\[\#80caff\] { --tw-gradient-from: #80caff var(--tw-gradient-from-position); --tw-gradient-to: rgb(128 202 255 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-\[\#FF80B5\] { --tw-gradient-from: #FF80B5 var(--tw-gradient-from-position); --tw-gradient-to: rgb(255 128 181 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-\[\#ff4694\] { --tw-gradient-from: #ff4694 var(--tw-gradient-from-position); --tw-gradient-to: rgb(255 70 148 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-\[\#ff80b5\] { --tw-gradient-from: #ff80b5 var(--tw-gradient-from-position); --tw-gradient-to: rgb(255 128 181 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-black { --tw-gradient-from: #000 var(--tw-gradient-from-position); --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-blue-50 { --tw-gradient-from: #eff6ff var(--tw-gradient-from-position); --tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-cyan-600 { --tw-gradient-from: #0891b2 var(--tw-gradient-from-position); --tw-gradient-to: rgb(8 145 178 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-gray-100 { --tw-gradient-from: #f3f4f6 var(--tw-gradient-from-position); --tw-gradient-to: rgb(243 244 246 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-gray-800 { --tw-gradient-from: #1f2937 var(--tw-gradient-from-position); --tw-gradient-to: rgb(31 41 55 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-gray-900 { --tw-gradient-from: #111827 var(--tw-gradient-from-position); --tw-gradient-to: rgb(17 24 39 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-indigo-100\/20 { --tw-gradient-from: rgb(224 231 255 / 0.2) var(--tw-gradient-from-position); --tw-gradient-to: rgb(224 231 255 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-orange-400 { --tw-gradient-from: #fb923c var(--tw-gradient-from-position); --tw-gradient-to: rgb(251 146 60 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-orange-500 { --tw-gradient-from: #f97316 var(--tw-gradient-from-position); --tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-purple-300 { --tw-gradient-from: #d8b4fe var(--tw-gradient-from-position); --tw-gradient-to: rgb(216 180 254 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-purple-600 { --tw-gradient-from: #9333ea var(--tw-gradient-from-position); --tw-gradient-to: rgb(147 51 234 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-purple-800 { --tw-gradient-from: #6b21a8 var(--tw-gradient-from-position); --tw-gradient-to: rgb(107 33 168 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-rose-600 { --tw-gradient-from: #e11d48 var(--tw-gradient-from-position); --tw-gradient-to: rgb(225 29 72 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-sky-800 { --tw-gradient-from: #075985 var(--tw-gradient-from-position); --tw-gradient-to: rgb(7 89 133 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-teal-200 { --tw-gradient-from: #99f6e4 var(--tw-gradient-from-position); --tw-gradient-to: rgb(153 246 228 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-teal-500 { --tw-gradient-from: #14b8a6 var(--tw-gradient-from-position); --tw-gradient-to: rgb(20 184 166 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-transparent { --tw-gradient-from: transparent var(--tw-gradient-from-position); --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.from-white { --tw-gradient-from: #fff var(--tw-gradient-from-position); --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.via-gray-900\/40 { --tw-gradient-to: rgb(17 24 39 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), rgb(17 24 39 / 0.4) var(--tw-gradient-via-position), var(--tw-gradient-to); }
+.via-rose-600 { --tw-gradient-to: rgb(225 29 72 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), #e11d48 var(--tw-gradient-via-position), var(--tw-gradient-to); }
+.via-white { --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), #fff var(--tw-gradient-via-position), var(--tw-gradient-to); }
+.to-\[\#4f46e5\] { --tw-gradient-to: #4f46e5 var(--tw-gradient-to-position); }
+.to-\[\#776fff\] { --tw-gradient-to: #776fff var(--tw-gradient-to-position); }
+.to-\[\#9089FC\] { --tw-gradient-to: #9089FC var(--tw-gradient-to-position); }
+.to-\[\#9089fc\] { --tw-gradient-to: #9089fc var(--tw-gradient-to-position); }
+.to-black { --tw-gradient-to: #000 var(--tw-gradient-to-position); }
+.to-cyan-400 { --tw-gradient-to: #22d3ee var(--tw-gradient-to-position); }
+.to-cyan-600 { --tw-gradient-to: #0891b2 var(--tw-gradient-to-position); }
+.to-cyan-700 { --tw-gradient-to: #0e7490 var(--tw-gradient-to-position); }
+.to-gray-50 { --tw-gradient-to: #f9fafb var(--tw-gradient-to-position); }
+.to-green-400 { --tw-gradient-to: #4ade80 var(--tw-gradient-to-position); }
+.to-indigo-300 { --tw-gradient-to: #a5b4fc var(--tw-gradient-to-position); }
+.to-indigo-600 { --tw-gradient-to: #4f46e5 var(--tw-gradient-to-position); }
+.to-indigo-700 { --tw-gradient-to: #4338ca var(--tw-gradient-to-position); }
+.to-pink-500 { --tw-gradient-to: #ec4899 var(--tw-gradient-to-position); }
+.to-teal-600 { --tw-gradient-to: #0d9488 var(--tw-gradient-to-position); }
+.to-white { --tw-gradient-to: #fff var(--tw-gradient-to-position); }
+.bg-cover { background-size: cover; }
+.bg-clip-text { background-clip: text; }
+.bg-center { background-position: center center; }
+.bg-origin-border { background-origin: border-box; }
+.fill-\[\#24292F\] { fill: rgb(36, 41, 47); }
+.fill-blue-400 { fill: rgb(96, 165, 250); }
+.fill-blue-500 { fill: rgb(59, 130, 246); }
+.fill-current { fill: currentcolor; }
+.fill-gray-300 { fill: rgb(209, 213, 219); }
+.fill-gray-400 { fill: rgb(156, 163, 175); }
+.fill-gray-50 { fill: rgb(249, 250, 251); }
+.fill-gray-800\/20 { fill: rgba(31, 41, 55, 0.2); }
+.fill-gray-900 { fill: rgb(17, 24, 39); }
+.fill-green-400 { fill: rgb(74, 222, 128); }
+.fill-green-500 { fill: rgb(34, 197, 94); }
+.fill-indigo-400 { fill: rgb(129, 140, 248); }
+.fill-indigo-500 { fill: rgb(99, 102, 241); }
+.fill-pink-400 { fill: rgb(244, 114, 182); }
+.fill-pink-500 { fill: rgb(236, 72, 153); }
+.fill-purple-400 { fill: rgb(192, 132, 252); }
+.fill-purple-500 { fill: rgb(168, 85, 247); }
+.fill-red-400 { fill: rgb(248, 113, 113); }
+.fill-red-500 { fill: rgb(239, 68, 68); }
+.fill-white { fill: rgb(255, 255, 255); }
+.fill-white\/50 { fill: rgba(255, 255, 255, 0.5); }
+.fill-yellow-400 { fill: rgb(250, 204, 21); }
+.fill-yellow-500 { fill: rgb(234, 179, 8); }
+.stroke-blue-700\/50 { stroke: rgba(29, 78, 216, 0.5); }
+.stroke-blue-800\/50 { stroke: rgba(30, 64, 175, 0.5); }
+.stroke-gray-200 { stroke: rgb(229, 231, 235); }
+.stroke-gray-600\/50 { stroke: rgba(75, 85, 99, 0.5); }
+.stroke-gray-700 { stroke: rgb(55, 65, 81); }
+.stroke-gray-700\/50 { stroke: rgba(55, 65, 81, 0.5); }
+.stroke-gray-900\/10 { stroke: rgba(17, 24, 39, 0.1); }
+.stroke-gray-900\/5 { stroke: rgba(17, 24, 39, 0.05); }
+.stroke-green-700\/50 { stroke: rgba(21, 128, 61, 0.5); }
+.stroke-green-800\/50 { stroke: rgba(22, 101, 52, 0.5); }
+.stroke-indigo-600\/50 { stroke: rgba(79, 70, 229, 0.5); }
+.stroke-indigo-700\/50 { stroke: rgba(67, 56, 202, 0.5); }
+.stroke-pink-700\/50 { stroke: rgba(190, 24, 93, 0.5); }
+.stroke-pink-800\/50 { stroke: rgba(157, 23, 77, 0.5); }
+.stroke-red-600\/50 { stroke: rgba(220, 38, 38, 0.5); }
+.stroke-red-700\/50 { stroke: rgba(185, 28, 28, 0.5); }
+.stroke-violet-600\/50 { stroke: rgba(124, 58, 237, 0.5); }
+.stroke-violet-700\/50 { stroke: rgba(109, 40, 217, 0.5); }
+.stroke-white\/10 { stroke: rgba(255, 255, 255, 0.1); }
+.stroke-white\/20 { stroke: rgba(255, 255, 255, 0.2); }
+.stroke-yellow-700\/50 { stroke: rgba(161, 98, 7, 0.5); }
+.stroke-yellow-800\/50 { stroke: rgba(133, 77, 14, 0.5); }
+.stroke-2 { stroke-width: 2; }
+.object-contain { object-fit: contain; }
+.object-cover { object-fit: cover; }
+.object-center { object-position: center center; }
+.object-left { object-position: left center; }
+.object-left-top { object-position: left top; }
+.object-right { object-position: right center; }
+.object-top { object-position: center top; }
+.p-0 { padding: 0px; }
+.p-0\.5 { padding: 0.125rem; }
+.p-1 { padding: 0.25rem; }
+.p-1\.5 { padding: 0.375rem; }
+.p-10 { padding: 2.5rem; }
+.p-12 { padding: 3rem; }
+.p-2 { padding: 0.5rem; }
+.p-2\.5 { padding: 0.625rem; }
+.p-3 { padding: 0.75rem; }
+.p-4 { padding: 1rem; }
+.p-5 { padding: 1.25rem; }
+.p-6 { padding: 1.5rem; }
+.p-8 { padding: 2rem; }
+.p-px { padding: 1px; }
+.px-0 { padding-left: 0px; padding-right: 0px; }
+.px-0\.5 { padding-left: 0.125rem; padding-right: 0.125rem; }
+.px-1 { padding-left: 0.25rem; padding-right: 0.25rem; }
+.px-1\.5 { padding-left: 0.375rem; padding-right: 0.375rem; }
+.px-12 { padding-left: 3rem; padding-right: 3rem; }
+.px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
+.px-2\.5 { padding-left: 0.625rem; padding-right: 0.625rem; }
+.px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
+.px-3\.5 { padding-left: 0.875rem; padding-right: 0.875rem; }
+.px-36 { padding-left: 9rem; padding-right: 9rem; }
+.px-4 { padding-left: 1rem; padding-right: 1rem; }
+.px-5 { padding-left: 1.25rem; padding-right: 1.25rem; }
+.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
+.px-7 { padding-left: 1.75rem; padding-right: 1.75rem; }
+.px-8 { padding-left: 2rem; padding-right: 2rem; }
+.py-0 { padding-top: 0px; padding-bottom: 0px; }
+.py-0\.5 { padding-top: 0.125rem; padding-bottom: 0.125rem; }
+.py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
+.py-1\.5 { padding-top: 0.375rem; padding-bottom: 0.375rem; }
+.py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
+.py-12 { padding-top: 3rem; padding-bottom: 3rem; }
+.py-14 { padding-top: 3.5rem; padding-bottom: 3.5rem; }
+.py-16 { padding-top: 4rem; padding-bottom: 4rem; }
+.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
+.py-2\.5 { padding-top: 0.625rem; padding-bottom: 0.625rem; }
+.py-20 { padding-top: 5rem; padding-bottom: 5rem; }
+.py-24 { padding-top: 6rem; padding-bottom: 6rem; }
+.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
+.py-3\.5 { padding-top: 0.875rem; padding-bottom: 0.875rem; }
+.py-32 { padding-top: 8rem; padding-bottom: 8rem; }
+.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
+.py-5 { padding-top: 1.25rem; padding-bottom: 1.25rem; }
+.py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
+.py-8 { padding-top: 2rem; padding-bottom: 2rem; }
+.py-px { padding-top: 1px; padding-bottom: 1px; }
+.pb-0 { padding-bottom: 0px; }
+.pb-1 { padding-bottom: 0.25rem; }
+.pb-1\.5 { padding-bottom: 0.375rem; }
+.pb-10 { padding-bottom: 2.5rem; }
+.pb-12 { padding-bottom: 3rem; }
+.pb-14 { padding-bottom: 3.5rem; }
+.pb-16 { padding-bottom: 4rem; }
+.pb-2 { padding-bottom: 0.5rem; }
+.pb-20 { padding-bottom: 5rem; }
+.pb-24 { padding-bottom: 6rem; }
+.pb-3 { padding-bottom: 0.75rem; }
+.pb-32 { padding-bottom: 8rem; }
+.pb-36 { padding-bottom: 9rem; }
+.pb-4 { padding-bottom: 1rem; }
+.pb-5 { padding-bottom: 1.25rem; }
+.pb-6 { padding-bottom: 1.5rem; }
+.pb-64 { padding-bottom: 16rem; }
+.pb-8 { padding-bottom: 2rem; }
+.pb-80 { padding-bottom: 20rem; }
+.pb-9 { padding-bottom: 2.25rem; }
+.pb-96 { padding-bottom: 24rem; }
+.pb-px { padding-bottom: 1px; }
+.pl-0 { padding-left: 0px; }
+.pl-1 { padding-left: 0.25rem; }
+.pl-1\.5 { padding-left: 0.375rem; }
+.pl-10 { padding-left: 2.5rem; }
+.pl-11 { padding-left: 2.75rem; }
+.pl-12 { padding-left: 3rem; }
+.pl-16 { padding-left: 4rem; }
+.pl-2 { padding-left: 0.5rem; }
+.pl-20 { padding-left: 5rem; }
+.pl-3 { padding-left: 0.75rem; }
+.pl-4 { padding-left: 1rem; }
+.pl-5 { padding-left: 1.25rem; }
+.pl-6 { padding-left: 1.5rem; }
+.pl-7 { padding-left: 1.75rem; }
+.pl-8 { padding-left: 2rem; }
+.pl-9 { padding-left: 2.25rem; }
+.pr-0 { padding-right: 0px; }
+.pr-1 { padding-right: 0.25rem; }
+.pr-1\.5 { padding-right: 0.375rem; }
+.pr-10 { padding-right: 2.5rem; }
+.pr-12 { padding-right: 3rem; }
+.pr-14 { padding-right: 3.5rem; }
+.pr-16 { padding-right: 4rem; }
+.pr-2 { padding-right: 0.5rem; }
+.pr-20 { padding-right: 5rem; }
+.pr-3 { padding-right: 0.75rem; }
+.pr-3\.5 { padding-right: 0.875rem; }
+.pr-4 { padding-right: 1rem; }
+.pr-5 { padding-right: 1.25rem; }
+.pr-6 { padding-right: 1.5rem; }
+.pr-7 { padding-right: 1.75rem; }
+.pr-8 { padding-right: 2rem; }
+.pr-9 { padding-right: 2.25rem; }
+.pt-0 { padding-top: 0px; }
+.pt-0\.5 { padding-top: 0.125rem; }
+.pt-1 { padding-top: 0.25rem; }
+.pt-1\.5 { padding-top: 0.375rem; }
+.pt-10 { padding-top: 2.5rem; }
+.pt-11 { padding-top: 2.75rem; }
+.pt-12 { padding-top: 3rem; }
+.pt-14 { padding-top: 3.5rem; }
+.pt-16 { padding-top: 4rem; }
+.pt-2 { padding-top: 0.5rem; }
+.pt-2\.5 { padding-top: 0.625rem; }
+.pt-20 { padding-top: 5rem; }
+.pt-24 { padding-top: 6rem; }
+.pt-3 { padding-top: 0.75rem; }
+.pt-3\.5 { padding-top: 0.875rem; }
+.pt-32 { padding-top: 8rem; }
+.pt-36 { padding-top: 9rem; }
+.pt-4 { padding-top: 1rem; }
+.pt-48 { padding-top: 12rem; }
+.pt-5 { padding-top: 1.25rem; }
+.pt-6 { padding-top: 1.5rem; }
+.pt-64 { padding-top: 16rem; }
+.pt-8 { padding-top: 2rem; }
+.pt-80 { padding-top: 20rem; }
+.pt-\[7\%\] { padding-top: 7%; }
+.pt-px { padding-top: 1px; }
+.text-left { text-align: left; }
+.text-center { text-align: center; }
+.text-right { text-align: right; }
+.align-top { vertical-align: top; }
+.align-middle { vertical-align: middle; }
+.font-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
+.font-sans { font-family: "Inter var", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-feature-settings: "cv02", "cv03", "cv04", "cv11"; }
+.text-2xl { font-size: 1.5rem; line-height: 2rem; }
+.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
+.text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
+.text-5xl { font-size: 3rem; line-height: 1; }
+.text-6xl { font-size: 3.75rem; line-height: 1; }
+.text-\[0\.625rem\] { font-size: 0.625rem; }
+.text-\[0\.8125rem\] { font-size: 0.8125rem; }
+.text-base { font-size: 1rem; line-height: 1.5rem; }
+.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
+.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
+.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
+.text-xs { font-size: 0.75rem; line-height: 1rem; }
+.font-bold { font-weight: 700; }
+.font-medium { font-weight: 500; }
+.font-normal { font-weight: 400; }
+.font-semibold { font-weight: 600; }
+.uppercase { text-transform: uppercase; }
+.capitalize { text-transform: capitalize; }
+.italic { font-style: italic; }
+.not-italic { font-style: normal; }
+.tabular-nums { --tw-numeric-spacing: tabular-nums; font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction); }
+.leading-10 { line-height: 2.5rem; }
+.leading-4 { line-height: 1rem; }
+.leading-5 { line-height: 1.25rem; }
+.leading-6 { line-height: 1.5rem; }
+.leading-7 { line-height: 1.75rem; }
+.leading-8 { line-height: 2rem; }
+.leading-9 { line-height: 2.25rem; }
+.leading-none { line-height: 1; }
+.leading-normal { line-height: 1.5; }
+.leading-tight { line-height: 1.25; }
+.tracking-normal { letter-spacing: 0em; }
+.tracking-tight { letter-spacing: -0.025em; }
+.tracking-wide { letter-spacing: 0.025em; }
+.text-\[\#7dd3fc\] { --tw-text-opacity: 1; color: rgb(125 211 252 / var(--tw-text-opacity)); }
+.text-blue-200 { --tw-text-opacity: 1; color: rgb(191 219 254 / var(--tw-text-opacity)); }
+.text-blue-400 { --tw-text-opacity: 1; color: rgb(96 165 250 / var(--tw-text-opacity)); }
+.text-blue-500 { --tw-text-opacity: 1; color: rgb(59 130 246 / var(--tw-text-opacity)); }
+.text-blue-600 { --tw-text-opacity: 1; color: rgb(37 99 235 / var(--tw-text-opacity)); }
+.text-blue-700 { --tw-text-opacity: 1; color: rgb(29 78 216 / var(--tw-text-opacity)); }
+.text-blue-900 { --tw-text-opacity: 1; color: rgb(30 58 138 / var(--tw-text-opacity)); }
+.text-cyan-100 { --tw-text-opacity: 1; color: rgb(207 250 254 / var(--tw-text-opacity)); }
+.text-cyan-200 { --tw-text-opacity: 1; color: rgb(165 243 252 / var(--tw-text-opacity)); }
+.text-cyan-600 { --tw-text-opacity: 1; color: rgb(8 145 178 / var(--tw-text-opacity)); }
+.text-cyan-700 { --tw-text-opacity: 1; color: rgb(14 116 144 / var(--tw-text-opacity)); }
+.text-cyan-800 { --tw-text-opacity: 1; color: rgb(21 94 117 / var(--tw-text-opacity)); }
+.text-cyan-900 { --tw-text-opacity: 1; color: rgb(22 78 99 / var(--tw-text-opacity)); }
+.text-emerald-300 { --tw-text-opacity: 1; color: rgb(110 231 183 / var(--tw-text-opacity)); }
+.text-gray-200 { --tw-text-opacity: 1; color: rgb(229 231 235 / var(--tw-text-opacity)); }
+.text-gray-300 { --tw-text-opacity: 1; color: rgb(209 213 219 / var(--tw-text-opacity)); }
+.text-gray-400 { --tw-text-opacity: 1; color: rgb(156 163 175 / var(--tw-text-opacity)); }
+.text-gray-50 { --tw-text-opacity: 1; color: rgb(249 250 251 / var(--tw-text-opacity)); }
+.text-gray-500 { --tw-text-opacity: 1; color: rgb(107 114 128 / var(--tw-text-opacity)); }
+.text-gray-600 { --tw-text-opacity: 1; color: rgb(75 85 99 / var(--tw-text-opacity)); }
+.text-gray-700 { --tw-text-opacity: 1; color: rgb(55 65 81 / var(--tw-text-opacity)); }
+.text-gray-800 { --tw-text-opacity: 1; color: rgb(31 41 55 / var(--tw-text-opacity)); }
+.text-gray-900 { --tw-text-opacity: 1; color: rgb(17 24 39 / var(--tw-text-opacity)); }
+.text-green-400 { --tw-text-opacity: 1; color: rgb(74 222 128 / var(--tw-text-opacity)); }
+.text-green-500 { --tw-text-opacity: 1; color: rgb(34 197 94 / var(--tw-text-opacity)); }
+.text-green-600 { --tw-text-opacity: 1; color: rgb(22 163 74 / var(--tw-text-opacity)); }
+.text-green-700 { --tw-text-opacity: 1; color: rgb(21 128 61 / var(--tw-text-opacity)); }
+.text-green-800 { --tw-text-opacity: 1; color: rgb(22 101 52 / var(--tw-text-opacity)); }
+.text-indigo-100 { --tw-text-opacity: 1; color: rgb(224 231 255 / var(--tw-text-opacity)); }
+.text-indigo-200 { --tw-text-opacity: 1; color: rgb(199 210 254 / var(--tw-text-opacity)); }
+.text-indigo-300 { --tw-text-opacity: 1; color: rgb(165 180 252 / var(--tw-text-opacity)); }
+.text-indigo-400 { --tw-text-opacity: 1; color: rgb(129 140 248 / var(--tw-text-opacity)); }
+.text-indigo-50 { --tw-text-opacity: 1; color: rgb(238 242 255 / var(--tw-text-opacity)); }
+.text-indigo-500 { --tw-text-opacity: 1; color: rgb(99 102 241 / var(--tw-text-opacity)); }
+.text-indigo-600 { --tw-text-opacity: 1; color: rgb(79 70 229 / var(--tw-text-opacity)); }
+.text-indigo-700 { --tw-text-opacity: 1; color: rgb(67 56 202 / var(--tw-text-opacity)); }
+.text-indigo-800 { --tw-text-opacity: 1; color: rgb(55 48 163 / var(--tw-text-opacity)); }
+.text-indigo-900 { --tw-text-opacity: 1; color: rgb(49 46 129 / var(--tw-text-opacity)); }
+.text-orange-50 { --tw-text-opacity: 1; color: rgb(255 247 237 / var(--tw-text-opacity)); }
+.text-orange-500 { --tw-text-opacity: 1; color: rgb(249 115 22 / var(--tw-text-opacity)); }
+.text-orange-600 { --tw-text-opacity: 1; color: rgb(234 88 12 / var(--tw-text-opacity)); }
+.text-orange-700 { --tw-text-opacity: 1; color: rgb(194 65 12 / var(--tw-text-opacity)); }
+.text-orange-900 { --tw-text-opacity: 1; color: rgb(124 45 18 / var(--tw-text-opacity)); }
+.text-pink-400 { --tw-text-opacity: 1; color: rgb(244 114 182 / var(--tw-text-opacity)); }
+.text-pink-500 { --tw-text-opacity: 1; color: rgb(236 72 153 / var(--tw-text-opacity)); }
+.text-pink-700 { --tw-text-opacity: 1; color: rgb(190 24 93 / var(--tw-text-opacity)); }
+.text-pink-800 { --tw-text-opacity: 1; color: rgb(157 23 77 / var(--tw-text-opacity)); }
+.text-purple-200 { --tw-text-opacity: 1; color: rgb(233 213 255 / var(--tw-text-opacity)); }
+.text-purple-400 { --tw-text-opacity: 1; color: rgb(192 132 252 / var(--tw-text-opacity)); }
+.text-purple-500 { --tw-text-opacity: 1; color: rgb(168 85 247 / var(--tw-text-opacity)); }
+.text-purple-600 { --tw-text-opacity: 1; color: rgb(147 51 234 / var(--tw-text-opacity)); }
+.text-purple-700 { --tw-text-opacity: 1; color: rgb(126 34 206 / var(--tw-text-opacity)); }
+.text-purple-900 { --tw-text-opacity: 1; color: rgb(88 28 135 / var(--tw-text-opacity)); }
+.text-red-400 { --tw-text-opacity: 1; color: rgb(248 113 113 / var(--tw-text-opacity)); }
+.text-red-500 { --tw-text-opacity: 1; color: rgb(239 68 68 / var(--tw-text-opacity)); }
+.text-red-600 { --tw-text-opacity: 1; color: rgb(220 38 38 / var(--tw-text-opacity)); }
+.text-red-700 { --tw-text-opacity: 1; color: rgb(185 28 28 / var(--tw-text-opacity)); }
+.text-red-800 { --tw-text-opacity: 1; color: rgb(153 27 27 / var(--tw-text-opacity)); }
+.text-red-900 { --tw-text-opacity: 1; color: rgb(127 29 29 / var(--tw-text-opacity)); }
+.text-rose-100 { --tw-text-opacity: 1; color: rgb(255 228 230 / var(--tw-text-opacity)); }
+.text-rose-200 { --tw-text-opacity: 1; color: rgb(254 205 211 / var(--tw-text-opacity)); }
+.text-rose-400 { --tw-text-opacity: 1; color: rgb(251 113 133 / var(--tw-text-opacity)); }
+.text-rose-500 { --tw-text-opacity: 1; color: rgb(244 63 94 / var(--tw-text-opacity)); }
+.text-rose-600 { --tw-text-opacity: 1; color: rgb(225 29 72 / var(--tw-text-opacity)); }
+.text-rose-700 { --tw-text-opacity: 1; color: rgb(190 18 60 / var(--tw-text-opacity)); }
+.text-sky-100 { --tw-text-opacity: 1; color: rgb(224 242 254 / var(--tw-text-opacity)); }
+.text-sky-200 { --tw-text-opacity: 1; color: rgb(186 230 253 / var(--tw-text-opacity)); }
+.text-sky-600 { --tw-text-opacity: 1; color: rgb(2 132 199 / var(--tw-text-opacity)); }
+.text-sky-700 { --tw-text-opacity: 1; color: rgb(3 105 161 / var(--tw-text-opacity)); }
+.text-sky-900 { --tw-text-opacity: 1; color: rgb(12 74 110 / var(--tw-text-opacity)); }
+.text-slate-300 { --tw-text-opacity: 1; color: rgb(203 213 225 / var(--tw-text-opacity)); }
+.text-slate-400 { --tw-text-opacity: 1; color: rgb(148 163 184 / var(--tw-text-opacity)); }
+.text-slate-500 { --tw-text-opacity: 1; color: rgb(100 116 139 / var(--tw-text-opacity)); }
+.text-slate-600 { --tw-text-opacity: 1; color: rgb(71 85 105 / var(--tw-text-opacity)); }
+.text-slate-700 { --tw-text-opacity: 1; color: rgb(51 65 85 / var(--tw-text-opacity)); }
+.text-slate-900 { --tw-text-opacity: 1; color: rgb(15 23 42 / var(--tw-text-opacity)); }
+.text-stone-200 { --tw-text-opacity: 1; color: rgb(231 229 228 / var(--tw-text-opacity)); }
+.text-stone-400 { --tw-text-opacity: 1; color: rgb(168 162 158 / var(--tw-text-opacity)); }
+.text-stone-500 { --tw-text-opacity: 1; color: rgb(120 113 108 / var(--tw-text-opacity)); }
+.text-stone-700 { --tw-text-opacity: 1; color: rgb(68 64 60 / var(--tw-text-opacity)); }
+.text-stone-900 { --tw-text-opacity: 1; color: rgb(28 25 23 / var(--tw-text-opacity)); }
+.text-teal-200 { --tw-text-opacity: 1; color: rgb(153 246 228 / var(--tw-text-opacity)); }
+.text-teal-50 { --tw-text-opacity: 1; color: rgb(240 253 250 / var(--tw-text-opacity)); }
+.text-teal-500 { --tw-text-opacity: 1; color: rgb(20 184 166 / var(--tw-text-opacity)); }
+.text-teal-700 { --tw-text-opacity: 1; color: rgb(15 118 110 / var(--tw-text-opacity)); }
+.text-transparent { color: transparent; }
+.text-white { --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity)); }
+.text-white\/60 { color: rgba(255, 255, 255, 0.6); }
+.text-white\/70 { color: rgba(255, 255, 255, 0.7); }
+.text-yellow-300 { --tw-text-opacity: 1; color: rgb(253 224 71 / var(--tw-text-opacity)); }
+.text-yellow-400 { --tw-text-opacity: 1; color: rgb(250 204 21 / var(--tw-text-opacity)); }
+.text-yellow-500 { --tw-text-opacity: 1; color: rgb(234 179 8 / var(--tw-text-opacity)); }
+.text-yellow-700 { --tw-text-opacity: 1; color: rgb(161 98 7 / var(--tw-text-opacity)); }
+.text-yellow-800 { --tw-text-opacity: 1; color: rgb(133 77 14 / var(--tw-text-opacity)); }
+.text-opacity-100 { --tw-text-opacity: 1; }
+.text-opacity-40 { --tw-text-opacity: 0.4; }
+.text-opacity-75 { --tw-text-opacity: 0.75; }
+.underline { text-decoration-line: underline; }
+.antialiased { -webkit-font-smoothing: antialiased; }
+.placeholder-gray-500::placeholder { --tw-placeholder-opacity: 1; color: rgb(107 114 128 / var(--tw-placeholder-opacity)); }
+.placeholder-slate-400::placeholder { --tw-placeholder-opacity: 1; color: rgb(148 163 184 / var(--tw-placeholder-opacity)); }
+.placeholder-stone-500::placeholder { --tw-placeholder-opacity: 1; color: rgb(120 113 108 / var(--tw-placeholder-opacity)); }
+.opacity-0 { opacity: 0; }
+.opacity-100 { opacity: 1; }
+.opacity-20 { opacity: 0.2; }
+.opacity-25 { opacity: 0.25; }
+.opacity-30 { opacity: 0.3; }
+.opacity-40 { opacity: 0.4; }
+.opacity-50 { opacity: 0.5; }
+.opacity-75 { opacity: 0.75; }
+.opacity-90 { opacity: 0.9; }
+.opacity-\[0\.45\] { opacity: 0.45; }
+.mix-blend-multiply { mix-blend-mode: multiply; }
+.shadow { --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
+.shadow-2xl { --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
+.shadow-inner { --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05); --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
+.shadow-lg { --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
+.shadow-md { --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
+.shadow-sm { --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
+.shadow-xl { --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
+.shadow-indigo-600\/10 { --tw-shadow-color: rgb(79 70 229 / 0.1); --tw-shadow: var(--tw-shadow-colored); }
+.outline { outline-style: solid; }
+.ring { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
+.ring-0 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
+.ring-1 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
+.ring-2 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
+.ring-4 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
+.ring-8 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
+.ring-inset { --tw-ring-inset: inset; }
+.ring-black { --tw-ring-opacity: 1; --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity)); }
+.ring-black\/10 { --tw-ring-color: rgb(0 0 0 / 0.1); }
+.ring-blue-400\/30 { --tw-ring-color: rgb(96 165 250 / 0.3); }
+.ring-blue-500 { --tw-ring-opacity: 1; --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity)); }
+.ring-blue-700\/10 { --tw-ring-color: rgb(29 78 216 / 0.1); }
+.ring-gray-100 { --tw-ring-opacity: 1; --tw-ring-color: rgb(243 244 246 / var(--tw-ring-opacity)); }
+.ring-gray-200 { --tw-ring-opacity: 1; --tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity)); }
+.ring-gray-300 { --tw-ring-opacity: 1; --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity)); }
+.ring-gray-400 { --tw-ring-opacity: 1; --tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity)); }
+.ring-gray-400\/10 { --tw-ring-color: rgb(156 163 175 / 0.1); }
+.ring-gray-400\/20 { --tw-ring-color: rgb(156 163 175 / 0.2); }
+.ring-gray-500 { --tw-ring-opacity: 1; --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity)); }
+.ring-gray-500\/10 { --tw-ring-color: rgb(107 114 128 / 0.1); }
+.ring-gray-700 { --tw-ring-opacity: 1; --tw-ring-color: rgb(55 65 81 / var(--tw-ring-opacity)); }
+.ring-gray-800 { --tw-ring-opacity: 1; --tw-ring-color: rgb(31 41 55 / var(--tw-ring-opacity)); }
+.ring-gray-900 { --tw-ring-opacity: 1; --tw-ring-color: rgb(17 24 39 / var(--tw-ring-opacity)); }
+.ring-gray-900\/10 { --tw-ring-color: rgb(17 24 39 / 0.1); }
+.ring-gray-900\/5 { --tw-ring-color: rgb(17 24 39 / 0.05); }
+.ring-green-500 { --tw-ring-opacity: 1; --tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity)); }
+.ring-green-500\/20 { --tw-ring-color: rgb(34 197 94 / 0.2); }
+.ring-green-600\/20 { --tw-ring-color: rgb(22 163 74 / 0.2); }
+.ring-indigo-200 { --tw-ring-opacity: 1; --tw-ring-color: rgb(199 210 254 / var(--tw-ring-opacity)); }
+.ring-indigo-400\/30 { --tw-ring-color: rgb(129 140 248 / 0.3); }
+.ring-indigo-50 { --tw-ring-opacity: 1; --tw-ring-color: rgb(238 242 255 / var(--tw-ring-opacity)); }
+.ring-indigo-500 { --tw-ring-opacity: 1; --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity)); }
+.ring-indigo-500\/20 { --tw-ring-color: rgb(99 102 241 / 0.2); }
+.ring-indigo-600 { --tw-ring-opacity: 1; --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity)); }
+.ring-indigo-600\/10 { --tw-ring-color: rgb(79 70 229 / 0.1); }
+.ring-indigo-700 { --tw-ring-opacity: 1; --tw-ring-color: rgb(67 56 202 / var(--tw-ring-opacity)); }
+.ring-indigo-700\/10 { --tw-ring-color: rgb(67 56 202 / 0.1); }
+.ring-pink-400\/20 { --tw-ring-color: rgb(244 114 182 / 0.2); }
+.ring-pink-500 { --tw-ring-opacity: 1; --tw-ring-color: rgb(236 72 153 / var(--tw-ring-opacity)); }
+.ring-pink-700\/10 { --tw-ring-color: rgb(190 24 93 / 0.1); }
+.ring-purple-400\/30 { --tw-ring-color: rgb(192 132 252 / 0.3); }
+.ring-purple-500 { --tw-ring-opacity: 1; --tw-ring-color: rgb(168 85 247 / var(--tw-ring-opacity)); }
+.ring-purple-700\/10 { --tw-ring-color: rgb(126 34 206 / 0.1); }
+.ring-red-300 { --tw-ring-opacity: 1; --tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity)); }
+.ring-red-400\/20 { --tw-ring-color: rgb(248 113 113 / 0.2); }
+.ring-red-600\/10 { --tw-ring-color: rgb(220 38 38 / 0.1); }
+.ring-slate-300 { --tw-ring-opacity: 1; --tw-ring-color: rgb(203 213 225 / var(--tw-ring-opacity)); }
+.ring-transparent { --tw-ring-color: transparent; }
+.ring-white { --tw-ring-opacity: 1; --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity)); }
+.ring-white\/10 { --tw-ring-color: rgb(255 255 255 / 0.1); }
+.ring-white\/5 { --tw-ring-color: rgb(255 255 255 / 0.05); }
+.ring-yellow-400\/20 { --tw-ring-color: rgb(250 204 21 / 0.2); }
+.ring-yellow-500 { --tw-ring-opacity: 1; --tw-ring-color: rgb(234 179 8 / var(--tw-ring-opacity)); }
+.ring-yellow-600\/20 { --tw-ring-color: rgb(202 138 4 / 0.2); }
+.ring-opacity-100 { --tw-ring-opacity: 1; }
+.ring-opacity-20 { --tw-ring-opacity: 0.2; }
+.ring-opacity-5 { --tw-ring-opacity: 0.05; }
+.ring-offset-1 { --tw-ring-offset-width: 1px; }
+.ring-offset-2 { --tw-ring-offset-width: 2px; }
+.blur-2xl { --tw-blur: blur(40px); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
+.blur-3xl { --tw-blur: blur(64px); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
+.blur-\[118px\] { --tw-blur: blur(118px); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
+.brightness-125 { --tw-brightness: brightness(1.25); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
+.brightness-150 { --tw-brightness: brightness(1.5); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
+.drop-shadow-xl { --tw-drop-shadow: drop-shadow(0 20px 13px rgb(0 0 0 / 0.03)) drop-shadow(0 8px 5px rgb(0 0 0 / 0.08)); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
+.grayscale { --tw-grayscale: grayscale(100%); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
+.saturate-0 { --tw-saturate: saturate(0); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
+.filter { filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
+.backdrop-blur { --tw-backdrop-blur: blur(8px); backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); }
+.backdrop-blur-md { --tw-backdrop-blur: blur(12px); backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); }
+.backdrop-blur-xl { --tw-backdrop-blur: blur(24px); backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); }
+.backdrop-filter { backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); }
+.transition { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
+.transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
+.transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
+.transition-opacity { transition-property: opacity; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
+.transition-transform { transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
+.duration-100 { transition-duration: 100ms; }
+.duration-150 { transition-duration: 150ms; }
+.duration-200 { transition-duration: 200ms; }
+.duration-300 { transition-duration: 300ms; }
+.duration-500 { transition-duration: 500ms; }
+.duration-75 { transition-duration: 75ms; }
+.ease-in { transition-timing-function: cubic-bezier(0.4, 0, 1, 1); }
+.ease-in-out { transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }
+.ease-linear { transition-timing-function: linear; }
+.ease-out { transition-timing-function: cubic-bezier(0, 0, 0.2, 1); }
+.\[clip-path\:inset\(0\)\] { clip-path: inset(0px); }
+.\[mask-image\:radial-gradient\(100\%_100\%_at_top_right\,white\,transparent\)\] { -webkit-mask-image: radial-gradient(100% 100% at right top, white, transparent); }
+.\[mask-image\:radial-gradient\(32rem_32rem_at_center\,white\,transparent\)\] { -webkit-mask-image: radial-gradient(32rem 32rem at center center, white, transparent); }
+.\[mask-image\:radial-gradient\(50\%_45\%_at_50\%_55\%\,white\,transparent\)\] { -webkit-mask-image: radial-gradient(50% 45% at 50% 55%, white, transparent); }
+.\[mask-image\:radial-gradient\(64rem_64rem_at_111\.5rem_0\%\,white\,transparent\)\] { -webkit-mask-image: radial-gradient(64rem 64rem at 111.5rem 0%, white, transparent); }
+.\[mask-image\:radial-gradient\(64rem_64rem_at_top\,white\,transparent\)\] { -webkit-mask-image: radial-gradient(64rem 64rem at center top, white, transparent); }
+.\[mask-image\:radial-gradient\(closest-side\,white\,transparent\)\] { -webkit-mask-image: radial-gradient(closest-side, white, transparent); }
+@media (min-width: 640px) {
+ .sm\:aspect-h-1 { --tw-aspect-h: 1; }
+ .sm\:aspect-h-2 { --tw-aspect-h: 2; }
+ .sm\:aspect-h-3 { --tw-aspect-h: 3; }
+ .sm\:aspect-h-5 { --tw-aspect-h: 5; }
+ .sm\:aspect-h-7 { --tw-aspect-h: 7; }
+ .sm\:aspect-w-1 { position: relative; padding-bottom: calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%); --tw-aspect-w: 1; }
+ .sm\:aspect-w-1 > * { position: absolute; height: 100%; width: 100%; inset: 0px; }
+ .sm\:aspect-w-16 { position: relative; padding-bottom: calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%); --tw-aspect-w: 16; }
+ .sm\:aspect-w-16 > * { position: absolute; height: 100%; width: 100%; inset: 0px; }
+ .sm\:aspect-w-2 { position: relative; padding-bottom: calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%); --tw-aspect-w: 2; }
+ .sm\:aspect-w-2 > * { position: absolute; height: 100%; width: 100%; inset: 0px; }
+ .sm\:aspect-w-4 { position: relative; padding-bottom: calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%); --tw-aspect-w: 4; }
+ .sm\:aspect-w-4 > * { position: absolute; height: 100%; width: 100%; inset: 0px; }
+ .sm\:aspect-w-5 { position: relative; padding-bottom: calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%); --tw-aspect-w: 5; }
+ .sm\:aspect-w-5 > * { position: absolute; height: 100%; width: 100%; inset: 0px; }
+ .sm\:aspect-none { position: static; padding-bottom: 0px; }
+ .sm\:aspect-none > * { position: static; height: auto; width: auto; inset: auto; }
+}
+@media (min-width: 768px) {
+ .md\:aspect-h-1 { --tw-aspect-h: 1; }
+ .md\:aspect-w-2 { position: relative; padding-bottom: calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%); --tw-aspect-w: 2; }
+ .md\:aspect-w-2 > * { position: absolute; height: 100%; width: 100%; inset: 0px; }
+}
+@media (min-width: 1024px) {
+ .lg\:aspect-h-1 { --tw-aspect-h: 1; }
+ .lg\:aspect-h-4 { --tw-aspect-h: 4; }
+ .lg\:aspect-h-6 { --tw-aspect-h: 6; }
+ .lg\:aspect-w-1 { position: relative; padding-bottom: calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%); --tw-aspect-w: 1; }
+ .lg\:aspect-w-1 > * { position: absolute; height: 100%; width: 100%; inset: 0px; }
+ .lg\:aspect-w-3 { position: relative; padding-bottom: calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%); --tw-aspect-w: 3; }
+ .lg\:aspect-w-3 > * { position: absolute; height: 100%; width: 100%; inset: 0px; }
+ .lg\:aspect-w-5 { position: relative; padding-bottom: calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%); --tw-aspect-w: 5; }
+ .lg\:aspect-w-5 > * { position: absolute; height: 100%; width: 100%; inset: 0px; }
+ .lg\:aspect-none { position: static; padding-bottom: 0px; }
+ .lg\:aspect-none > * { position: static; height: auto; width: auto; inset: auto; }
+}
+@media (min-width: 1280px) {
+ .xl\:aspect-h-8 { --tw-aspect-h: 8; }
+ .xl\:aspect-w-7 { position: relative; padding-bottom: calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%); --tw-aspect-w: 7; }
+ .xl\:aspect-w-7 > * { position: absolute; height: 100%; width: 100%; inset: 0px; }
+}
+.placeholder\:text-gray-400::placeholder { --tw-text-opacity: 1; color: rgb(156 163 175 / var(--tw-text-opacity)); }
+.placeholder\:text-gray-500::placeholder { --tw-text-opacity: 1; color: rgb(107 114 128 / var(--tw-text-opacity)); }
+.placeholder\:text-indigo-200::placeholder { --tw-text-opacity: 1; color: rgb(199 210 254 / var(--tw-text-opacity)); }
+.placeholder\:text-red-300::placeholder { --tw-text-opacity: 1; color: rgb(252 165 165 / var(--tw-text-opacity)); }
+.placeholder\:text-sky-100::placeholder { --tw-text-opacity: 1; color: rgb(224 242 254 / var(--tw-text-opacity)); }
+.placeholder\:text-slate-400::placeholder { --tw-text-opacity: 1; color: rgb(148 163 184 / var(--tw-text-opacity)); }
+.placeholder\:text-white::placeholder { --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity)); }
+.placeholder\:text-white\/75::placeholder { color: rgba(255, 255, 255, 0.75); }
+.before\:block::before { content: var(--tw-content); display: block; }
+.even\:bg-gray-50:nth-child(2n) { --tw-bg-opacity: 1; background-color: rgb(249 250 251 / var(--tw-bg-opacity)); }
+.focus-within\:z-10:focus-within { z-index: 10; }
+.focus-within\:border:focus-within { border-width: 1px; }
+.focus-within\:border-indigo-500:focus-within { --tw-border-opacity: 1; border-color: rgb(99 102 241 / var(--tw-border-opacity)); }
+.focus-within\:border-indigo-600:focus-within { --tw-border-opacity: 1; border-color: rgb(79 70 229 / var(--tw-border-opacity)); }
+.focus-within\:bg-gray-100:focus-within { --tw-bg-opacity: 1; background-color: rgb(243 244 246 / var(--tw-bg-opacity)); }
+.focus-within\:bg-gray-50:focus-within { --tw-bg-opacity: 1; background-color: rgb(249 250 251 / var(--tw-bg-opacity)); }
+.focus-within\:text-gray-400:focus-within { --tw-text-opacity: 1; color: rgb(156 163 175 / var(--tw-text-opacity)); }
+.focus-within\:text-gray-500:focus-within { --tw-text-opacity: 1; color: rgb(107 114 128 / var(--tw-text-opacity)); }
+.focus-within\:text-gray-600:focus-within { --tw-text-opacity: 1; color: rgb(75 85 99 / var(--tw-text-opacity)); }
+.focus-within\:opacity-100:focus-within { opacity: 1; }
+.focus-within\:outline-none:focus-within { outline: transparent solid 2px; outline-offset: 2px; }
+.focus-within\:ring-1:focus-within { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
+.focus-within\:ring-2:focus-within { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
+.focus-within\:ring-inset:focus-within { --tw-ring-inset: inset; }
+.focus-within\:ring-blue-600:focus-within { --tw-ring-opacity: 1; --tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity)); }
+.focus-within\:ring-cyan-500:focus-within { --tw-ring-opacity: 1; --tw-ring-color: rgb(6 182 212 / var(--tw-ring-opacity)); }
+.focus-within\:ring-indigo-500:focus-within { --tw-ring-opacity: 1; --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity)); }
+.focus-within\:ring-indigo-600:focus-within { --tw-ring-opacity: 1; --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity)); }
+.focus-within\:ring-pink-500:focus-within { --tw-ring-opacity: 1; --tw-ring-color: rgb(236 72 153 / var(--tw-ring-opacity)); }
+.focus-within\:ring-white:focus-within { --tw-ring-opacity: 1; --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity)); }
+.focus-within\:ring-offset-2:focus-within { --tw-ring-offset-width: 2px; }
+.focus-within\:ring-offset-gray-100:focus-within { --tw-ring-offset-color: #f3f4f6; }
+.focus-within\:ring-offset-gray-900:focus-within { --tw-ring-offset-color: #111827; }
+.hover\:z-10:hover { z-index: 10; }
+.hover\:border-gray-200:hover { --tw-border-opacity: 1; border-color: rgb(229 231 235 / var(--tw-border-opacity)); }
+.hover\:border-gray-300:hover { --tw-border-opacity: 1; border-color: rgb(209 213 219 / var(--tw-border-opacity)); }
+.hover\:border-gray-400:hover { --tw-border-opacity: 1; border-color: rgb(156 163 175 / var(--tw-border-opacity)); }
+.hover\:border-indigo-800:hover { --tw-border-opacity: 1; border-color: rgb(55 48 163 / var(--tw-border-opacity)); }
+.hover\:bg-black:hover { --tw-bg-opacity: 1; background-color: rgb(0 0 0 / var(--tw-bg-opacity)); }
+.hover\:bg-blue-100:hover { --tw-bg-opacity: 1; background-color: rgb(219 234 254 / var(--tw-bg-opacity)); }
+.hover\:bg-blue-200:hover { --tw-bg-opacity: 1; background-color: rgb(191 219 254 / var(--tw-bg-opacity)); }
+.hover\:bg-blue-50:hover { --tw-bg-opacity: 1; background-color: rgb(239 246 255 / var(--tw-bg-opacity)); }
+.hover\:bg-blue-500:hover { --tw-bg-opacity: 1; background-color: rgb(59 130 246 / var(--tw-bg-opacity)); }
+.hover\:bg-blue-600:hover { --tw-bg-opacity: 1; background-color: rgb(37 99 235 / var(--tw-bg-opacity)); }
+.hover\:bg-blue-600\/20:hover { background-color: rgba(37, 99, 235, 0.2); }
+.hover\:bg-blue-700:hover { --tw-bg-opacity: 1; background-color: rgb(29 78 216 / var(--tw-bg-opacity)); }
+.hover\:bg-cyan-100:hover { --tw-bg-opacity: 1; background-color: rgb(207 250 254 / var(--tw-bg-opacity)); }
+.hover\:bg-cyan-50:hover { --tw-bg-opacity: 1; background-color: rgb(236 254 255 / var(--tw-bg-opacity)); }
+.hover\:bg-cyan-500:hover { --tw-bg-opacity: 1; background-color: rgb(6 182 212 / var(--tw-bg-opacity)); }
+.hover\:bg-cyan-600:hover { --tw-bg-opacity: 1; background-color: rgb(8 145 178 / var(--tw-bg-opacity)); }
+.hover\:bg-cyan-700:hover { --tw-bg-opacity: 1; background-color: rgb(14 116 144 / var(--tw-bg-opacity)); }
+.hover\:bg-gray-100:hover { --tw-bg-opacity: 1; background-color: rgb(243 244 246 / var(--tw-bg-opacity)); }
+.hover\:bg-gray-200:hover { --tw-bg-opacity: 1; background-color: rgb(229 231 235 / var(--tw-bg-opacity)); }
+.hover\:bg-gray-300:hover { --tw-bg-opacity: 1; background-color: rgb(209 213 219 / var(--tw-bg-opacity)); }
+.hover\:bg-gray-400:hover { --tw-bg-opacity: 1; background-color: rgb(156 163 175 / var(--tw-bg-opacity)); }
+.hover\:bg-gray-400\/10:hover { background-color: rgba(156, 163, 175, 0.1); }
+.hover\:bg-gray-50:hover { --tw-bg-opacity: 1; background-color: rgb(249 250 251 / var(--tw-bg-opacity)); }
+.hover\:bg-gray-500\/20:hover { background-color: rgba(107, 114, 128, 0.2); }
+.hover\:bg-gray-700:hover { --tw-bg-opacity: 1; background-color: rgb(55 65 81 / var(--tw-bg-opacity)); }
+.hover\:bg-gray-800:hover { --tw-bg-opacity: 1; background-color: rgb(31 41 55 / var(--tw-bg-opacity)); }
+.hover\:bg-gray-900:hover { --tw-bg-opacity: 1; background-color: rgb(17 24 39 / var(--tw-bg-opacity)); }
+.hover\:bg-green-100:hover { --tw-bg-opacity: 1; background-color: rgb(220 252 231 / var(--tw-bg-opacity)); }
+.hover\:bg-green-500:hover { --tw-bg-opacity: 1; background-color: rgb(34 197 94 / var(--tw-bg-opacity)); }
+.hover\:bg-green-600\/20:hover { background-color: rgba(22, 163, 74, 0.2); }
+.hover\:bg-indigo-100:hover { --tw-bg-opacity: 1; background-color: rgb(224 231 255 / var(--tw-bg-opacity)); }
+.hover\:bg-indigo-400:hover { --tw-bg-opacity: 1; background-color: rgb(129 140 248 / var(--tw-bg-opacity)); }
+.hover\:bg-indigo-50:hover { --tw-bg-opacity: 1; background-color: rgb(238 242 255 / var(--tw-bg-opacity)); }
+.hover\:bg-indigo-500:hover { --tw-bg-opacity: 1; background-color: rgb(99 102 241 / var(--tw-bg-opacity)); }
+.hover\:bg-indigo-600:hover { --tw-bg-opacity: 1; background-color: rgb(79 70 229 / var(--tw-bg-opacity)); }
+.hover\:bg-indigo-600\/20:hover { background-color: rgba(79, 70, 229, 0.2); }
+.hover\:bg-indigo-700:hover { --tw-bg-opacity: 1; background-color: rgb(67 56 202 / var(--tw-bg-opacity)); }
+.hover\:bg-indigo-800:hover { --tw-bg-opacity: 1; background-color: rgb(55 48 163 / var(--tw-bg-opacity)); }
+.hover\:bg-indigo-900:hover { --tw-bg-opacity: 1; background-color: rgb(49 46 129 / var(--tw-bg-opacity)); }
+.hover\:bg-orange-200:hover { --tw-bg-opacity: 1; background-color: rgb(254 215 170 / var(--tw-bg-opacity)); }
+.hover\:bg-pink-100:hover { --tw-bg-opacity: 1; background-color: rgb(252 231 243 / var(--tw-bg-opacity)); }
+.hover\:bg-pink-600\/20:hover { background-color: rgba(219, 39, 119, 0.2); }
+.hover\:bg-purple-200:hover { --tw-bg-opacity: 1; background-color: rgb(233 213 255 / var(--tw-bg-opacity)); }
+.hover\:bg-purple-50:hover { --tw-bg-opacity: 1; background-color: rgb(250 245 255 / var(--tw-bg-opacity)); }
+.hover\:bg-purple-500:hover { --tw-bg-opacity: 1; background-color: rgb(168 85 247 / var(--tw-bg-opacity)); }
+.hover\:bg-purple-600:hover { --tw-bg-opacity: 1; background-color: rgb(147 51 234 / var(--tw-bg-opacity)); }
+.hover\:bg-purple-600\/20:hover { background-color: rgba(147, 51, 234, 0.2); }
+.hover\:bg-purple-700:hover { --tw-bg-opacity: 1; background-color: rgb(126 34 206 / var(--tw-bg-opacity)); }
+.hover\:bg-red-400:hover { --tw-bg-opacity: 1; background-color: rgb(248 113 113 / var(--tw-bg-opacity)); }
+.hover\:bg-red-500:hover { --tw-bg-opacity: 1; background-color: rgb(239 68 68 / var(--tw-bg-opacity)); }
+.hover\:bg-red-600\/20:hover { background-color: rgba(220, 38, 38, 0.2); }
+.hover\:bg-rose-100:hover { --tw-bg-opacity: 1; background-color: rgb(255 228 230 / var(--tw-bg-opacity)); }
+.hover\:bg-rose-500:hover { --tw-bg-opacity: 1; background-color: rgb(244 63 94 / var(--tw-bg-opacity)); }
+.hover\:bg-rose-600:hover { --tw-bg-opacity: 1; background-color: rgb(225 29 72 / var(--tw-bg-opacity)); }
+.hover\:bg-rose-700:hover { --tw-bg-opacity: 1; background-color: rgb(190 18 60 / var(--tw-bg-opacity)); }
+.hover\:bg-sky-400:hover { --tw-bg-opacity: 1; background-color: rgb(56 189 248 / var(--tw-bg-opacity)); }
+.hover\:bg-sky-600:hover { --tw-bg-opacity: 1; background-color: rgb(2 132 199 / var(--tw-bg-opacity)); }
+.hover\:bg-sky-800:hover { --tw-bg-opacity: 1; background-color: rgb(7 89 133 / var(--tw-bg-opacity)); }
+.hover\:bg-slate-100:hover { --tw-bg-opacity: 1; background-color: rgb(241 245 249 / var(--tw-bg-opacity)); }
+.hover\:bg-slate-50:hover { --tw-bg-opacity: 1; background-color: rgb(248 250 252 / var(--tw-bg-opacity)); }
+.hover\:bg-stone-100:hover { --tw-bg-opacity: 1; background-color: rgb(245 245 244 / var(--tw-bg-opacity)); }
+.hover\:bg-stone-200:hover { --tw-bg-opacity: 1; background-color: rgb(231 229 228 / var(--tw-bg-opacity)); }
+.hover\:bg-stone-50:hover { --tw-bg-opacity: 1; background-color: rgb(250 250 249 / var(--tw-bg-opacity)); }
+.hover\:bg-teal-50:hover { --tw-bg-opacity: 1; background-color: rgb(240 253 250 / var(--tw-bg-opacity)); }
+.hover\:bg-teal-600:hover { --tw-bg-opacity: 1; background-color: rgb(13 148 136 / var(--tw-bg-opacity)); }
+.hover\:bg-white:hover { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity)); }
+.hover\:bg-white\/20:hover { background-color: rgba(255, 255, 255, 0.2); }
+.hover\:bg-yellow-600\/20:hover { background-color: rgba(202, 138, 4, 0.2); }
+.hover\:bg-opacity-10:hover { --tw-bg-opacity: 0.1; }
+.hover\:bg-opacity-100:hover { --tw-bg-opacity: 1; }
+.hover\:bg-opacity-20:hover { --tw-bg-opacity: 0.2; }
+.hover\:bg-opacity-50:hover { --tw-bg-opacity: 0.5; }
+.hover\:bg-opacity-70:hover { --tw-bg-opacity: 0.7; }
+.hover\:bg-opacity-75:hover { --tw-bg-opacity: 0.75; }
+.hover\:from-purple-700:hover { --tw-gradient-from: #7e22ce var(--tw-gradient-from-position); --tw-gradient-to: rgb(126 34 206 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.hover\:from-teal-600:hover { --tw-gradient-from: #0d9488 var(--tw-gradient-from-position); --tw-gradient-to: rgb(13 148 136 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
+.hover\:to-cyan-700:hover { --tw-gradient-to: #0e7490 var(--tw-gradient-to-position); }
+.hover\:to-indigo-700:hover { --tw-gradient-to: #4338ca var(--tw-gradient-to-position); }
+.hover\:to-pink-600:hover { --tw-gradient-to: #db2777 var(--tw-gradient-to-position); }
+.hover\:text-blue-100:hover { --tw-text-opacity: 1; color: rgb(219 234 254 / var(--tw-text-opacity)); }
+.hover\:text-blue-500:hover { --tw-text-opacity: 1; color: rgb(59 130 246 / var(--tw-text-opacity)); }
+.hover\:text-blue-600:hover { --tw-text-opacity: 1; color: rgb(37 99 235 / var(--tw-text-opacity)); }
+.hover\:text-cyan-100:hover { --tw-text-opacity: 1; color: rgb(207 250 254 / var(--tw-text-opacity)); }
+.hover\:text-cyan-500:hover { --tw-text-opacity: 1; color: rgb(6 182 212 / var(--tw-text-opacity)); }
+.hover\:text-cyan-600:hover { --tw-text-opacity: 1; color: rgb(8 145 178 / var(--tw-text-opacity)); }
+.hover\:text-cyan-900:hover { --tw-text-opacity: 1; color: rgb(22 78 99 / var(--tw-text-opacity)); }
+.hover\:text-gray-100:hover { --tw-text-opacity: 1; color: rgb(243 244 246 / var(--tw-text-opacity)); }
+.hover\:text-gray-200:hover { --tw-text-opacity: 1; color: rgb(229 231 235 / var(--tw-text-opacity)); }
+.hover\:text-gray-300:hover { --tw-text-opacity: 1; color: rgb(209 213 219 / var(--tw-text-opacity)); }
+.hover\:text-gray-400:hover { --tw-text-opacity: 1; color: rgb(156 163 175 / var(--tw-text-opacity)); }
+.hover\:text-gray-500:hover { --tw-text-opacity: 1; color: rgb(107 114 128 / var(--tw-text-opacity)); }
+.hover\:text-gray-600:hover { --tw-text-opacity: 1; color: rgb(75 85 99 / var(--tw-text-opacity)); }
+.hover\:text-gray-700:hover { --tw-text-opacity: 1; color: rgb(55 65 81 / var(--tw-text-opacity)); }
+.hover\:text-gray-800:hover { --tw-text-opacity: 1; color: rgb(31 41 55 / var(--tw-text-opacity)); }
+.hover\:text-gray-900:hover { --tw-text-opacity: 1; color: rgb(17 24 39 / var(--tw-text-opacity)); }
+.hover\:text-indigo-100:hover { --tw-text-opacity: 1; color: rgb(224 231 255 / var(--tw-text-opacity)); }
+.hover\:text-indigo-300:hover { --tw-text-opacity: 1; color: rgb(165 180 252 / var(--tw-text-opacity)); }
+.hover\:text-indigo-50:hover { --tw-text-opacity: 1; color: rgb(238 242 255 / var(--tw-text-opacity)); }
+.hover\:text-indigo-500:hover { --tw-text-opacity: 1; color: rgb(99 102 241 / var(--tw-text-opacity)); }
+.hover\:text-indigo-600:hover { --tw-text-opacity: 1; color: rgb(79 70 229 / var(--tw-text-opacity)); }
+.hover\:text-indigo-700:hover { --tw-text-opacity: 1; color: rgb(67 56 202 / var(--tw-text-opacity)); }
+.hover\:text-indigo-900:hover { --tw-text-opacity: 1; color: rgb(49 46 129 / var(--tw-text-opacity)); }
+.hover\:text-orange-900:hover { --tw-text-opacity: 1; color: rgb(124 45 18 / var(--tw-text-opacity)); }
+.hover\:text-purple-500:hover { --tw-text-opacity: 1; color: rgb(168 85 247 / var(--tw-text-opacity)); }
+.hover\:text-red-500:hover { --tw-text-opacity: 1; color: rgb(239 68 68 / var(--tw-text-opacity)); }
+.hover\:text-rose-500:hover { --tw-text-opacity: 1; color: rgb(244 63 94 / var(--tw-text-opacity)); }
+.hover\:text-slate-500:hover { --tw-text-opacity: 1; color: rgb(100 116 139 / var(--tw-text-opacity)); }
+.hover\:text-slate-900:hover { --tw-text-opacity: 1; color: rgb(15 23 42 / var(--tw-text-opacity)); }
+.hover\:text-stone-300:hover { --tw-text-opacity: 1; color: rgb(214 211 209 / var(--tw-text-opacity)); }
+.hover\:text-stone-500:hover { --tw-text-opacity: 1; color: rgb(120 113 108 / var(--tw-text-opacity)); }
+.hover\:text-stone-900:hover { --tw-text-opacity: 1; color: rgb(28 25 23 / var(--tw-text-opacity)); }
+.hover\:text-teal-100:hover { --tw-text-opacity: 1; color: rgb(204 251 241 / var(--tw-text-opacity)); }
+.hover\:text-teal-700:hover { --tw-text-opacity: 1; color: rgb(15 118 110 / var(--tw-text-opacity)); }
+.hover\:text-white:hover { --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity)); }
+.hover\:text-yellow-400:hover { --tw-text-opacity: 1; color: rgb(250 204 21 / var(--tw-text-opacity)); }
+.hover\:text-yellow-600:hover { --tw-text-opacity: 1; color: rgb(202 138 4 / var(--tw-text-opacity)); }
+.hover\:underline:hover { text-decoration-line: underline; }
+.hover\:opacity-100:hover { opacity: 1; }
+.hover\:opacity-75:hover { opacity: 0.75; }
+.hover\:shadow-sm:hover { --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
+.hover\:ring-gray-400:hover { --tw-ring-opacity: 1; --tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity)); }
+.hover\:ring-gray-900\/20:hover { --tw-ring-color: rgb(17 24 39 / 0.2); }
+.hover\:ring-indigo-300:hover { --tw-ring-opacity: 1; --tw-ring-color: rgb(165 180 252 / var(--tw-ring-opacity)); }
+.hover\:ring-indigo-700:hover { --tw-ring-opacity: 1; --tw-ring-color: rgb(67 56 202 / var(--tw-ring-opacity)); }
+.hover\:ring-white\/20:hover { --tw-ring-color: rgb(255 255 255 / 0.2); }
+.focus\:relative:focus { position: relative; }
+.focus\:z-10:focus { z-index: 10; }
+.focus\:z-20:focus { z-index: 20; }
+.focus\:border-0:focus { border-width: 0px; }
+.focus\:border-blue-500:focus { --tw-border-opacity: 1; border-color: rgb(59 130 246 / var(--tw-border-opacity)); }
+.focus\:border-indigo-500:focus { --tw-border-opacity: 1; border-color: rgb(99 102 241 / var(--tw-border-opacity)); }
+.focus\:border-indigo-600:focus { --tw-border-opacity: 1; border-color: rgb(79 70 229 / var(--tw-border-opacity)); }
+.focus\:border-orange-500:focus { --tw-border-opacity: 1; border-color: rgb(249 115 22 / var(--tw-border-opacity)); }
+.focus\:border-purple-500:focus { --tw-border-opacity: 1; border-color: rgb(168 85 247 / var(--tw-border-opacity)); }
+.focus\:border-rose-500:focus { --tw-border-opacity: 1; border-color: rgb(244 63 94 / var(--tw-border-opacity)); }
+.focus\:border-teal-500:focus { --tw-border-opacity: 1; border-color: rgb(20 184 166 / var(--tw-border-opacity)); }
+.focus\:border-transparent:focus { border-color: transparent; }
+.focus\:border-white:focus { --tw-border-opacity: 1; border-color: rgb(255 255 255 / var(--tw-border-opacity)); }
+.focus\:bg-gray-600:focus { --tw-bg-opacity: 1; background-color: rgb(75 85 99 / var(--tw-bg-opacity)); }
+.focus\:bg-sky-900:focus { --tw-bg-opacity: 1; background-color: rgb(12 74 110 / var(--tw-bg-opacity)); }
+.focus\:bg-white:focus { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity)); }
+.focus\:text-gray-900:focus { --tw-text-opacity: 1; color: rgb(17 24 39 / var(--tw-text-opacity)); }
+.focus\:placeholder-gray-400:focus::placeholder { --tw-placeholder-opacity: 1; color: rgb(156 163 175 / var(--tw-placeholder-opacity)); }
+.focus\:opacity-100:focus { opacity: 1; }
+.focus\:outline-none:focus { outline: transparent solid 2px; outline-offset: 2px; }
+.focus\:outline-offset-0:focus { outline-offset: 0px; }
+.focus\:ring:focus { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
+.focus\:ring-0:focus { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
+.focus\:ring-1:focus { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
+.focus\:ring-2:focus { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
+.focus\:ring-inset:focus { --tw-ring-inset: inset; }
+.focus\:ring-blue-500:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity)); }
+.focus\:ring-blue-600:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity)); }
+.focus\:ring-cyan-400:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(34 211 238 / var(--tw-ring-opacity)); }
+.focus\:ring-cyan-500:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(6 182 212 / var(--tw-ring-opacity)); }
+.focus\:ring-cyan-600:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(8 145 178 / var(--tw-ring-opacity)); }
+.focus\:ring-gray-900:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(17 24 39 / var(--tw-ring-opacity)); }
+.focus\:ring-green-400:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(74 222 128 / var(--tw-ring-opacity)); }
+.focus\:ring-green-500:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity)); }
+.focus\:ring-green-600:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(22 163 74 / var(--tw-ring-opacity)); }
+.focus\:ring-indigo-300:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(165 180 252 / var(--tw-ring-opacity)); }
+.focus\:ring-indigo-500:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity)); }
+.focus\:ring-indigo-600:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity)); }
+.focus\:ring-orange-500:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(249 115 22 / var(--tw-ring-opacity)); }
+.focus\:ring-pink-500:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(236 72 153 / var(--tw-ring-opacity)); }
+.focus\:ring-pink-600:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(219 39 119 / var(--tw-ring-opacity)); }
+.focus\:ring-purple-500:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(168 85 247 / var(--tw-ring-opacity)); }
+.focus\:ring-purple-600:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(147 51 234 / var(--tw-ring-opacity)); }
+.focus\:ring-red-500:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity)); }
+.focus\:ring-rose-500:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(244 63 94 / var(--tw-ring-opacity)); }
+.focus\:ring-sky-500:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(14 165 233 / var(--tw-ring-opacity)); }
+.focus\:ring-teal-500:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(20 184 166 / var(--tw-ring-opacity)); }
+.focus\:ring-white:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity)); }
+.focus\:ring-opacity-100:focus { --tw-ring-opacity: 1; }
+.focus\:ring-opacity-25:focus { --tw-ring-opacity: 0.25; }
+.focus\:ring-opacity-50:focus { --tw-ring-opacity: 0.5; }
+.focus\:ring-offset-1:focus { --tw-ring-offset-width: 1px; }
+.focus\:ring-offset-2:focus { --tw-ring-offset-width: 2px; }
+.focus\:ring-offset-4:focus { --tw-ring-offset-width: 4px; }
+.focus\:ring-offset-cyan-700:focus { --tw-ring-offset-color: #0e7490; }
+.focus\:ring-offset-gray-100:focus { --tw-ring-offset-color: #f3f4f6; }
+.focus\:ring-offset-gray-50:focus { --tw-ring-offset-color: #f9fafb; }
+.focus\:ring-offset-gray-800:focus { --tw-ring-offset-color: #1f2937; }
+.focus\:ring-offset-gray-900:focus { --tw-ring-offset-color: #111827; }
+.focus\:ring-offset-green-50:focus { --tw-ring-offset-color: #f0fdf4; }
+.focus\:ring-offset-indigo-600:focus { --tw-ring-offset-color: #4f46e5; }
+.focus\:ring-offset-indigo-700:focus { --tw-ring-offset-color: #4338ca; }
+.focus\:ring-offset-indigo-900:focus { --tw-ring-offset-color: #312e81; }
+.focus\:ring-offset-rose-500:focus { --tw-ring-offset-color: #f43f5e; }
+.focus\:ring-offset-sky-500:focus { --tw-ring-offset-color: #0ea5e9; }
+.focus\:ring-offset-sky-900:focus { --tw-ring-offset-color: #0c4a6e; }
+.focus\:ring-offset-white:focus { --tw-ring-offset-color: #fff; }
+.focus\:placeholder\:text-gray-400:focus::placeholder { --tw-text-opacity: 1; color: rgb(156 163 175 / var(--tw-text-opacity)); }
+.focus\:placeholder\:text-gray-500:focus::placeholder { --tw-text-opacity: 1; color: rgb(107 114 128 / var(--tw-text-opacity)); }
+.focus-visible\:outline-none:focus-visible { outline: transparent solid 2px; outline-offset: 2px; }
+.focus-visible\:outline:focus-visible { outline-style: solid; }
+.focus-visible\:outline-2:focus-visible { outline-width: 2px; }
+.focus-visible\:outline-offset-0:focus-visible { outline-offset: 0px; }
+.focus-visible\:outline-offset-2:focus-visible { outline-offset: 2px; }
+.focus-visible\:outline-offset-\[-4px\]:focus-visible { outline-offset: -4px; }
+.focus-visible\:outline-blue-600:focus-visible { outline-color: rgb(37, 99, 235); }
+.focus-visible\:outline-cyan-600:focus-visible { outline-color: rgb(8, 145, 178); }
+.focus-visible\:outline-gray-900:focus-visible { outline-color: rgb(17, 24, 39); }
+.focus-visible\:outline-indigo-400:focus-visible { outline-color: rgb(129, 140, 248); }
+.focus-visible\:outline-indigo-500:focus-visible { outline-color: rgb(99, 102, 241); }
+.focus-visible\:outline-indigo-600:focus-visible { outline-color: rgb(79, 70, 229); }
+.focus-visible\:outline-purple-600:focus-visible { outline-color: rgb(147, 51, 234); }
+.focus-visible\:outline-rose-600:focus-visible { outline-color: rgb(225, 29, 72); }
+.focus-visible\:outline-sky-500:focus-visible { outline-color: rgb(14, 165, 233); }
+.focus-visible\:outline-sky-700:focus-visible { outline-color: rgb(3, 105, 161); }
+.focus-visible\:outline-white:focus-visible { outline-color: rgb(255, 255, 255); }
+.focus-visible\:ring-2:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
+.focus-visible\:ring-purple-500:focus-visible { --tw-ring-opacity: 1; --tw-ring-color: rgb(168 85 247 / var(--tw-ring-opacity)); }
+.focus-visible\:ring-transparent:focus-visible { --tw-ring-color: transparent; }
+.focus-visible\:ring-offset-2:focus-visible { --tw-ring-offset-width: 2px; }
+.focus-visible\:ring-offset-gray-50:focus-visible { --tw-ring-offset-color: #f9fafb; }
+.active\:ring-2:active { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
+.active\:ring-gray-900:active { --tw-ring-opacity: 1; --tw-ring-color: rgb(17 24 39 / var(--tw-ring-opacity)); }
+.active\:ring-indigo-600:active { --tw-ring-opacity: 1; --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity)); }
+.active\:ring-sky-500:active { --tw-ring-opacity: 1; --tw-ring-color: rgb(14 165 233 / var(--tw-ring-opacity)); }
+.active\:ring-offset-2:active { --tw-ring-offset-width: 2px; }
+.disabled\:cursor-not-allowed:disabled { cursor: not-allowed; }
+.disabled\:bg-gray-100:disabled { --tw-bg-opacity: 1; background-color: rgb(243 244 246 / var(--tw-bg-opacity)); }
+.disabled\:bg-gray-50:disabled { --tw-bg-opacity: 1; background-color: rgb(249 250 251 / var(--tw-bg-opacity)); }
+.disabled\:text-gray-500:disabled { --tw-text-opacity: 1; color: rgb(107 114 128 / var(--tw-text-opacity)); }
+.disabled\:opacity-30:disabled { opacity: 0.3; }
+.disabled\:ring-gray-200:disabled { --tw-ring-opacity: 1; --tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity)); }
+.disabled\:hover\:bg-white:hover:disabled { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity)); }
+.group:hover .group-hover\:visible { visibility: visible; }
+.group:hover .group-hover\:border-gray-400 { --tw-border-opacity: 1; border-color: rgb(156 163 175 / var(--tw-border-opacity)); }
+.group:hover .group-hover\:border-indigo-600 { --tw-border-opacity: 1; border-color: rgb(79 70 229 / var(--tw-border-opacity)); }
+.group:hover .group-hover\:bg-gray-200 { --tw-bg-opacity: 1; background-color: rgb(229 231 235 / var(--tw-bg-opacity)); }
+.group:hover .group-hover\:bg-gray-300 { --tw-bg-opacity: 1; background-color: rgb(209 213 219 / var(--tw-bg-opacity)); }
+.group:hover .group-hover\:bg-gray-400 { --tw-bg-opacity: 1; background-color: rgb(156 163 175 / var(--tw-bg-opacity)); }
+.group:hover .group-hover\:bg-gray-50 { --tw-bg-opacity: 1; background-color: rgb(249 250 251 / var(--tw-bg-opacity)); }
+.group:hover .group-hover\:bg-gray-800 { --tw-bg-opacity: 1; background-color: rgb(31 41 55 / var(--tw-bg-opacity)); }
+.group:hover .group-hover\:bg-indigo-800 { --tw-bg-opacity: 1; background-color: rgb(55 48 163 / var(--tw-bg-opacity)); }
+.group:hover .group-hover\:bg-white { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity)); }
+.group:hover .group-hover\:stroke-blue-700\/75 { stroke: rgba(29, 78, 216, 0.75); }
+.group:hover .group-hover\:stroke-blue-800\/75 { stroke: rgba(30, 64, 175, 0.75); }
+.group:hover .group-hover\:stroke-gray-600\/75 { stroke: rgba(75, 85, 99, 0.75); }
+.group:hover .group-hover\:stroke-gray-700\/75 { stroke: rgba(55, 65, 81, 0.75); }
+.group:hover .group-hover\:stroke-green-700\/75 { stroke: rgba(21, 128, 61, 0.75); }
+.group:hover .group-hover\:stroke-green-800\/75 { stroke: rgba(22, 101, 52, 0.75); }
+.group:hover .group-hover\:stroke-indigo-600\/75 { stroke: rgba(79, 70, 229, 0.75); }
+.group:hover .group-hover\:stroke-indigo-700\/75 { stroke: rgba(67, 56, 202, 0.75); }
+.group:hover .group-hover\:stroke-pink-700\/75 { stroke: rgba(190, 24, 93, 0.75); }
+.group:hover .group-hover\:stroke-pink-800\/75 { stroke: rgba(157, 23, 77, 0.75); }
+.group:hover .group-hover\:stroke-red-600\/75 { stroke: rgba(220, 38, 38, 0.75); }
+.group:hover .group-hover\:stroke-red-700\/75 { stroke: rgba(185, 28, 28, 0.75); }
+.group:hover .group-hover\:stroke-violet-600\/75 { stroke: rgba(124, 58, 237, 0.75); }
+.group:hover .group-hover\:stroke-violet-700\/75 { stroke: rgba(109, 40, 217, 0.75); }
+.group:hover .group-hover\:stroke-yellow-700\/75 { stroke: rgba(161, 98, 7, 0.75); }
+.group:hover .group-hover\:stroke-yellow-800\/75 { stroke: rgba(133, 77, 14, 0.75); }
+.group:hover .group-hover\:text-blue-700 { --tw-text-opacity: 1; color: rgb(29 78 216 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:text-gray-100 { --tw-text-opacity: 1; color: rgb(243 244 246 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:text-gray-200 { --tw-text-opacity: 1; color: rgb(229 231 235 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:text-gray-300 { --tw-text-opacity: 1; color: rgb(209 213 219 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:text-gray-400 { --tw-text-opacity: 1; color: rgb(156 163 175 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:text-gray-500 { --tw-text-opacity: 1; color: rgb(107 114 128 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:text-gray-600 { --tw-text-opacity: 1; color: rgb(75 85 99 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:text-gray-700 { --tw-text-opacity: 1; color: rgb(55 65 81 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:text-gray-800 { --tw-text-opacity: 1; color: rgb(31 41 55 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:text-gray-900 { --tw-text-opacity: 1; color: rgb(17 24 39 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:text-indigo-500 { --tw-text-opacity: 1; color: rgb(99 102 241 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:text-indigo-600 { --tw-text-opacity: 1; color: rgb(79 70 229 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:text-indigo-700 { --tw-text-opacity: 1; color: rgb(67 56 202 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:text-indigo-800 { --tw-text-opacity: 1; color: rgb(55 48 163 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:text-indigo-900 { --tw-text-opacity: 1; color: rgb(49 46 129 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:text-pink-700 { --tw-text-opacity: 1; color: rgb(190 24 93 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:text-slate-500 { --tw-text-opacity: 1; color: rgb(100 116 139 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:text-slate-700 { --tw-text-opacity: 1; color: rgb(51 65 85 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:text-slate-900 { --tw-text-opacity: 1; color: rgb(15 23 42 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:text-teal-500 { --tw-text-opacity: 1; color: rgb(20 184 166 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:text-white { --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity)); }
+.group:hover .group-hover\:opacity-100 { opacity: 1; }
+.group:hover .group-hover\:opacity-75 { opacity: 0.75; }
+.group:focus .group-focus\:visible { visibility: visible; }
+.peer:hover ~ .peer-hover\:bg-slate-50 { --tw-bg-opacity: 1; background-color: rgb(248 250 252 / var(--tw-bg-opacity)); }
+.peer:hover ~ .peer-hover\:ring-gray-400 { --tw-ring-opacity: 1; --tw-ring-color: rgb(156 163 175 / var(--tw-ring-opacity)); }
+.peer:focus ~ .peer-focus\:border-t-2 { border-top-width: 2px; }
+.peer:focus ~ .peer-focus\:border-indigo-600 { --tw-border-opacity: 1; border-color: rgb(79 70 229 / var(--tw-border-opacity)); }
+.peer:focus ~ .peer-focus\:ring-2 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
+.peer:focus ~ .peer-focus\:ring-blue-600 { --tw-ring-opacity: 1; --tw-ring-color: rgb(37 99 235 / var(--tw-ring-opacity)); }
+.peer:focus ~ .peer-focus\:ring-indigo-600 { --tw-ring-opacity: 1; --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity)); }
+.peer:focus ~ .peer-focus\:ring-sky-500 { --tw-ring-opacity: 1; --tw-ring-color: rgb(14 165 233 / var(--tw-ring-opacity)); }
+@media (min-width: 640px) {
+ .sm\:not-sr-only { position: static; width: auto; height: auto; padding: 0px; margin: 0px; overflow: visible; clip: auto; white-space: normal; }
+ .sm\:static { position: static; }
+ .sm\:fixed { position: fixed; }
+ .sm\:absolute { position: absolute; }
+ .sm\:relative { position: relative; }
+ .sm\:inset-0 { inset: 0px; }
+ .sm\:inset-auto { inset: auto; }
+ .sm\:inset-y-0 { top: 0px; bottom: 0px; }
+ .sm\:-bottom-64 { bottom: -16rem; }
+ .sm\:-left-40 { left: -10rem; }
+ .sm\:-top-10 { top: -2.5rem; }
+ .sm\:-top-12 { top: -3rem; }
+ .sm\:-top-80 { top: -20rem; }
+ .sm\:bottom-0 { bottom: 0px; }
+ .sm\:left-1\/2 { left: 50%; }
+ .sm\:left-12 { left: 3rem; }
+ .sm\:left-\[calc\(50\%\+36rem\)\] { left: calc(50% + 36rem); }
+ .sm\:left-\[calc\(50\%-18rem\)\] { left: calc(50% - 18rem); }
+ .sm\:left-\[calc\(50\%-30rem\)\] { left: calc(50% - 30rem); }
+ .sm\:left-\[calc\(50\%-40rem\)\] { left: calc(50% - 40rem); }
+ .sm\:left-auto { left: auto; }
+ .sm\:left-full { left: 100%; }
+ .sm\:right-0 { right: 0px; }
+ .sm\:right-1\/2 { right: 50%; }
+ .sm\:right-6 { right: 1.5rem; }
+ .sm\:right-\[calc\(50\%-6rem\)\] { right: calc(50% - 6rem); }
+ .sm\:top-0 { top: 0px; }
+ .sm\:top-6 { top: 1.5rem; }
+ .sm\:top-8 { top: 2rem; }
+ .sm\:top-\[-20rem\] { top: -20rem; }
+ .sm\:top-\[-28rem\] { top: -28rem; }
+ .sm\:top-\[calc\(100\%-30rem\)\] { top: calc(100% - 30rem); }
+ .sm\:top-auto { top: auto; }
+ .sm\:-z-10 { z-index: -10; }
+ .sm\:order-1 { order: 1; }
+ .sm\:order-2 { order: 2; }
+ .sm\:order-3 { order: 3; }
+ .sm\:order-first { order: -9999; }
+ .sm\:order-last { order: 9999; }
+ .sm\:order-none { order: 0; }
+ .sm\:col-span-1 { grid-column: span 1 / span 1; }
+ .sm\:col-span-12 { grid-column: span 12 / span 12; }
+ .sm\:col-span-2 { grid-column: span 2 / span 2; }
+ .sm\:col-span-3 { grid-column: span 3 / span 3; }
+ .sm\:col-span-4 { grid-column: span 4 / span 4; }
+ .sm\:col-span-6 { grid-column: span 6 / span 6; }
+ .sm\:col-span-7 { grid-column: span 7 / span 7; }
+ .sm\:col-span-8 { grid-column: span 8 / span 8; }
+ .sm\:col-span-9 { grid-column: span 9 / span 9; }
+ .sm\:col-start-1 { grid-column-start: 1; }
+ .sm\:col-start-2 { grid-column-start: 2; }
+ .sm\:col-start-3 { grid-column-start: 3; }
+ .sm\:col-start-6 { grid-column-start: 6; }
+ .sm\:col-start-auto { grid-column-start: auto; }
+ .sm\:row-span-2 { grid-row: span 2 / span 2; }
+ .sm\:row-start-1 { grid-row-start: 1; }
+ .sm\:m-0 { margin: 0px; }
+ .sm\:-mx-0 { margin-left: 0px; margin-right: 0px; }
+ .sm\:-mx-4 { margin-left: -1rem; margin-right: -1rem; }
+ .sm\:-mx-6 { margin-left: -1.5rem; margin-right: -1.5rem; }
+ .sm\:-my-10 { margin-top: -2.5rem; margin-bottom: -2.5rem; }
+ .sm\:-my-px { margin-top: -1px; margin-bottom: -1px; }
+ .sm\:mx-0 { margin-left: 0px; margin-right: 0px; }
+ .sm\:mx-1 { margin-left: 0.25rem; margin-right: 0.25rem; }
+ .sm\:mx-2 { margin-left: 0.5rem; margin-right: 0.5rem; }
+ .sm\:mx-6 { margin-left: 1.5rem; margin-right: 1.5rem; }
+ .sm\:mx-8 { margin-left: 2rem; margin-right: 2rem; }
+ .sm\:mx-auto { margin-left: auto; margin-right: auto; }
+ .sm\:my-56 { margin-top: 14rem; margin-bottom: 14rem; }
+ .sm\:my-8 { margin-top: 2rem; margin-bottom: 2rem; }
+ .sm\:-mb-24 { margin-bottom: -6rem; }
+ .sm\:-mb-48 { margin-bottom: -12rem; }
+ .sm\:-mb-64 { margin-bottom: -16rem; }
+ .sm\:-ml-1 { margin-left: -0.25rem; }
+ .sm\:-ml-10 { margin-left: -2.5rem; }
+ .sm\:-ml-4 { margin-left: -1rem; }
+ .sm\:-ml-80 { margin-left: -20rem; }
+ .sm\:-ml-96 { margin-left: -24rem; }
+ .sm\:-mr-1 { margin-right: -0.25rem; }
+ .sm\:-mr-2 { margin-right: -0.5rem; }
+ .sm\:-mr-80 { margin-right: -20rem; }
+ .sm\:-mt-10 { margin-top: -2.5rem; }
+ .sm\:-mt-16 { margin-top: -4rem; }
+ .sm\:-mt-20 { margin-top: -5rem; }
+ .sm\:-mt-32 { margin-top: -8rem; }
+ .sm\:-mt-44 { margin-top: -11rem; }
+ .sm\:-mt-8 { margin-top: -2rem; }
+ .sm\:mb-0 { margin-bottom: 0px; }
+ .sm\:mb-10 { margin-bottom: 2.5rem; }
+ .sm\:mb-4 { margin-bottom: 1rem; }
+ .sm\:mb-5 { margin-bottom: 1.25rem; }
+ .sm\:mb-8 { margin-bottom: 2rem; }
+ .sm\:ml-0 { margin-left: 0px; }
+ .sm\:ml-10 { margin-left: 2.5rem; }
+ .sm\:ml-16 { margin-left: 4rem; }
+ .sm\:ml-2 { margin-left: 0.5rem; }
+ .sm\:ml-3 { margin-left: 0.75rem; }
+ .sm\:ml-32 { margin-left: 8rem; }
+ .sm\:ml-4 { margin-left: 1rem; }
+ .sm\:ml-40 { margin-left: 10rem; }
+ .sm\:ml-6 { margin-left: 1.5rem; }
+ .sm\:ml-7 { margin-left: 1.75rem; }
+ .sm\:ml-8 { margin-left: 2rem; }
+ .sm\:ml-auto { margin-left: auto; }
+ .sm\:mr-0 { margin-right: 0px; }
+ .sm\:mr-10 { margin-right: 2.5rem; }
+ .sm\:mr-20 { margin-right: 5rem; }
+ .sm\:mr-28 { margin-right: 7rem; }
+ .sm\:mr-4 { margin-right: 1rem; }
+ .sm\:mr-6 { margin-right: 1.5rem; }
+ .sm\:mt-0 { margin-top: 0px; }
+ .sm\:mt-1 { margin-top: 0.25rem; }
+ .sm\:mt-1\.5 { margin-top: 0.375rem; }
+ .sm\:mt-10 { margin-top: 2.5rem; }
+ .sm\:mt-12 { margin-top: 3rem; }
+ .sm\:mt-16 { margin-top: 4rem; }
+ .sm\:mt-2 { margin-top: 0.5rem; }
+ .sm\:mt-20 { margin-top: 5rem; }
+ .sm\:mt-24 { margin-top: 6rem; }
+ .sm\:mt-3 { margin-top: 0.75rem; }
+ .sm\:mt-32 { margin-top: 8rem; }
+ .sm\:mt-4 { margin-top: 1rem; }
+ .sm\:mt-40 { margin-top: 10rem; }
+ .sm\:mt-48 { margin-top: 12rem; }
+ .sm\:mt-5 { margin-top: 1.25rem; }
+ .sm\:mt-56 { margin-top: 14rem; }
+ .sm\:mt-6 { margin-top: 1.5rem; }
+ .sm\:mt-64 { margin-top: 16rem; }
+ .sm\:mt-8 { margin-top: 2rem; }
+ .sm\:block { display: block; }
+ .sm\:inline-block { display: inline-block; }
+ .sm\:inline { display: inline; }
+ .sm\:flex { display: flex; }
+ .sm\:inline-flex { display: inline-flex; }
+ .sm\:table-cell { display: table-cell; }
+ .sm\:grid { display: grid; }
+ .sm\:inline-grid { display: inline-grid; }
+ .sm\:hidden { display: none; }
+ .sm\:aspect-\[16\/9\] { aspect-ratio: 16 / 9; }
+ .sm\:aspect-\[2\/1\] { aspect-ratio: 2 / 1; }
+ .sm\:h-10 { height: 2.5rem; }
+ .sm\:h-12 { height: 3rem; }
+ .sm\:h-2\/3 { height: 66.6667%; }
+ .sm\:h-20 { height: 5rem; }
+ .sm\:h-32 { height: 8rem; }
+ .sm\:h-40 { height: 10rem; }
+ .sm\:h-48 { height: 12rem; }
+ .sm\:h-56 { height: 14rem; }
+ .sm\:h-6 { height: 1.5rem; }
+ .sm\:h-64 { height: 16rem; }
+ .sm\:h-7 { height: 1.75rem; }
+ .sm\:h-72 { height: 18rem; }
+ .sm\:h-80 { height: 20rem; }
+ .sm\:h-96 { height: 24rem; }
+ .sm\:h-auto { height: auto; }
+ .sm\:h-full { height: 100%; }
+ .sm\:w-0 { width: 0px; }
+ .sm\:w-1\/2 { width: 50%; }
+ .sm\:w-1\/3 { width: 33.3333%; }
+ .sm\:w-1\/6 { width: 16.6667%; }
+ .sm\:w-10 { width: 2.5rem; }
+ .sm\:w-11\/12 { width: 91.6667%; }
+ .sm\:w-12 { width: 3rem; }
+ .sm\:w-2\/5 { width: 40%; }
+ .sm\:w-3\/4 { width: 75%; }
+ .sm\:w-32 { width: 8rem; }
+ .sm\:w-4\/12 { width: 33.3333%; }
+ .sm\:w-40 { width: 10rem; }
+ .sm\:w-48 { width: 12rem; }
+ .sm\:w-56 { width: 14rem; }
+ .sm\:w-64 { width: 16rem; }
+ .sm\:w-80 { width: 20rem; }
+ .sm\:w-\[57rem\] { width: 57rem; }
+ .sm\:w-\[68\.5625rem\] { width: 68.5625rem; }
+ .sm\:w-\[72\.1875rem\] { width: 72.1875rem; }
+ .sm\:w-auto { width: auto; }
+ .sm\:w-full { width: 100%; }
+ .sm\:w-px { width: 1px; }
+ .sm\:min-w-0 { min-width: 0px; }
+ .sm\:max-w-2xl { max-width: 42rem; }
+ .sm\:max-w-3xl { max-width: 48rem; }
+ .sm\:max-w-5xl { max-width: 64rem; }
+ .sm\:max-w-7xl { max-width: 80rem; }
+ .sm\:max-w-\[480px\] { max-width: 480px; }
+ .sm\:max-w-lg { max-width: 32rem; }
+ .sm\:max-w-md { max-width: 28rem; }
+ .sm\:max-w-none { max-width: none; }
+ .sm\:max-w-sm { max-width: 24rem; }
+ .sm\:max-w-xl { max-width: 36rem; }
+ .sm\:max-w-xs { max-width: 20rem; }
+ .sm\:flex-1 { flex: 1 1 0%; }
+ .sm\:flex-auto { flex: 1 1 auto; }
+ .sm\:flex-none { flex: 0 0 auto; }
+ .sm\:flex-shrink-0 { flex-shrink: 0; }
+ .sm\:shrink { flex-shrink: 1; }
+ .sm\:flex-grow-0 { flex-grow: 0; }
+ .sm\:translate-x-0 { --tw-translate-x: 0px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .sm\:translate-x-1\/4 { --tw-translate-x: 25%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .sm\:translate-x-16 { --tw-translate-x: 4rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .sm\:translate-x-2 { --tw-translate-x: 0.5rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .sm\:translate-x-8 { --tw-translate-x: 2rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .sm\:translate-x-full { --tw-translate-x: 100%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .sm\:translate-y-0 { --tw-translate-y: 0px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .sm\:translate-y-px { --tw-translate-y: 1px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .sm\:rotate-0 { --tw-rotate: 0deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .sm\:scale-100 { --tw-scale-x: 1; --tw-scale-y: 1; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .sm\:scale-95 { --tw-scale-x: 0.95; --tw-scale-y: 0.95; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .sm\:transform { transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .sm\:transform-gpu { transform: translate3d(var(--tw-translate-x), var(--tw-translate-y), 0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .sm\:columns-2 { columns: auto 2; }
+ .sm\:grid-flow-row-dense { grid-auto-flow: dense; }
+ .sm\:grid-cols-12 { grid-template-columns: repeat(12, minmax(0px, 1fr)); }
+ .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0px, 1fr)); }
+ .sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }
+ .sm\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0px, 1fr)); }
+ .sm\:grid-cols-6 { grid-template-columns: repeat(6, minmax(0px, 1fr)); }
+ .sm\:grid-cols-7 { grid-template-columns: repeat(7, minmax(0px, 1fr)); }
+ .sm\:grid-cols-8 { grid-template-columns: repeat(8, minmax(0px, 1fr)); }
+ .sm\:grid-rows-1 { grid-template-rows: repeat(1, minmax(0px, 1fr)); }
+ .sm\:grid-rows-2 { grid-template-rows: repeat(2, minmax(0px, 1fr)); }
+ .sm\:flex-row { flex-direction: row; }
+ .sm\:flex-row-reverse { flex-direction: row-reverse; }
+ .sm\:flex-col { flex-direction: column; }
+ .sm\:flex-wrap { flex-wrap: wrap; }
+ .sm\:flex-nowrap { flex-wrap: nowrap; }
+ .sm\:items-start { align-items: flex-start; }
+ .sm\:items-end { align-items: flex-end; }
+ .sm\:items-center { align-items: center; }
+ .sm\:items-baseline { align-items: baseline; }
+ .sm\:items-stretch { align-items: stretch; }
+ .sm\:justify-start { justify-content: flex-start; }
+ .sm\:justify-end { justify-content: flex-end; }
+ .sm\:justify-center { justify-content: center; }
+ .sm\:justify-between { justify-content: space-between; }
+ .sm\:justify-around { justify-content: space-around; }
+ .sm\:gap-0 { gap: 0px; }
+ .sm\:gap-3 { gap: 0.75rem; }
+ .sm\:gap-4 { gap: 1rem; }
+ .sm\:gap-5 { gap: 1.25rem; }
+ .sm\:gap-6 { gap: 1.5rem; }
+ .sm\:gap-8 { gap: 2rem; }
+ .sm\:gap-px { gap: 1px; }
+ .sm\:gap-x-10 { column-gap: 2.5rem; }
+ .sm\:gap-x-4 { column-gap: 1rem; }
+ .sm\:gap-x-6 { column-gap: 1.5rem; }
+ .sm\:gap-x-8 { column-gap: 2rem; }
+ .sm\:gap-y-0 { row-gap: 0px; }
+ .sm\:gap-y-10 { row-gap: 2.5rem; }
+ .sm\:gap-y-12 { row-gap: 3rem; }
+ .sm\:gap-y-14 { row-gap: 3.5rem; }
+ .sm\:gap-y-16 { row-gap: 4rem; }
+ .sm\:gap-y-20 { row-gap: 5rem; }
+ .sm\:gap-y-24 { row-gap: 6rem; }
+ .sm\:gap-y-8 { row-gap: 2rem; }
+ .sm\:space-x-0 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0px * var(--tw-space-x-reverse)); margin-left: calc(0px * calc(1 - var(--tw-space-x-reverse))); }
+ .sm\:space-x-10 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(2.5rem * var(--tw-space-x-reverse)); margin-left: calc(2.5rem * calc(1 - var(--tw-space-x-reverse))); }
+ .sm\:space-x-12 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(3rem * var(--tw-space-x-reverse)); margin-left: calc(3rem * calc(1 - var(--tw-space-x-reverse))); }
+ .sm\:space-x-3 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0.75rem * var(--tw-space-x-reverse)); margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse))); }
+ .sm\:space-x-4 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(1rem * var(--tw-space-x-reverse)); margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); }
+ .sm\:space-x-5 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(1.25rem * var(--tw-space-x-reverse)); margin-left: calc(1.25rem * calc(1 - var(--tw-space-x-reverse))); }
+ .sm\:space-x-6 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(1.5rem * var(--tw-space-x-reverse)); margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse))); }
+ .sm\:space-x-8 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(2rem * var(--tw-space-x-reverse)); margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse))); }
+ .sm\:space-y-0 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0px * var(--tw-space-y-reverse)); }
+ .sm\:space-y-16 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(4rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(4rem * var(--tw-space-y-reverse)); }
+ .sm\:space-y-20 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(5rem * var(--tw-space-y-reverse)); }
+ .sm\:space-y-24 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(6rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(6rem * var(--tw-space-y-reverse)); }
+ .sm\:space-y-4 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1rem * var(--tw-space-y-reverse)); }
+ .sm\:space-y-6 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1.5rem * var(--tw-space-y-reverse)); }
+ .sm\:space-x-reverse > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 1; }
+ .sm\:divide-x > :not([hidden]) ~ :not([hidden]) { --tw-divide-x-reverse: 0; border-right-width: calc(1px * var(--tw-divide-x-reverse)); border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse))); }
+ .sm\:divide-y > :not([hidden]) ~ :not([hidden]) { --tw-divide-y-reverse: 0; border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(1px * var(--tw-divide-y-reverse)); }
+ .sm\:divide-y-0 > :not([hidden]) ~ :not([hidden]) { --tw-divide-y-reverse: 0; border-top-width: calc(0px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(0px * var(--tw-divide-y-reverse)); }
+ .sm\:divide-gray-200 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(229 231 235 / var(--tw-divide-opacity)); }
+ .sm\:divide-gray-900\/10 > :not([hidden]) ~ :not([hidden]) { border-color: rgba(17, 24, 39, 0.1); }
+ .sm\:self-stretch { align-self: stretch; }
+ .sm\:overflow-hidden { overflow: hidden; }
+ .sm\:overflow-visible { overflow: visible; }
+ .sm\:truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
+ .sm\:rounded-2xl { border-radius: 1rem; }
+ .sm\:rounded-3xl { border-radius: 1.5rem; }
+ .sm\:rounded-lg { border-radius: 0.5rem; }
+ .sm\:rounded-md { border-radius: 0.375rem; }
+ .sm\:rounded-none { border-radius: 0px; }
+ .sm\:rounded-xl { border-radius: 0.75rem; }
+ .sm\:rounded-b-lg { border-bottom-right-radius: 0.5rem; border-bottom-left-radius: 0.5rem; }
+ .sm\:rounded-b-none { border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; }
+ .sm\:rounded-t-none { border-top-left-radius: 0px; border-top-right-radius: 0px; }
+ .sm\:rounded-bl-lg { border-bottom-left-radius: 0.5rem; }
+ .sm\:rounded-bl-none { border-bottom-left-radius: 0px; }
+ .sm\:rounded-tr-lg { border-top-right-radius: 0.5rem; }
+ .sm\:rounded-tr-none { border-top-right-radius: 0px; }
+ .sm\:border { border-width: 1px; }
+ .sm\:border-0 { border-width: 0px; }
+ .sm\:border-x { border-left-width: 1px; border-right-width: 1px; }
+ .sm\:border-b { border-bottom-width: 1px; }
+ .sm\:border-l { border-left-width: 1px; }
+ .sm\:border-r { border-right-width: 1px; }
+ .sm\:border-t { border-top-width: 1px; }
+ .sm\:border-t-0 { border-top-width: 0px; }
+ .sm\:border-none { border-style: none; }
+ .sm\:border-gray-200 { --tw-border-opacity: 1; border-color: rgb(229 231 235 / var(--tw-border-opacity)); }
+ .sm\:border-gray-900\/5 { border-color: rgba(17, 24, 39, 0.05); }
+ .sm\:bg-gray-200 { --tw-bg-opacity: 1; background-color: rgb(229 231 235 / var(--tw-bg-opacity)); }
+ .sm\:bg-gray-500 { --tw-bg-opacity: 1; background-color: rgb(107 114 128 / var(--tw-bg-opacity)); }
+ .sm\:bg-gray-600 { --tw-bg-opacity: 1; background-color: rgb(75 85 99 / var(--tw-bg-opacity)); }
+ .sm\:bg-transparent { background-color: transparent; }
+ .sm\:bg-white { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity)); }
+ .sm\:bg-opacity-75 { --tw-bg-opacity: 0.75; }
+ .sm\:p-0 { padding: 0px; }
+ .sm\:p-10 { padding: 2.5rem; }
+ .sm\:p-12 { padding: 3rem; }
+ .sm\:p-16 { padding: 4rem; }
+ .sm\:p-3 { padding: 0.75rem; }
+ .sm\:p-6 { padding: 1.5rem; }
+ .sm\:p-8 { padding: 2rem; }
+ .sm\:px-0 { padding-left: 0px; padding-right: 0px; }
+ .sm\:px-10 { padding-left: 2.5rem; padding-right: 2.5rem; }
+ .sm\:px-12 { padding-left: 3rem; padding-right: 3rem; }
+ .sm\:px-14 { padding-left: 3.5rem; padding-right: 3.5rem; }
+ .sm\:px-16 { padding-left: 4rem; padding-right: 4rem; }
+ .sm\:px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
+ .sm\:px-24 { padding-left: 6rem; padding-right: 6rem; }
+ .sm\:px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
+ .sm\:px-3\.5 { padding-left: 0.875rem; padding-right: 0.875rem; }
+ .sm\:px-4 { padding-left: 1rem; padding-right: 1rem; }
+ .sm\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
+ .sm\:px-7 { padding-left: 1.75rem; padding-right: 1.75rem; }
+ .sm\:px-8 { padding-left: 2rem; padding-right: 2rem; }
+ .sm\:py-0 { padding-top: 0px; padding-bottom: 0px; }
+ .sm\:py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
+ .sm\:py-12 { padding-top: 3rem; padding-bottom: 3rem; }
+ .sm\:py-16 { padding-top: 4rem; padding-bottom: 4rem; }
+ .sm\:py-20 { padding-top: 5rem; padding-bottom: 5rem; }
+ .sm\:py-24 { padding-top: 6rem; padding-bottom: 6rem; }
+ .sm\:py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
+ .sm\:py-32 { padding-top: 8rem; padding-bottom: 8rem; }
+ .sm\:py-4 { padding-top: 1rem; padding-bottom: 1rem; }
+ .sm\:py-40 { padding-top: 10rem; padding-bottom: 10rem; }
+ .sm\:py-48 { padding-top: 12rem; padding-bottom: 12rem; }
+ .sm\:py-5 { padding-top: 1.25rem; padding-bottom: 1.25rem; }
+ .sm\:py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
+ .sm\:py-64 { padding-top: 16rem; padding-bottom: 16rem; }
+ .sm\:py-8 { padding-top: 2rem; padding-bottom: 2rem; }
+ .sm\:pb-0 { padding-bottom: 0px; }
+ .sm\:pb-1 { padding-bottom: 0.25rem; }
+ .sm\:pb-14 { padding-bottom: 3.5rem; }
+ .sm\:pb-16 { padding-bottom: 4rem; }
+ .sm\:pb-20 { padding-bottom: 5rem; }
+ .sm\:pb-24 { padding-bottom: 6rem; }
+ .sm\:pb-32 { padding-bottom: 8rem; }
+ .sm\:pb-4 { padding-bottom: 1rem; }
+ .sm\:pb-40 { padding-bottom: 10rem; }
+ .sm\:pb-5 { padding-bottom: 1.25rem; }
+ .sm\:pb-6 { padding-bottom: 1.5rem; }
+ .sm\:pb-64 { padding-bottom: 16rem; }
+ .sm\:pb-7 { padding-bottom: 1.75rem; }
+ .sm\:pb-8 { padding-bottom: 2rem; }
+ .sm\:pl-0 { padding-left: 0px; }
+ .sm\:pl-16 { padding-left: 4rem; }
+ .sm\:pl-20 { padding-left: 5rem; }
+ .sm\:pl-3 { padding-left: 0.75rem; }
+ .sm\:pl-4 { padding-left: 1rem; }
+ .sm\:pl-5 { padding-left: 1.25rem; }
+ .sm\:pl-6 { padding-left: 1.5rem; }
+ .sm\:pr-0 { padding-right: 0px; }
+ .sm\:pr-12 { padding-right: 3rem; }
+ .sm\:pr-2 { padding-right: 0.5rem; }
+ .sm\:pr-20 { padding-right: 5rem; }
+ .sm\:pr-3 { padding-right: 0.75rem; }
+ .sm\:pr-3\.5 { padding-right: 0.875rem; }
+ .sm\:pr-4 { padding-right: 1rem; }
+ .sm\:pr-6 { padding-right: 1.5rem; }
+ .sm\:pr-8 { padding-right: 2rem; }
+ .sm\:pr-9 { padding-right: 2.25rem; }
+ .sm\:pt-0 { padding-top: 0px; }
+ .sm\:pt-1 { padding-top: 0.25rem; }
+ .sm\:pt-1\.5 { padding-top: 0.375rem; }
+ .sm\:pt-10 { padding-top: 2.5rem; }
+ .sm\:pt-12 { padding-top: 3rem; }
+ .sm\:pt-14 { padding-top: 3.5rem; }
+ .sm\:pt-16 { padding-top: 4rem; }
+ .sm\:pt-20 { padding-top: 5rem; }
+ .sm\:pt-24 { padding-top: 6rem; }
+ .sm\:pt-32 { padding-top: 8rem; }
+ .sm\:pt-4 { padding-top: 1rem; }
+ .sm\:pt-40 { padding-top: 10rem; }
+ .sm\:pt-48 { padding-top: 12rem; }
+ .sm\:pt-5 { padding-top: 1.25rem; }
+ .sm\:pt-52 { padding-top: 13rem; }
+ .sm\:pt-6 { padding-top: 1.5rem; }
+ .sm\:pt-60 { padding-top: 15rem; }
+ .sm\:pt-8 { padding-top: 2rem; }
+ .sm\:pt-80 { padding-top: 20rem; }
+ .sm\:text-left { text-align: left; }
+ .sm\:text-center { text-align: center; }
+ .sm\:text-right { text-align: right; }
+ .sm\:text-2xl { font-size: 1.5rem; line-height: 2rem; }
+ .sm\:text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
+ .sm\:text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
+ .sm\:text-5xl { font-size: 3rem; line-height: 1; }
+ .sm\:text-6xl { font-size: 3.75rem; line-height: 1; }
+ .sm\:text-\[0\] { font-size: 0px; }
+ .sm\:text-base { font-size: 1rem; line-height: 1.5rem; }
+ .sm\:text-lg { font-size: 1.125rem; line-height: 1.75rem; }
+ .sm\:text-sm { font-size: 0.875rem; line-height: 1.25rem; }
+ .sm\:text-xl { font-size: 1.25rem; line-height: 1.75rem; }
+ .sm\:leading-6 { line-height: 1.5rem; }
+ .sm\:leading-7 { line-height: 1.75rem; }
+ .sm\:leading-8 { line-height: 2rem; }
+ .sm\:leading-9 { line-height: 2.25rem; }
+ .sm\:leading-none { line-height: 1; }
+ .sm\:tracking-tight { letter-spacing: -0.025em; }
+ .sm\:opacity-0 { opacity: 0; }
+ .sm\:opacity-100 { opacity: 1; }
+ .sm\:opacity-50 { opacity: 0.5; }
+ .sm\:shadow { --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
+ .sm\:shadow-lg { --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
+ .sm\:shadow-none { --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
+ .sm\:shadow-sm { --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
+ .sm\:ring-0 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
+ .sm\:ring-1 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
+ .sm\:ring-gray-900\/10 { --tw-ring-color: rgb(17 24 39 / 0.1); }
+ .sm\:ring-gray-900\/5 { --tw-ring-color: rgb(17 24 39 / 0.05); }
+ .sm\:ring-white\/10 { --tw-ring-color: rgb(255 255 255 / 0.1); }
+ .sm\:blur-3xl { --tw-blur: blur(64px); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
+ .sm\:transition-opacity { transition-property: opacity; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
+ .sm\:duration-300 { transition-duration: 300ms; }
+ .sm\:duration-700 { transition-duration: 700ms; }
+ .sm\:ease-in-out { transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }
+ .sm\:before\:flex-1::before { content: var(--tw-content); flex: 1 1 0%; }
+}
+@media (min-width: 768px) {
+ .md\:absolute { position: absolute; }
+ .md\:inset-y-0 { top: 0px; bottom: 0px; }
+ .md\:-top-20 { top: -5rem; }
+ .md\:bottom-16 { bottom: 4rem; }
+ .md\:left-0 { left: 0px; }
+ .md\:left-\[50rem\] { left: 50rem; }
+ .md\:right-0 { right: 0px; }
+ .md\:right-6 { right: 1.5rem; }
+ .md\:top-20 { top: 5rem; }
+ .md\:top-3 { top: 0.75rem; }
+ .md\:top-6 { top: 1.5rem; }
+ .md\:order-1 { order: 1; }
+ .md\:order-2 { order: 2; }
+ .md\:col-span-2 { grid-column: span 2 / span 2; }
+ .md\:col-span-3 { grid-column: span 3 / span 3; }
+ .md\:col-span-5 { grid-column: span 5 / span 5; }
+ .md\:col-span-7 { grid-column: span 7 / span 7; }
+ .md\:col-span-8 { grid-column: span 8 / span 8; }
+ .md\:col-start-2 { grid-column-start: 2; }
+ .md\:col-start-3 { grid-column-start: 3; }
+ .md\:col-start-4 { grid-column-start: 4; }
+ .md\:row-span-2 { grid-row: span 2 / span 2; }
+ .md\:row-start-1 { grid-row-start: 1; }
+ .md\:row-start-2 { grid-row-start: 2; }
+ .md\:row-end-1 { grid-row-end: 1; }
+ .md\:row-end-2 { grid-row-end: 2; }
+ .md\:-mx-8 { margin-left: -2rem; margin-right: -2rem; }
+ .md\:mx-0 { margin-left: 0px; margin-right: 0px; }
+ .md\:mx-auto { margin-left: auto; margin-right: auto; }
+ .md\:my-8 { margin-top: 2rem; margin-bottom: 2rem; }
+ .md\:-ml-16 { margin-left: -4rem; }
+ .md\:-ml-4 { margin-left: -1rem; }
+ .md\:-mr-16 { margin-right: -4rem; }
+ .md\:-mr-20 { margin-right: -5rem; }
+ .md\:-mt-px { margin-top: -1px; }
+ .md\:mb-2 { margin-bottom: 0.5rem; }
+ .md\:ml-0 { margin-left: 0px; }
+ .md\:ml-10 { margin-left: 2.5rem; }
+ .md\:ml-12 { margin-left: 3rem; }
+ .md\:ml-20 { margin-left: 5rem; }
+ .md\:ml-4 { margin-left: 1rem; }
+ .md\:ml-6 { margin-left: 1.5rem; }
+ .md\:ml-auto { margin-left: auto; }
+ .md\:mr-0 { margin-right: 0px; }
+ .md\:mt-0 { margin-top: 0px; }
+ .md\:mt-1 { margin-top: 0.25rem; }
+ .md\:mt-10 { margin-top: 2.5rem; }
+ .md\:mt-16 { margin-top: 4rem; }
+ .md\:mt-2 { margin-top: 0.5rem; }
+ .md\:mt-24 { margin-top: 6rem; }
+ .md\:mt-32 { margin-top: 8rem; }
+ .md\:mt-5 { margin-top: 1.25rem; }
+ .md\:mt-8 { margin-top: 2rem; }
+ .md\:block { display: block; }
+ .md\:inline-block { display: inline-block; }
+ .md\:inline { display: inline; }
+ .md\:flex { display: flex; }
+ .md\:inline-flex { display: inline-flex; }
+ .md\:table-cell { display: table-cell; }
+ .md\:grid { display: grid; }
+ .md\:hidden { display: none; }
+ .md\:h-40 { height: 10rem; }
+ .md\:h-56 { height: 14rem; }
+ .md\:h-72 { height: 18rem; }
+ .md\:h-96 { height: 24rem; }
+ .md\:h-full { height: 100%; }
+ .md\:h-screen { height: 100vh; }
+ .md\:w-1\/2 { width: 50%; }
+ .md\:w-1\/3 { width: 33.3333%; }
+ .md\:w-2\/3 { width: 66.6667%; }
+ .md\:w-56 { width: 14rem; }
+ .md\:w-72 { width: 18rem; }
+ .md\:w-80 { width: 20rem; }
+ .md\:w-9 { width: 2.25rem; }
+ .md\:w-auto { width: auto; }
+ .md\:min-w-0 { min-width: 0px; }
+ .md\:max-w-2xl { max-width: 42rem; }
+ .md\:max-w-3xl { max-width: 48rem; }
+ .md\:max-w-4xl { max-width: 56rem; }
+ .md\:max-w-full { max-width: 100%; }
+ .md\:max-w-none { max-width: none; }
+ .md\:flex-1 { flex: 1 1 0%; }
+ .md\:flex-shrink-0 { flex-shrink: 0; }
+ .md\:flex-grow { flex-grow: 1; }
+ .md\:-translate-y-1\/2 { --tw-translate-y: -50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .md\:-translate-y-24 { --tw-translate-y: -6rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .md\:translate-y-0 { --tw-translate-y: 0px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .md\:scale-100 { --tw-scale-x: 1; --tw-scale-y: 1; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .md\:scale-95 { --tw-scale-x: 0.95; --tw-scale-y: 0.95; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .md\:transform-gpu { transform: translate3d(var(--tw-translate-x), var(--tw-translate-y), 0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .md\:grid-flow-col { grid-auto-flow: column; }
+ .md\:auto-rows-min { grid-auto-rows: min-content; }
+ .md\:grid-cols-12 { grid-template-columns: repeat(12, minmax(0px, 1fr)); }
+ .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0px, 1fr)); }
+ .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }
+ .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0px, 1fr)); }
+ .md\:grid-cols-6 { grid-template-columns: repeat(6, minmax(0px, 1fr)); }
+ .md\:grid-rows-2 { grid-template-rows: repeat(2, minmax(0px, 1fr)); }
+ .md\:flex-row { flex-direction: row; }
+ .md\:flex-col { flex-direction: column; }
+ .md\:items-start { align-items: flex-start; }
+ .md\:items-center { align-items: center; }
+ .md\:items-baseline { align-items: baseline; }
+ .md\:items-stretch { align-items: stretch; }
+ .md\:justify-start { justify-content: flex-start; }
+ .md\:justify-end { justify-content: flex-end; }
+ .md\:justify-center { justify-content: center; }
+ .md\:justify-between { justify-content: space-between; }
+ .md\:gap-4 { gap: 1rem; }
+ .md\:gap-8 { gap: 2rem; }
+ .md\:gap-x-11 { column-gap: 2.75rem; }
+ .md\:gap-x-6 { column-gap: 1.5rem; }
+ .md\:gap-x-8 { column-gap: 2rem; }
+ .md\:gap-y-0 { row-gap: 0px; }
+ .md\:gap-y-12 { row-gap: 3rem; }
+ .md\:gap-y-16 { row-gap: 4rem; }
+ .md\:space-x-10 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(2.5rem * var(--tw-space-x-reverse)); margin-left: calc(2.5rem * calc(1 - var(--tw-space-x-reverse))); }
+ .md\:space-x-3 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0.75rem * var(--tw-space-x-reverse)); margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse))); }
+ .md\:space-x-4 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(1rem * var(--tw-space-x-reverse)); margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); }
+ .md\:space-x-5 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(1.25rem * var(--tw-space-x-reverse)); margin-left: calc(1.25rem * calc(1 - var(--tw-space-x-reverse))); }
+ .md\:space-x-6 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(1.5rem * var(--tw-space-x-reverse)); margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse))); }
+ .md\:space-x-8 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(2rem * var(--tw-space-x-reverse)); margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse))); }
+ .md\:space-y-0 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0px * var(--tw-space-y-reverse)); }
+ .md\:divide-x > :not([hidden]) ~ :not([hidden]) { --tw-divide-x-reverse: 0; border-right-width: calc(1px * var(--tw-divide-x-reverse)); border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse))); }
+ .md\:divide-y-0 > :not([hidden]) ~ :not([hidden]) { --tw-divide-y-reverse: 0; border-top-width: calc(0px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(0px * var(--tw-divide-y-reverse)); }
+ .md\:divide-gray-200 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(229 231 235 / var(--tw-divide-opacity)); }
+ .md\:rounded-3xl { border-radius: 1.5rem; }
+ .md\:border-l { border-left-width: 1px; }
+ .md\:border-l-0 { border-left-width: 0px; }
+ .md\:border-r { border-right-width: 1px; }
+ .md\:border-t-0 { border-top-width: 0px; }
+ .md\:border-t-4 { border-top-width: 4px; }
+ .md\:border-indigo-900 { --tw-border-opacity: 1; border-color: rgb(49 46 129 / var(--tw-border-opacity)); }
+ .md\:bg-white { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity)); }
+ .md\:object-center { object-position: center center; }
+ .md\:p-20 { padding: 5rem; }
+ .md\:p-6 { padding: 1.5rem; }
+ .md\:px-0 { padding-left: 0px; padding-right: 0px; }
+ .md\:px-10 { padding-left: 2.5rem; padding-right: 2.5rem; }
+ .md\:px-12 { padding-left: 3rem; padding-right: 3rem; }
+ .md\:px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
+ .md\:px-4 { padding-left: 1rem; padding-right: 1rem; }
+ .md\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
+ .md\:px-8 { padding-left: 2rem; padding-right: 2rem; }
+ .md\:py-0 { padding-top: 0px; padding-bottom: 0px; }
+ .md\:py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
+ .md\:py-12 { padding-top: 3rem; padding-bottom: 3rem; }
+ .md\:py-16 { padding-top: 4rem; padding-bottom: 4rem; }
+ .md\:py-28 { padding-top: 7rem; padding-bottom: 7rem; }
+ .md\:py-32 { padding-top: 8rem; padding-bottom: 8rem; }
+ .md\:py-4 { padding-top: 1rem; padding-bottom: 1rem; }
+ .md\:pb-0 { padding-bottom: 0px; }
+ .md\:pb-4 { padding-bottom: 1rem; }
+ .md\:pl-0 { padding-left: 0px; }
+ .md\:pl-10 { padding-left: 2.5rem; }
+ .md\:pl-14 { padding-left: 3.5rem; }
+ .md\:pl-16 { padding-left: 4rem; }
+ .md\:pl-4 { padding-left: 1rem; }
+ .md\:pr-0 { padding-right: 0px; }
+ .md\:pr-10 { padding-right: 2.5rem; }
+ .md\:pr-14 { padding-right: 3.5rem; }
+ .md\:pr-6 { padding-right: 1.5rem; }
+ .md\:pt-0 { padding-top: 0px; }
+ .md\:pt-24 { padding-top: 6rem; }
+ .md\:pt-4 { padding-top: 1rem; }
+ .md\:text-left { text-align: left; }
+ .md\:text-center { text-align: center; }
+ .md\:text-right { text-align: right; }
+ .md\:align-middle { vertical-align: middle; }
+ .md\:text-5xl { font-size: 3rem; line-height: 1; }
+ .md\:text-6xl { font-size: 3.75rem; line-height: 1; }
+ .md\:text-lg { font-size: 1.125rem; line-height: 1.75rem; }
+ .md\:text-sm { font-size: 0.875rem; line-height: 1.25rem; }
+ .md\:text-xl { font-size: 1.25rem; line-height: 1.75rem; }
+ .md\:font-semibold { font-weight: 600; }
+ .md\:leading-6 { line-height: 1.5rem; }
+ .md\:text-gray-700 { --tw-text-opacity: 1; color: rgb(55 65 81 / var(--tw-text-opacity)); }
+ .md\:blur-3xl { --tw-blur: blur(64px); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
+ .md\:\[clip-path\:inset\(0_round_theme\(borderRadius\.3xl\)\)\] { clip-path: inset(0px round 1.5rem); }
+ .md\:\[overflow-anchor\:none\] { overflow-anchor: none; }
+ .md\:hover\:bg-gray-50:hover { --tw-bg-opacity: 1; background-color: rgb(249 250 251 / var(--tw-bg-opacity)); }
+}
+@media (min-width: 1024px) {
+ .lg\:static { position: static; }
+ .lg\:fixed { position: fixed; }
+ .lg\:absolute { position: absolute; }
+ .lg\:relative { position: relative; }
+ .lg\:sticky { position: sticky; }
+ .lg\:inset-0 { inset: 0px; }
+ .lg\:inset-x-auto { left: auto; right: auto; }
+ .lg\:inset-x-px { left: 1px; right: 1px; }
+ .lg\:inset-y-0 { top: 0px; bottom: 0px; }
+ .lg\:inset-y-2 { top: 0.5rem; bottom: 0.5rem; }
+ .lg\:-bottom-32 { bottom: -8rem; }
+ .lg\:-right-8 { right: -2rem; }
+ .lg\:-top-12 { top: -3rem; }
+ .lg\:-top-48 { top: -12rem; }
+ .lg\:bottom-0 { bottom: 0px; }
+ .lg\:bottom-\[-12rem\] { bottom: -12rem; }
+ .lg\:bottom-auto { bottom: auto; }
+ .lg\:left-0 { left: 0px; }
+ .lg\:left-1\/2 { left: 50%; }
+ .lg\:left-36 { left: 9rem; }
+ .lg\:left-48 { left: 12rem; }
+ .lg\:left-8 { left: 2rem; }
+ .lg\:left-80 { left: 20rem; }
+ .lg\:left-\[max\(-14rem\,calc\(100\%-59rem\)\)\] { left: max(-14rem, 100% - 59rem); }
+ .lg\:left-auto { left: auto; }
+ .lg\:right-0 { right: 0px; }
+ .lg\:right-2 { right: 0.5rem; }
+ .lg\:right-72 { right: 18rem; }
+ .lg\:right-8 { right: 2rem; }
+ .lg\:right-full { right: 100%; }
+ .lg\:top-0 { top: 0px; }
+ .lg\:top-1\/2 { top: 50%; }
+ .lg\:top-12 { top: 3rem; }
+ .lg\:top-16 { top: 4rem; }
+ .lg\:top-4 { top: 1rem; }
+ .lg\:top-8 { top: 2rem; }
+ .lg\:top-\[calc\(50\%-30rem\)\] { top: calc(50% - 30rem); }
+ .lg\:top-\[calc\(50\%-7rem\)\] { top: calc(50% - 7rem); }
+ .lg\:top-auto { top: auto; }
+ .lg\:top-full { top: 100%; }
+ .lg\:z-10 { z-index: 10; }
+ .lg\:z-50 { z-index: 50; }
+ .lg\:order-first { order: -9999; }
+ .lg\:order-last { order: 9999; }
+ .lg\:col-span-1 { grid-column: span 1 / span 1; }
+ .lg\:col-span-10 { grid-column: span 10 / span 10; }
+ .lg\:col-span-2 { grid-column: span 2 / span 2; }
+ .lg\:col-span-3 { grid-column: span 3 / span 3; }
+ .lg\:col-span-4 { grid-column: span 4 / span 4; }
+ .lg\:col-span-5 { grid-column: span 5 / span 5; }
+ .lg\:col-span-6 { grid-column: span 6 / span 6; }
+ .lg\:col-span-7 { grid-column: span 7 / span 7; }
+ .lg\:col-span-8 { grid-column: span 8 / span 8; }
+ .lg\:col-span-9 { grid-column: span 9 / span 9; }
+ .lg\:col-start-1 { grid-column-start: 1; }
+ .lg\:col-start-2 { grid-column-start: 2; }
+ .lg\:col-start-3 { grid-column-start: 3; }
+ .lg\:col-start-4 { grid-column-start: 4; }
+ .lg\:col-start-5 { grid-column-start: 5; }
+ .lg\:col-start-6 { grid-column-start: 6; }
+ .lg\:col-start-8 { grid-column-start: 8; }
+ .lg\:col-start-9 { grid-column-start: 9; }
+ .lg\:col-end-1 { grid-column-end: 1; }
+ .lg\:col-end-13 { grid-column-end: 13; }
+ .lg\:col-end-2 { grid-column-end: 2; }
+ .lg\:col-end-3 { grid-column-end: 3; }
+ .lg\:col-end-6 { grid-column-end: 6; }
+ .lg\:col-end-8 { grid-column-end: 8; }
+ .lg\:row-span-2 { grid-row: span 2 / span 2; }
+ .lg\:row-span-3 { grid-row: span 3 / span 3; }
+ .lg\:row-span-4 { grid-row: span 4 / span 4; }
+ .lg\:row-start-1 { grid-row-start: 1; }
+ .lg\:row-start-2 { grid-row-start: 2; }
+ .lg\:row-start-3 { grid-row-start: 3; }
+ .lg\:row-end-1 { grid-row-end: 1; }
+ .lg\:row-end-2 { grid-row-end: 2; }
+ .lg\:row-end-3 { grid-row-end: 3; }
+ .lg\:row-end-4 { grid-row-end: 4; }
+ .lg\:-m-4 { margin: -1rem; }
+ .lg\:m-0 { margin: 0px; }
+ .lg\:-mx-8 { margin-left: -2rem; margin-right: -2rem; }
+ .lg\:-my-8 { margin-top: -2rem; margin-bottom: -2rem; }
+ .lg\:mx-0 { margin-left: 0px; margin-right: 0px; }
+ .lg\:mx-6 { margin-left: 1.5rem; margin-right: 1.5rem; }
+ .lg\:mx-auto { margin-left: auto; margin-right: auto; }
+ .lg\:-mb-14 { margin-bottom: -3.5rem; }
+ .lg\:-mb-80 { margin-bottom: -20rem; }
+ .lg\:-ml-0 { margin-left: 0px; }
+ .lg\:-ml-4 { margin-left: -1rem; }
+ .lg\:-ml-8 { margin-left: -2rem; }
+ .lg\:-mr-1 { margin-right: -0.25rem; }
+ .lg\:-mr-1\.5 { margin-right: -0.375rem; }
+ .lg\:-mr-36 { margin-right: -9rem; }
+ .lg\:-mr-6 { margin-right: -1.5rem; }
+ .lg\:-mr-8 { margin-right: -2rem; }
+ .lg\:-mr-96 { margin-right: -24rem; }
+ .lg\:-mt-12 { margin-top: -3rem; }
+ .lg\:-mt-16 { margin-top: -4rem; }
+ .lg\:mb-0 { margin-bottom: 0px; }
+ .lg\:ml-0 { margin-left: 0px; }
+ .lg\:ml-10 { margin-left: 2.5rem; }
+ .lg\:ml-12 { margin-left: 3rem; }
+ .lg\:ml-20 { margin-left: 5rem; }
+ .lg\:ml-24 { margin-left: 6rem; }
+ .lg\:ml-36 { margin-left: 9rem; }
+ .lg\:ml-4 { margin-left: 1rem; }
+ .lg\:ml-6 { margin-left: 1.5rem; }
+ .lg\:ml-8 { margin-left: 2rem; }
+ .lg\:ml-auto { margin-left: auto; }
+ .lg\:mr-0 { margin-right: 0px; }
+ .lg\:mt-0 { margin-top: 0px; }
+ .lg\:mt-10 { margin-top: 2.5rem; }
+ .lg\:mt-16 { margin-top: 4rem; }
+ .lg\:mt-2 { margin-top: 0.5rem; }
+ .lg\:mt-20 { margin-top: 5rem; }
+ .lg\:mt-24 { margin-top: 6rem; }
+ .lg\:mt-28 { margin-top: 7rem; }
+ .lg\:mt-3 { margin-top: 0.75rem; }
+ .lg\:mt-32 { margin-top: 8rem; }
+ .lg\:mt-4 { margin-top: 1rem; }
+ .lg\:mt-5 { margin-top: 1.25rem; }
+ .lg\:mt-6 { margin-top: 1.5rem; }
+ .lg\:mt-8 { margin-top: 2rem; }
+ .lg\:mt-9 { margin-top: 2.25rem; }
+ .lg\:block { display: block; }
+ .lg\:inline { display: inline; }
+ .lg\:flex { display: flex; }
+ .lg\:table-cell { display: table-cell; }
+ .lg\:grid { display: grid; }
+ .lg\:contents { display: contents; }
+ .lg\:hidden { display: none; }
+ .lg\:aspect-\[3\/2\] { aspect-ratio: 3 / 2; }
+ .lg\:aspect-auto { aspect-ratio: auto; }
+ .lg\:aspect-square { aspect-ratio: 1 / 1; }
+ .lg\:h-0 { height: 0px; }
+ .lg\:h-1 { height: 0.25rem; }
+ .lg\:h-2\/3 { height: 66.6667%; }
+ .lg\:h-28 { height: 7rem; }
+ .lg\:h-48 { height: 12rem; }
+ .lg\:h-52 { height: 13rem; }
+ .lg\:h-6 { height: 1.5rem; }
+ .lg\:h-64 { height: 16rem; }
+ .lg\:h-72 { height: 18rem; }
+ .lg\:h-80 { height: 20rem; }
+ .lg\:h-96 { height: 24rem; }
+ .lg\:h-\[1024px\] { height: 1024px; }
+ .lg\:h-\[1038px\] { height: 1038px; }
+ .lg\:h-\[1147px\] { height: 1147px; }
+ .lg\:h-\[1160px\] { height: 1160px; }
+ .lg\:h-\[34\.5rem\] { height: 34.5rem; }
+ .lg\:h-\[816px\] { height: 816px; }
+ .lg\:h-\[985px\] { height: 985px; }
+ .lg\:h-auto { height: auto; }
+ .lg\:h-full { height: 100%; }
+ .lg\:min-h-\[1100px\] { min-height: 1100px; }
+ .lg\:min-h-\[192px\] { min-height: 192px; }
+ .lg\:min-h-\[464px\] { min-height: 464px; }
+ .lg\:min-h-\[583px\] { min-height: 583px; }
+ .lg\:min-h-\[592px\] { min-height: 592px; }
+ .lg\:min-h-\[700px\] { min-height: 700px; }
+ .lg\:min-h-\[768px\] { min-height: 768px; }
+ .lg\:min-h-\[851px\] { min-height: 851px; }
+ .lg\:min-h-full { min-height: 100%; }
+ .lg\:w-0 { width: 0px; }
+ .lg\:w-1\/12 { width: 8.33333%; }
+ .lg\:w-1\/2 { width: 50%; }
+ .lg\:w-1\/3 { width: 33.3333%; }
+ .lg\:w-2\/12 { width: 16.6667%; }
+ .lg\:w-20 { width: 5rem; }
+ .lg\:w-4\/12 { width: 33.3333%; }
+ .lg\:w-48 { width: 12rem; }
+ .lg\:w-52 { width: 13rem; }
+ .lg\:w-64 { width: 16rem; }
+ .lg\:w-72 { width: 18rem; }
+ .lg\:w-80 { width: 20rem; }
+ .lg\:w-96 { width: 24rem; }
+ .lg\:w-\[37rem\] { width: 37rem; }
+ .lg\:w-\[64rem\] { width: 64rem; }
+ .lg\:w-auto { width: auto; }
+ .lg\:w-full { width: 100%; }
+ .lg\:w-px { width: 1px; }
+ .lg\:w-screen { width: 100vw; }
+ .lg\:min-w-0 { min-width: 0px; }
+ .lg\:min-w-full { min-width: 100%; }
+ .lg\:max-w-2xl { max-width: 42rem; }
+ .lg\:max-w-3xl { max-width: 48rem; }
+ .lg\:max-w-4xl { max-width: 56rem; }
+ .lg\:max-w-5xl { max-width: 64rem; }
+ .lg\:max-w-6xl { max-width: 72rem; }
+ .lg\:max-w-7xl { max-width: 80rem; }
+ .lg\:max-w-lg { max-width: 32rem; }
+ .lg\:max-w-md { max-width: 28rem; }
+ .lg\:max-w-none { max-width: none; }
+ .lg\:max-w-sm { max-width: 24rem; }
+ .lg\:max-w-xl { max-width: 36rem; }
+ .lg\:max-w-xs { max-width: 20rem; }
+ .lg\:flex-1 { flex: 1 1 0%; }
+ .lg\:flex-auto { flex: 1 1 auto; }
+ .lg\:flex-none { flex: 0 0 auto; }
+ .lg\:flex-shrink-0 { flex-shrink: 0; }
+ .lg\:shrink { flex-shrink: 1; }
+ .lg\:shrink-0 { flex-shrink: 0; }
+ .lg\:flex-grow { flex-grow: 1; }
+ .lg\:flex-grow-0 { flex-grow: 0; }
+ .lg\:grow { flex-grow: 1; }
+ .lg\:grow-0 { flex-grow: 0; }
+ .lg\:origin-center { transform-origin: center center; }
+ .lg\:-translate-x-1\/2 { --tw-translate-x: -50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .lg\:-translate-y-1\/2 { --tw-translate-y: -50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .lg\:-translate-y-72 { --tw-translate-y: -18rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .lg\:translate-x-0 { --tw-translate-x: 0px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .lg\:translate-x-1\/2 { --tw-translate-x: 50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .lg\:translate-x-8 { --tw-translate-x: 2rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .lg\:translate-y-0 { --tw-translate-y: 0px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .lg\:translate-y-20 { --tw-translate-y: 5rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .lg\:transform-gpu { transform: translate3d(var(--tw-translate-x), var(--tw-translate-y), 0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .lg\:columns-3 { columns: auto 3; }
+ .lg\:grid-flow-row-dense { grid-auto-flow: dense; }
+ .lg\:grid-flow-col-dense { grid-auto-flow: column dense; }
+ .lg\:auto-rows-min { grid-auto-rows: min-content; }
+ .lg\:grid-cols-1 { grid-template-columns: repeat(1, minmax(0px, 1fr)); }
+ .lg\:grid-cols-10 { grid-template-columns: repeat(10, minmax(0px, 1fr)); }
+ .lg\:grid-cols-12 { grid-template-columns: repeat(12, minmax(0px, 1fr)); }
+ .lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0px, 1fr)); }
+ .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }
+ .lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0px, 1fr)); }
+ .lg\:grid-cols-5 { grid-template-columns: repeat(5, minmax(0px, 1fr)); }
+ .lg\:grid-cols-7 { grid-template-columns: repeat(7, minmax(0px, 1fr)); }
+ .lg\:grid-cols-\[max\(50\%\,36rem\)\,1fr\] { grid-template-columns: max(50%, 36rem) 1fr; }
+ .lg\:grid-rows-1 { grid-template-rows: repeat(1, minmax(0px, 1fr)); }
+ .lg\:grid-rows-3 { grid-template-rows: repeat(3, minmax(0px, 1fr)); }
+ .lg\:grid-rows-6 { grid-template-rows: repeat(6, minmax(0px, 1fr)); }
+ .lg\:grid-rows-\[auto\,auto\,1fr\] { grid-template-rows: auto auto 1fr; }
+ .lg\:flex-row { flex-direction: row; }
+ .lg\:flex-row-reverse { flex-direction: row-reverse; }
+ .lg\:flex-col { flex-direction: column; }
+ .lg\:items-start { align-items: flex-start; }
+ .lg\:items-end { align-items: flex-end; }
+ .lg\:items-center { align-items: center; }
+ .lg\:items-stretch { align-items: stretch; }
+ .lg\:justify-start { justify-content: flex-start; }
+ .lg\:justify-end { justify-content: flex-end; }
+ .lg\:justify-center { justify-content: center; }
+ .lg\:justify-between { justify-content: space-between; }
+ .lg\:gap-24 { gap: 6rem; }
+ .lg\:gap-4 { gap: 1rem; }
+ .lg\:gap-5 { gap: 1.25rem; }
+ .lg\:gap-6 { gap: 1.5rem; }
+ .lg\:gap-8 { gap: 2rem; }
+ .lg\:gap-px { gap: 1px; }
+ .lg\:gap-x-10 { column-gap: 2.5rem; }
+ .lg\:gap-x-12 { column-gap: 3rem; }
+ .lg\:gap-x-14 { column-gap: 3.5rem; }
+ .lg\:gap-x-16 { column-gap: 4rem; }
+ .lg\:gap-x-20 { column-gap: 5rem; }
+ .lg\:gap-x-5 { column-gap: 1.25rem; }
+ .lg\:gap-x-6 { column-gap: 1.5rem; }
+ .lg\:gap-x-8 { column-gap: 2rem; }
+ .lg\:gap-y-0 { row-gap: 0px; }
+ .lg\:gap-y-10 { row-gap: 2.5rem; }
+ .lg\:gap-y-12 { row-gap: 3rem; }
+ .lg\:gap-y-16 { row-gap: 4rem; }
+ .lg\:gap-y-28 { row-gap: 7rem; }
+ .lg\:gap-y-44 { row-gap: 11rem; }
+ .lg\:gap-y-6 { row-gap: 1.5rem; }
+ .lg\:gap-y-8 { row-gap: 2rem; }
+ .lg\:space-x-0 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0px * var(--tw-space-x-reverse)); margin-left: calc(0px * calc(1 - var(--tw-space-x-reverse))); }
+ .lg\:space-x-24 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(6rem * var(--tw-space-x-reverse)); margin-left: calc(6rem * calc(1 - var(--tw-space-x-reverse))); }
+ .lg\:space-x-4 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(1rem * var(--tw-space-x-reverse)); margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); }
+ .lg\:space-x-6 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(1.5rem * var(--tw-space-x-reverse)); margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse))); }
+ .lg\:space-x-8 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(2rem * var(--tw-space-x-reverse)); margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse))); }
+ .lg\:space-y-0 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0px * var(--tw-space-y-reverse)); }
+ .lg\:space-y-10 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(2.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(2.5rem * var(--tw-space-y-reverse)); }
+ .lg\:space-y-20 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(5rem * var(--tw-space-y-reverse)); }
+ .lg\:space-y-8 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(2rem * var(--tw-space-y-reverse)); }
+ .lg\:divide-x > :not([hidden]) ~ :not([hidden]) { --tw-divide-x-reverse: 0; border-right-width: calc(1px * var(--tw-divide-x-reverse)); border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse))); }
+ .lg\:divide-y > :not([hidden]) ~ :not([hidden]) { --tw-divide-y-reverse: 0; border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(1px * var(--tw-divide-y-reverse)); }
+ .lg\:divide-y-0 > :not([hidden]) ~ :not([hidden]) { --tw-divide-y-reverse: 0; border-top-width: calc(0px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(0px * var(--tw-divide-y-reverse)); }
+ .lg\:divide-gray-200 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(229 231 235 / var(--tw-divide-opacity)); }
+ .lg\:divide-gray-700 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(55 65 81 / var(--tw-divide-opacity)); }
+ .lg\:self-start { align-self: flex-start; }
+ .lg\:self-end { align-self: flex-end; }
+ .lg\:self-center { align-self: center; }
+ .lg\:self-stretch { align-self: stretch; }
+ .lg\:overflow-hidden { overflow: hidden; }
+ .lg\:overflow-visible { overflow: visible; }
+ .lg\:overflow-y-auto { overflow-y: auto; }
+ .lg\:overflow-y-visible { overflow-y: visible; }
+ .lg\:rounded-2xl { border-radius: 1rem; }
+ .lg\:rounded-3xl { border-radius: 1.5rem; }
+ .lg\:rounded-lg { border-radius: 0.5rem; }
+ .lg\:rounded-md { border-radius: 0.375rem; }
+ .lg\:rounded-none { border-radius: 0px; }
+ .lg\:rounded-b-none { border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; }
+ .lg\:rounded-l-lg { border-top-left-radius: 0.5rem; border-bottom-left-radius: 0.5rem; }
+ .lg\:rounded-l-none { border-top-left-radius: 0px; border-bottom-left-radius: 0px; }
+ .lg\:rounded-r-lg { border-top-right-radius: 0.5rem; border-bottom-right-radius: 0.5rem; }
+ .lg\:rounded-r-none { border-top-right-radius: 0px; border-bottom-right-radius: 0px; }
+ .lg\:rounded-t-2xl { border-top-left-radius: 1rem; border-top-right-radius: 1rem; }
+ .lg\:rounded-bl-3xl { border-bottom-left-radius: 1.5rem; }
+ .lg\:rounded-bl-none { border-bottom-left-radius: 0px; }
+ .lg\:rounded-br-none { border-bottom-right-radius: 0px; }
+ .lg\:rounded-tl-lg { border-top-left-radius: 0.5rem; }
+ .lg\:rounded-tr-3xl { border-top-right-radius: 1.5rem; }
+ .lg\:rounded-tr-none { border-top-right-radius: 0px; }
+ .lg\:border-0 { border-width: 0px; }
+ .lg\:border-b { border-bottom-width: 1px; }
+ .lg\:border-l { border-left-width: 1px; }
+ .lg\:border-r { border-right-width: 1px; }
+ .lg\:border-t { border-top-width: 1px; }
+ .lg\:border-t-0 { border-top-width: 0px; }
+ .lg\:border-none { border-style: none; }
+ .lg\:border-gray-200 { --tw-border-opacity: 1; border-color: rgb(229 231 235 / var(--tw-border-opacity)); }
+ .lg\:border-gray-900\/10 { border-color: rgba(17, 24, 39, 0.1); }
+ .lg\:border-indigo-400 { --tw-border-opacity: 1; border-color: rgb(129 140 248 / var(--tw-border-opacity)); }
+ .lg\:border-sky-800 { --tw-border-opacity: 1; border-color: rgb(7 89 133 / var(--tw-border-opacity)); }
+ .lg\:border-white { --tw-border-opacity: 1; border-color: rgb(255 255 255 / var(--tw-border-opacity)); }
+ .lg\:border-white\/10 { border-color: rgba(255, 255, 255, 0.1); }
+ .lg\:border-white\/5 { border-color: rgba(255, 255, 255, 0.05); }
+ .lg\:border-t-gray-900\/5 { border-top-color: rgba(17, 24, 39, 0.05); }
+ .lg\:border-opacity-20 { --tw-border-opacity: 0.2; }
+ .lg\:border-opacity-25 { --tw-border-opacity: 0.25; }
+ .lg\:bg-gray-100 { --tw-bg-opacity: 1; background-color: rgb(243 244 246 / var(--tw-bg-opacity)); }
+ .lg\:bg-gray-200 { --tw-bg-opacity: 1; background-color: rgb(229 231 235 / var(--tw-bg-opacity)); }
+ .lg\:bg-gray-800 { --tw-bg-opacity: 1; background-color: rgb(31 41 55 / var(--tw-bg-opacity)); }
+ .lg\:bg-gray-800\/80 { background-color: rgba(31, 41, 55, 0.8); }
+ .lg\:bg-gray-900 { --tw-bg-opacity: 1; background-color: rgb(17 24 39 / var(--tw-bg-opacity)); }
+ .lg\:bg-gray-900\/10 { background-color: rgba(17, 24, 39, 0.1); }
+ .lg\:bg-transparent { background-color: transparent; }
+ .lg\:bg-none { background-image: none; }
+ .lg\:p-0 { padding: 0px; }
+ .lg\:p-2 { padding: 0.5rem; }
+ .lg\:p-20 { padding: 5rem; }
+ .lg\:p-4 { padding: 1rem; }
+ .lg\:p-6 { padding: 1.5rem; }
+ .lg\:p-8 { padding: 2rem; }
+ .lg\:px-0 { padding-left: 0px; padding-right: 0px; }
+ .lg\:px-16 { padding-left: 4rem; padding-right: 4rem; }
+ .lg\:px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
+ .lg\:px-20 { padding-left: 5rem; padding-right: 5rem; }
+ .lg\:px-24 { padding-left: 6rem; padding-right: 6rem; }
+ .lg\:px-4 { padding-left: 1rem; padding-right: 1rem; }
+ .lg\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
+ .lg\:px-8 { padding-left: 2rem; padding-right: 2rem; }
+ .lg\:py-0 { padding-top: 0px; padding-bottom: 0px; }
+ .lg\:py-12 { padding-top: 3rem; padding-bottom: 3rem; }
+ .lg\:py-16 { padding-top: 4rem; padding-bottom: 4rem; }
+ .lg\:py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
+ .lg\:py-20 { padding-top: 5rem; padding-bottom: 5rem; }
+ .lg\:py-24 { padding-top: 6rem; padding-bottom: 6rem; }
+ .lg\:py-32 { padding-top: 8rem; padding-bottom: 8rem; }
+ .lg\:py-40 { padding-top: 10rem; padding-bottom: 10rem; }
+ .lg\:py-48 { padding-top: 12rem; padding-bottom: 12rem; }
+ .lg\:py-5 { padding-top: 1.25rem; padding-bottom: 1.25rem; }
+ .lg\:py-56 { padding-top: 14rem; padding-bottom: 14rem; }
+ .lg\:py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
+ .lg\:py-64 { padding-top: 16rem; padding-bottom: 16rem; }
+ .lg\:py-8 { padding-top: 2rem; padding-bottom: 2rem; }
+ .lg\:pb-0 { padding-bottom: 0px; }
+ .lg\:pb-10 { padding-bottom: 2.5rem; }
+ .lg\:pb-14 { padding-bottom: 3.5rem; }
+ .lg\:pb-16 { padding-bottom: 4rem; }
+ .lg\:pb-20 { padding-bottom: 5rem; }
+ .lg\:pb-24 { padding-bottom: 6rem; }
+ .lg\:pb-28 { padding-bottom: 7rem; }
+ .lg\:pb-32 { padding-bottom: 8rem; }
+ .lg\:pb-4 { padding-bottom: 1rem; }
+ .lg\:pb-40 { padding-bottom: 10rem; }
+ .lg\:pb-48 { padding-bottom: 12rem; }
+ .lg\:pb-56 { padding-bottom: 14rem; }
+ .lg\:pb-8 { padding-bottom: 2rem; }
+ .lg\:pl-0 { padding-left: 0px; }
+ .lg\:pl-10 { padding-left: 2.5rem; }
+ .lg\:pl-12 { padding-left: 3rem; }
+ .lg\:pl-16 { padding-left: 4rem; }
+ .lg\:pl-2 { padding-left: 0.5rem; }
+ .lg\:pl-20 { padding-left: 5rem; }
+ .lg\:pl-24 { padding-left: 6rem; }
+ .lg\:pl-4 { padding-left: 1rem; }
+ .lg\:pl-64 { padding-left: 16rem; }
+ .lg\:pl-72 { padding-left: 18rem; }
+ .lg\:pl-8 { padding-left: 2rem; }
+ .lg\:pl-9 { padding-left: 2.25rem; }
+ .lg\:pr-0 { padding-right: 0px; }
+ .lg\:pr-0\.5 { padding-right: 0.125rem; }
+ .lg\:pr-16 { padding-right: 4rem; }
+ .lg\:pr-20 { padding-right: 5rem; }
+ .lg\:pr-4 { padding-right: 1rem; }
+ .lg\:pr-8 { padding-right: 2rem; }
+ .lg\:pr-96 { padding-right: 24rem; }
+ .lg\:pt-0 { padding-top: 0px; }
+ .lg\:pt-10 { padding-top: 2.5rem; }
+ .lg\:pt-12 { padding-top: 3rem; }
+ .lg\:pt-14 { padding-top: 3.5rem; }
+ .lg\:pt-16 { padding-top: 4rem; }
+ .lg\:pt-2 { padding-top: 0.5rem; }
+ .lg\:pt-20 { padding-top: 5rem; }
+ .lg\:pt-24 { padding-top: 6rem; }
+ .lg\:pt-32 { padding-top: 8rem; }
+ .lg\:pt-36 { padding-top: 9rem; }
+ .lg\:pt-4 { padding-top: 1rem; }
+ .lg\:pt-40 { padding-top: 10rem; }
+ .lg\:pt-48 { padding-top: 12rem; }
+ .lg\:pt-5 { padding-top: 1.25rem; }
+ .lg\:pt-6 { padding-top: 1.5rem; }
+ .lg\:pt-8 { padding-top: 2rem; }
+ .lg\:pt-80 { padding-top: 20rem; }
+ .lg\:text-left { text-align: left; }
+ .lg\:text-center { text-align: center; }
+ .lg\:text-5xl { font-size: 3rem; line-height: 1; }
+ .lg\:text-6xl { font-size: 3.75rem; line-height: 1; }
+ .lg\:text-base { font-size: 1rem; line-height: 1.5rem; }
+ .lg\:text-lg { font-size: 1.125rem; line-height: 1.75rem; }
+ .lg\:text-sm { font-size: 0.875rem; line-height: 1.25rem; }
+ .lg\:font-semibold { font-weight: 600; }
+ .lg\:leading-6 { line-height: 1.5rem; }
+ .lg\:text-gray-900 { --tw-text-opacity: 1; color: rgb(17 24 39 / var(--tw-text-opacity)); }
+ .lg\:text-white { --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity)); }
+ .lg\:opacity-100 { opacity: 1; }
+ .lg\:shadow-none { --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
+ .lg\:ring-0 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
+ .lg\:ring-1 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
+ .lg\:ring-black { --tw-ring-opacity: 1; --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity)); }
+ .lg\:ring-white\/10 { --tw-ring-color: rgb(255 255 255 / 0.1); }
+ .lg\:ring-opacity-5 { --tw-ring-opacity: 0.05; }
+ .lg\:hover\:bg-gray-50:hover { --tw-bg-opacity: 1; background-color: rgb(249 250 251 / var(--tw-bg-opacity)); }
+}
+@media (min-width: 1280px) {
+ .xl\:static { position: static; }
+ .xl\:fixed { position: fixed; }
+ .xl\:absolute { position: absolute; }
+ .xl\:relative { position: relative; }
+ .xl\:inset-0 { inset: 0px; }
+ .xl\:inset-y-0 { top: 0px; bottom: 0px; }
+ .xl\:-left-10 { left: -2.5rem; }
+ .xl\:-top-6 { top: -1.5rem; }
+ .xl\:bottom-auto { bottom: auto; }
+ .xl\:left-0 { left: 0px; }
+ .xl\:left-1\/2 { left: 50%; }
+ .xl\:left-\[calc\(50\%-24rem\)\] { left: calc(50% - 24rem); }
+ .xl\:right-1\/2 { right: 50%; }
+ .xl\:right-auto { right: auto; }
+ .xl\:top-0 { top: 0px; }
+ .xl\:top-3 { top: 0.75rem; }
+ .xl\:top-auto { top: auto; }
+ .xl\:z-50 { z-index: 50; }
+ .xl\:order-first { order: -9999; }
+ .xl\:order-last { order: 9999; }
+ .xl\:order-none { order: 0; }
+ .xl\:col-auto { grid-column: auto / auto; }
+ .xl\:col-span-1 { grid-column: span 1 / span 1; }
+ .xl\:col-span-2 { grid-column: span 2 / span 2; }
+ .xl\:col-span-3 { grid-column: span 3 / span 3; }
+ .xl\:col-span-4 { grid-column: span 4 / span 4; }
+ .xl\:col-span-6 { grid-column: span 6 / span 6; }
+ .xl\:col-span-8 { grid-column: span 8 / span 8; }
+ .xl\:col-span-9 { grid-column: span 9 / span 9; }
+ .xl\:col-start-1 { grid-column-start: 1; }
+ .xl\:col-start-2 { grid-column-start: 2; }
+ .xl\:col-start-4 { grid-column-start: 4; }
+ .xl\:col-start-5 { grid-column-start: 5; }
+ .xl\:col-start-9 { grid-column-start: 9; }
+ .xl\:col-end-1 { grid-column-end: 1; }
+ .xl\:row-span-2 { grid-row: span 2 / span 2; }
+ .xl\:row-start-1 { grid-row-start: 1; }
+ .xl\:row-end-1 { grid-row-end: 1; }
+ .xl\:row-end-2 { grid-row-end: 2; }
+ .xl\:-mx-4 { margin-left: -1rem; margin-right: -1rem; }
+ .xl\:mx-0 { margin-left: 0px; margin-right: 0px; }
+ .xl\:mx-auto { margin-left: auto; margin-right: auto; }
+ .xl\:-mb-8 { margin-bottom: -2rem; }
+ .xl\:-ml-80 { margin-left: -20rem; }
+ .xl\:-mt-8 { margin-top: -2rem; }
+ .xl\:ml-0 { margin-left: 0px; }
+ .xl\:ml-3 { margin-left: 0.75rem; }
+ .xl\:ml-3\.5 { margin-left: 0.875rem; }
+ .xl\:ml-32 { margin-left: 8rem; }
+ .xl\:ml-4 { margin-left: 1rem; }
+ .xl\:ml-48 { margin-left: 12rem; }
+ .xl\:ml-56 { margin-left: 14rem; }
+ .xl\:ml-8 { margin-left: 2rem; }
+ .xl\:mr-0 { margin-right: 0px; }
+ .xl\:mr-16 { margin-right: 4rem; }
+ .xl\:mr-\[calc\(50\%-12rem\)\] { margin-right: calc(50% - 12rem); }
+ .xl\:mt-0 { margin-top: 0px; }
+ .xl\:mt-10 { margin-top: 2.5rem; }
+ .xl\:mt-16 { margin-top: 4rem; }
+ .xl\:mt-3 { margin-top: 0.75rem; }
+ .xl\:mt-36 { margin-top: 9rem; }
+ .xl\:block { display: block; }
+ .xl\:inline { display: inline; }
+ .xl\:flex { display: flex; }
+ .xl\:grid { display: grid; }
+ .xl\:contents { display: contents; }
+ .xl\:hidden { display: none; }
+ .xl\:aspect-auto { aspect-ratio: auto; }
+ .xl\:h-80 { height: 20rem; }
+ .xl\:h-\[608px\] { height: 608px; }
+ .xl\:h-full { height: 100%; }
+ .xl\:w-0 { width: 0px; }
+ .xl\:w-1\/2 { width: 50%; }
+ .xl\:w-32 { width: 8rem; }
+ .xl\:w-64 { width: 16rem; }
+ .xl\:w-72 { width: 18rem; }
+ .xl\:w-80 { width: 20rem; }
+ .xl\:w-96 { width: 24rem; }
+ .xl\:w-auto { width: auto; }
+ .xl\:w-full { width: 100%; }
+ .xl\:max-w-2xl { max-width: 42rem; }
+ .xl\:max-w-4xl { max-width: 56rem; }
+ .xl\:max-w-5xl { max-width: 64rem; }
+ .xl\:max-w-6xl { max-width: 72rem; }
+ .xl\:max-w-7xl { max-width: 80rem; }
+ .xl\:max-w-none { max-width: none; }
+ .xl\:flex-1 { flex: 1 1 0%; }
+ .xl\:flex-auto { flex: 1 1 auto; }
+ .xl\:flex-none { flex: 0 0 auto; }
+ .xl\:flex-shrink-0 { flex-shrink: 0; }
+ .xl\:shrink-0 { flex-shrink: 0; }
+ .xl\:origin-center { transform-origin: center center; }
+ .xl\:-translate-y-1\/2 { --tw-translate-y: -50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .xl\:translate-x-0 { --tw-translate-x: 0px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .xl\:translate-y-0 { --tw-translate-y: 0px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
+ .xl\:transform-none { transform: none; }
+ .xl\:grid-flow-col { grid-auto-flow: column; }
+ .xl\:grid-flow-col-dense { grid-auto-flow: column dense; }
+ .xl\:grid-cols-1 { grid-template-columns: repeat(1, minmax(0px, 1fr)); }
+ .xl\:grid-cols-12 { grid-template-columns: repeat(12, minmax(0px, 1fr)); }
+ .xl\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0px, 1fr)); }
+ .xl\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }
+ .xl\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0px, 1fr)); }
+ .xl\:grid-cols-5 { grid-template-columns: repeat(5, minmax(0px, 1fr)); }
+ .xl\:grid-cols-6 { grid-template-columns: repeat(6, minmax(0px, 1fr)); }
+ .xl\:grid-rows-1 { grid-template-rows: repeat(1, minmax(0px, 1fr)); }
+ .xl\:flex-row { flex-direction: row; }
+ .xl\:flex-col { flex-direction: column; }
+ .xl\:items-start { align-items: flex-start; }
+ .xl\:items-center { align-items: center; }
+ .xl\:items-stretch { align-items: stretch; }
+ .xl\:justify-end { justify-content: flex-end; }
+ .xl\:justify-between { justify-content: space-between; }
+ .xl\:gap-8 { gap: 2rem; }
+ .xl\:gap-x-16 { column-gap: 4rem; }
+ .xl\:gap-x-20 { column-gap: 5rem; }
+ .xl\:gap-x-24 { column-gap: 6rem; }
+ .xl\:gap-x-48 { column-gap: 12rem; }
+ .xl\:gap-x-8 { column-gap: 2rem; }
+ .xl\:space-x-0 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0px * var(--tw-space-x-reverse)); margin-left: calc(0px * calc(1 - var(--tw-space-x-reverse))); }
+ .xl\:space-x-8 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(2rem * var(--tw-space-x-reverse)); margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse))); }
+ .xl\:space-y-0 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0px * var(--tw-space-y-reverse)); }
+ .xl\:space-y-20 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(5rem * var(--tw-space-y-reverse)); }
+ .xl\:space-y-6 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1.5rem * var(--tw-space-y-reverse)); }
+ .xl\:space-y-8 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(2rem * var(--tw-space-y-reverse)); }
+ .xl\:self-center { align-self: center; }
+ .xl\:overflow-hidden { overflow: hidden; }
+ .xl\:overflow-visible { overflow: visible; }
+ .xl\:overflow-y-auto { overflow-y: auto; }
+ .xl\:rounded-3xl { border-radius: 1.5rem; }
+ .xl\:border-b { border-bottom-width: 1px; }
+ .xl\:border-b-0 { border-bottom-width: 0px; }
+ .xl\:border-l { border-left-width: 1px; }
+ .xl\:border-r { border-right-width: 1px; }
+ .xl\:border-t-0 { border-top-width: 0px; }
+ .xl\:border-gray-200 { --tw-border-opacity: 1; border-color: rgb(229 231 235 / var(--tw-border-opacity)); }
+ .xl\:border-gray-400 { --tw-border-opacity: 1; border-color: rgb(156 163 175 / var(--tw-border-opacity)); }
+ .xl\:border-opacity-50 { --tw-border-opacity: 0.5; }
+ .xl\:bg-gradient-to-r { background-image: linear-gradient(to right, var(--tw-gradient-stops)); }
+ .xl\:p-10 { padding: 2.5rem; }
+ .xl\:p-12 { padding: 3rem; }
+ .xl\:px-0 { padding-left: 0px; padding-right: 0px; }
+ .xl\:px-10 { padding-left: 2.5rem; padding-right: 2.5rem; }
+ .xl\:px-14 { padding-left: 3.5rem; padding-right: 3.5rem; }
+ .xl\:px-16 { padding-left: 4rem; padding-right: 4rem; }
+ .xl\:px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
+ .xl\:px-20 { padding-left: 5rem; padding-right: 5rem; }
+ .xl\:px-24 { padding-left: 6rem; padding-right: 6rem; }
+ .xl\:px-8 { padding-left: 2rem; padding-right: 2rem; }
+ .xl\:py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
+ .xl\:py-16 { padding-top: 4rem; padding-bottom: 4rem; }
+ .xl\:py-20 { padding-top: 5rem; padding-bottom: 5rem; }
+ .xl\:py-24 { padding-top: 6rem; padding-bottom: 6rem; }
+ .xl\:py-32 { padding-top: 8rem; padding-bottom: 8rem; }
+ .xl\:py-36 { padding-top: 9rem; padding-bottom: 9rem; }
+ .xl\:pb-0 { padding-bottom: 0px; }
+ .xl\:pb-10 { padding-bottom: 2.5rem; }
+ .xl\:pb-20 { padding-bottom: 5rem; }
+ .xl\:pb-24 { padding-bottom: 6rem; }
+ .xl\:pb-32 { padding-bottom: 8rem; }
+ .xl\:pb-6 { padding-bottom: 1.5rem; }
+ .xl\:pl-0 { padding-left: 0px; }
+ .xl\:pl-12 { padding-left: 3rem; }
+ .xl\:pl-20 { padding-left: 5rem; }
+ .xl\:pl-3 { padding-left: 0.75rem; }
+ .xl\:pl-3\.5 { padding-left: 0.875rem; }
+ .xl\:pl-32 { padding-left: 8rem; }
+ .xl\:pl-6 { padding-left: 1.5rem; }
+ .xl\:pl-72 { padding-left: 18rem; }
+ .xl\:pl-8 { padding-left: 2rem; }
+ .xl\:pl-96 { padding-left: 24rem; }
+ .xl\:pr-0 { padding-right: 0px; }
+ .xl\:pr-12 { padding-right: 3rem; }
+ .xl\:pr-16 { padding-right: 4rem; }
+ .xl\:pr-20 { padding-right: 5rem; }
+ .xl\:pr-6 { padding-right: 1.5rem; }
+ .xl\:pr-8 { padding-right: 2rem; }
+ .xl\:pr-96 { padding-right: 24rem; }
+ .xl\:pt-14 { padding-top: 3.5rem; }
+ .xl\:pt-16 { padding-top: 4rem; }
+ .xl\:pt-6 { padding-top: 1.5rem; }
+ .xl\:pt-8 { padding-top: 2rem; }
+ .xl\:pt-80 { padding-top: 20rem; }
+ .xl\:text-center { text-align: center; }
+ .xl\:text-6xl { font-size: 3.75rem; line-height: 1; }
+ .xl\:text-base { font-size: 1rem; line-height: 1.5rem; }
+ .xl\:text-lg { font-size: 1.125rem; line-height: 1.75rem; }
+ .xl\:text-xl { font-size: 1.25rem; line-height: 1.75rem; }
+}
+@media (min-width: 1536px) {
+ .\32 xl\:mt-5 { margin-top: 1.25rem; }
+ .\32 xl\:block { display: block; }
+ .\32 xl\:hidden { display: none; }
+ .\32 xl\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0px, 1fr)); }
+}
+@media (prefers-color-scheme: dark) {
+ .dark\:text-gray-400 { --tw-text-opacity: 1; color: rgb(156 163 175 / var(--tw-text-opacity)); }
+}
+.\[\&_\*\]\:text-black * { --tw-text-opacity: 1; color: rgb(0 0 0 / var(--tw-text-opacity)); }
diff --git a/frontend/src/assets/css/sciences.css b/frontend/src/assets/css/sciences.css
index 7a8a2fa..48f3fc6 100644
--- a/frontend/src/assets/css/sciences.css
+++ b/frontend/src/assets/css/sciences.css
@@ -61,12 +61,3 @@
background: rosybrown;
}
-/* Style the tab content */
-.tabcontent {
- float: left;
- padding: 0px 12px;
- border: 1px solid #ccc;
- width: 70%;
- border-left: none;
- height: 300px;
-}
diff --git a/frontend/src/components/Footer.vue b/frontend/src/components/Footer.vue
index 31a94ad..f5c39c7 100644
--- a/frontend/src/components/Footer.vue
+++ b/frontend/src/components/Footer.vue
@@ -24,7 +24,7 @@ export default {
-