diff --git a/README.md b/README.md index 27e04c3..c5e6f3f 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,94 @@ -clothes +# Design2Clothes =============== + +AplicaciΓ³n web de diseΓ±o de ropa asistida por inteligencia artificial. +Permite crear, personalizar y exportar diseΓ±os de moda usando IA generativa (Gemini). + +--- + +## π― DescripciΓ³n del Proyecto + +**Design2Clothes** es un diseΓ±ador de ropa online con un flujo de trabajo que combina: + +- Un canvas de diseΓ±o interactivo +- Panel de Assets (Colores, Patrones, Telas) +- Inspector de propiedades (Model Controls, Panel Controls, Garment Controls, Artwork Controls) +- Panel de exportaciΓ³n con prompt AI y generaciΓ³n de imagen + +El sistema usa IA generativa (Gemini API) a travΓ©s de flujos de automatizaciΓ³n con **n8n** para generar diseΓ±os basados en parΓ‘metros configurados por el usuario. + +--- + +## π οΈ Stack TecnolΓ³gico + +| TecnologΓa | Uso | +|---|---| +| **PHP** | Backend, endpoints API, integraciΓ³n con n8n | +| **jQuery** | LΓ³gica frontend, AJAX, interactividad | +| **Bootstrap 5** | Framework CSS / UI Components | +| **Font Awesome 6** | IconografΓa (incluido en `/css`) | +| **Gemini API** | IA generativa para diseΓ±o de ropa | +| **n8n** | AutomatizaciΓ³n y flujos de trabajo (webhooks) | + +--- + +## π Estructura de Carpetas + +``` +clothes/ +βββ css/ # Estilos +β βββ style.css # CSS principal del proyecto +β βββ all.min.css # Font Awesome 6 (incluido localmente) +β βββ webfonts/ # Fuentes de Font Awesome +βββ js/ # JavaScript +β βββ app.js # LΓ³gica principal (jQuery) +βββ media/ # ImΓ‘genes, recursos multimedia +βββ n8n/ # Flujos de trabajo n8n (JSON exports) +βββ design2clothes.pen # DiseΓ±o de referencia UI (Pencil) +βββ README.md # Este fichero +``` + +--- + +## π¨ DiseΓ±o de Referencia + +El fichero `design2clothes.pen` contiene los mockups del diseΓ±o UI con temΓ‘tica **dark mode**: + +- **Fondo base**: `#121212` +- **Cards/Panels**: `#1B1B1B` con borde `#2C2C2C` +- **Color acento**: `#FF6A00` (naranja) +- **TipografΓa**: Inter +- **Pantallas**: Dashboard 1.0 y 1.1 + +### Secciones principales: +1. **Topbar** β Marca + botΓ³n "New Project" +2. **Quick Access** β Acceso rΓ‘pido a ΓΊltimos proyectos +3. **Canvas Shell** β 3 paneles: + - ποΈ **Left** β Assets (Textures, Patterns, Suppliers) + Inspector + - πΌοΈ **Center** β Design Canvas / Γrea de diseΓ±o + - π€ **Right** β Export (Summary, AI Prompt, Export button) + +--- + +## βοΈ ConfiguraciΓ³n + +### API Keys +- `GEMINI_API_KEY` β Clave de la API de Google Gemini +- Configurar en el fichero de configuraciΓ³n PHP (pendiente de crear) + +### n8n Webhooks +- Flujos de automatizaciΓ³n en la carpeta `/n8n` +- IntegraciΓ³n mediante webhooks HTTP + +--- + +## π Estado del Proyecto + +- [x] Estructura de carpetas creada +- [x] DiseΓ±o UI de referencia (design2clothes.pen) +- [x] Font Awesome 6 incluido localmente +- [ ] HTML principal (index.php) +- [ ] PHP backend / API endpoints +- [ ] IntegraciΓ³n Gemini API +- [ ] Flujos n8n +- [ ] LΓ³gica jQuery / app.js diff --git a/api/generate.php b/api/generate.php new file mode 100644 index 0000000..e54f357 --- /dev/null +++ b/api/generate.php @@ -0,0 +1,53 @@ + true, 'url' => $mockUrl]); + break; + + case 'apply': + // Payload: model_url, asset_url, scale, rotation, opacity, blending, prompt + $blending = $_POST['blending'] ?? 'overlay'; + $scale = $_POST['scale'] ?? '100'; + $mockUrl = "https://placehold.co/600x800/171717/FF6A00?text=Applied+Design%0A" . rawurlencode("Blend: {$blending} | Scale: {$scale}%") . "&font=inter"; + d2c_json(['success' => true, 'url' => $mockUrl]); + break; + + case 'export': + // Payload: source_url, resolution, format + $format = $_POST['format'] ?? 'png'; + $res = $_POST['resolution'] ?? '4k'; + $mockUrl = "https://placehold.co/1080x1350/000000/FFFFFF?text=Export+Ready%0A{$res}+{$format}&font=inter"; + $filename = "d2c_export_" . date('Ymd_His') . ".{$format}"; + d2c_json(['success' => true, 'url' => $mockUrl, 'filename' => $filename]); + break; + + default: + d2c_error("Unknown action: $action"); +} diff --git a/api/projects.php b/api/projects.php new file mode 100644 index 0000000..936fa6d --- /dev/null +++ b/api/projects.php @@ -0,0 +1,49 @@ + 'p_1', 'title' => 'ThreadVision FW24 Capsule', 'created' => date('Y-m-d H:i', strtotime('-2 days'))], + ['id' => 'p_2', 'title' => 'Neon Streetwear Concept', 'created' => date('Y-m-d H:i', strtotime('-1 days'))] + ]; + save_projects($projects); + } + d2c_json(['success' => true, 'projects' => $projects]); + break; + + case 'POST': + // Future implementation: create project logic + d2c_json(['success' => true, 'message' => 'Project created']); + break; + + default: + d2c_error('Method not allowed', 405); +} diff --git a/api/upload.php b/api/upload.php new file mode 100644 index 0000000..d6cf8db --- /dev/null +++ b/api/upload.php @@ -0,0 +1,70 @@ + MAX_UPLOAD_SIZE) { + d2c_error('File exceeds max size limit (' . (MAX_UPLOAD_SIZE / 1024 / 1024) . 'MB)'); +} + +// Validate mime +$finfo = finfo_open(FILEINFO_MIME_TYPE); +$mime = finfo_file($finfo, $file['tmp_name']); +finfo_close($finfo); + +if (!in_array($mime, ALLOWED_MIMES)) { + // Check fallback for SVG + if ($mime !== 'text/plain' || pathinfo($file['name'], PATHINFO_EXTENSION) !== 'svg') { + d2c_error("Unsupported file type: $mime. Allowed: " . implode(', ', ALLOWED_MIMES)); + } +} + +// Validate extension +$ext = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION)); +if (!in_array($ext, ALLOWED_EXTS)) { + d2c_error("Unsupported extension: .$ext"); +} + +// Session scoping: group uploads by session ID to avoid clutter +$sessId = session_id() ?: 'shared'; +$uploadDir = UPLOAD_DIR . $sessId . '/'; +if (!is_dir($uploadDir)) { + mkdir($uploadDir, 0755, true); +} + +// Sanitize filename & prevent overwriting easily +$filename = preg_replace('/[^a-zA-Z0-9_\.-]/', '_', $file['name']); +$filename = uniqid() . '_' . $filename; +$targetPath = $uploadDir . $filename; + +if (!move_uploaded_file($file['tmp_name'], $targetPath)) { + d2c_error('Failed to save file to server directory'); +} + +// Generate URL for frontend +$url = APP_BASE_URL . '/media/uploads/' . $sessId . '/' . $filename; + +d2c_json([ + 'success' => true, + 'filename' => $filename, + 'url' => $url, + 'type' => $mime, + 'size' => $file['size'] +]); diff --git a/config.md b/config.md new file mode 100644 index 0000000..8cc4fbb --- /dev/null +++ b/config.md @@ -0,0 +1,77 @@ +# Design2Clothes β Config & Infrastructure + +## URLs + +| Servicio | URL | +|---|---| +| **App (local)** | `http://localhost/clothes` | +| **App (pΓΊblico)** | `https://xamp.airebros.com/clothes` | +| **n8n** | `https://raspin8n.airebros.com` | + +--- + +## Cloudflare Tunnel + +**Config file:** `\\rocketnas\Container\cloudflared\config.yml` +**Tunnel:** `pringagit` + +Entrada relevante: +```yaml +- hostname: xamp.airebros.com + service: http://192.168.0.5:80 +``` + + +```sh +/share/CACHEDEV1_DATA/homes/rocketvan/bin/cloudflared tunnel route dns pringagit xamp.airebros.com +docker restart pringaos_cloudflare +``` + + + + +> Un solo tunnel para todos los proyectos XAMPP. +> Otros proyectos futuros: `xamp.airebros.com/otroapp` + +--- + +## Servidor local β XAMPP + +- **Apache:** puerto `80` +- **htdocs:** `G:\xampp\htdocs\` +- **IP local:** `192.168.0.5` + +### Symlink del proyecto + +Ejecutar una sola vez en PowerShell (como Administrador): +```powershell +New-Item -ItemType SymbolicLink -Path "G:\xampp\htdocs\clothes" -Target "G:\GITHUB\clothes" +``` + +Verificar que Apache tiene `FollowSymLinks` activo (viene por defecto en XAMPP): +```apache +# En httpd.conf o VirtualHost: +Options Indexes FollowSymLinks +``` + +--- + +## n8n + +- **Host:** `192.168.0.149:5678` +- **URL pΓΊblica:** `https://raspin8n.airebros.com` +- **Webhook base:** `https://raspin8n.airebros.com/webhook/` + +Los webhooks especΓficos de Design2Clothes se definirΓ‘n al construir el flujo n8n. + +--- + +## config.php β Constantes a rellenar + +```php +define('GEMINI_API_KEY', 'AIza...'); +define('N8N_WEBHOOK_URL', 'https://raspin8n.airebros.com/webhook/clothes'); +define('APP_BASE_URL', 'https://xamp.airebros.com/clothes'); +define('UPLOAD_DIR', __DIR__ . '/media/uploads/'); +define('OUTPUT_DIR', __DIR__ . '/media/output/'); +``` diff --git a/config.php b/config.php new file mode 100644 index 0000000..1b41860 --- /dev/null +++ b/config.php @@ -0,0 +1,59 @@ + false, 'error' => $message], $code); +} diff --git a/css/all.min.css b/css/all.min.css new file mode 100644 index 0000000..6a6017b --- /dev/null +++ b/css/all.min.css @@ -0,0 +1,8855 @@ +/*! + * Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2023 Fonticons, Inc. + */ +.fa { + font-family: var(--fa-style-family, "Font Awesome 6 Free"); + font-weight: var(--fa-style, 900) +} + +.fa, +.fa-brands, +.fa-classic, +.fa-regular, +.fa-sharp, +.fa-solid, +.fab, +.far, +.fas { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: var(--fa-display, inline-block); + font-style: normal; + font-variant: normal; + line-height: 1; + text-rendering: auto +} + +.fa-classic, +.fa-regular, +.fa-solid, +.far, +.fas { + font-family: "Font Awesome 6 Free" +} + +.fa-brands, +.fab { + font-family: "Font Awesome 6 Brands" +} + +.fa-1x { + font-size: 1em +} + +.fa-2x { + font-size: 2em +} + +.fa-3x { + font-size: 3em +} + +.fa-4x { + font-size: 4em +} + +.fa-5x { + font-size: 5em +} + +.fa-6x { + font-size: 6em +} + +.fa-7x { + font-size: 7em +} + +.fa-8x { + font-size: 8em +} + +.fa-9x { + font-size: 9em +} + +.fa-10x { + font-size: 10em +} + +.fa-2xs { + font-size: .625em; + line-height: .1em; + vertical-align: .225em +} + +.fa-xs { + font-size: .75em; + line-height: .08333em; + vertical-align: .125em +} + +.fa-sm { + font-size: .875em; + line-height: .07143em; + vertical-align: .05357em +} + +.fa-lg { + font-size: 1.25em; + line-height: .05em; + vertical-align: -.075em +} + +.fa-xl { + font-size: 1.5em; + line-height: .04167em; + vertical-align: -.125em +} + +.fa-2xl { + font-size: 2em; + line-height: .03125em; + vertical-align: -.1875em +} + +.fa-fw { + text-align: center; + width: 1.25em +} + +.fa-ul { + list-style-type: none; + margin-left: var(--fa-li-margin, 2.5em); + padding-left: 0 +} + +.fa-ul>li { + position: relative +} + +.fa-li { + left: calc(var(--fa-li-width, 2em)*-1); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit +} + +.fa-border { + border-radius: var(--fa-border-radius, .1em); + border: var(--fa-border-width, .08em) var(--fa-border-style, solid) var(--fa-border-color, #eee); + padding: var(--fa-border-padding, .2em .25em .15em) +} + +.fa-pull-left { + float: left; + margin-right: var(--fa-pull-margin, .3em) +} + +.fa-pull-right { + float: right; + margin-left: var(--fa-pull-margin, .3em) +} + +.fa-beat { + -webkit-animation-name: fa-beat; + animation-name: fa-beat; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out) +} + +.fa-bounce { + -webkit-animation-name: fa-bounce; + animation-name: fa-bounce; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(.28, .84, .42, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(.28, .84, .42, 1)) +} + +.fa-fade { + -webkit-animation-name: fa-fade; + animation-name: fa-fade; + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1)) +} + +.fa-beat-fade, +.fa-fade { + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s) +} + +.fa-beat-fade { + -webkit-animation-name: fa-beat-fade; + animation-name: fa-beat-fade; + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1)) +} + +.fa-flip { + -webkit-animation-name: fa-flip; + animation-name: fa-flip; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out) +} + +.fa-shake { + -webkit-animation-name: fa-shake; + animation-name: fa-shake; + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear) +} + +.fa-shake, +.fa-spin { + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal) +} + +.fa-spin { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-duration: var(--fa-animation-duration, 2s); + animation-duration: var(--fa-animation-duration, 2s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear) +} + +.fa-spin-reverse { + --fa-animation-direction: reverse +} + +.fa-pulse, +.fa-spin-pulse { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, steps(8)); + animation-timing-function: var(--fa-animation-timing, steps(8)) +} + +@media (prefers-reduced-motion:reduce) { + + .fa-beat, + .fa-beat-fade, + .fa-bounce, + .fa-fade, + .fa-flip, + .fa-pulse, + .fa-shake, + .fa-spin, + .fa-spin-pulse { + -webkit-animation-delay: -1ms; + animation-delay: -1ms; + -webkit-animation-duration: 1ms; + animation-duration: 1ms; + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; + -webkit-transition-delay: 0s; + transition-delay: 0s; + -webkit-transition-duration: 0s; + transition-duration: 0s + } +} + +@-webkit-keyframes fa-beat { + + 0%, + 90% { + -webkit-transform: scale(1); + transform: scale(1) + } + + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)) + } +} + +@keyframes fa-beat { + + 0%, + 90% { + -webkit-transform: scale(1); + transform: scale(1) + } + + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)) + } +} + +@-webkit-keyframes fa-bounce { + 0% { + -webkit-transform: scale(1) translateY(0); + transform: scale(1) translateY(0) + } + + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, .9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, .9)) translateY(0) + } + + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, .9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, .9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em)) + } + + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, .95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, .95)) translateY(0) + } + + 57% { + -webkit-transform: scale(1) translateY(var(--fa-bounce-rebound, -.125em)); + transform: scale(1) translateY(var(--fa-bounce-rebound, -.125em)) + } + + 64% { + -webkit-transform: scale(1) translateY(0); + transform: scale(1) translateY(0) + } + + to { + -webkit-transform: scale(1) translateY(0); + transform: scale(1) translateY(0) + } +} + +@keyframes fa-bounce { + 0% { + -webkit-transform: scale(1) translateY(0); + transform: scale(1) translateY(0) + } + + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, .9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, .9)) translateY(0) + } + + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, .9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, .9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em)) + } + + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, .95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, .95)) translateY(0) + } + + 57% { + -webkit-transform: scale(1) translateY(var(--fa-bounce-rebound, -.125em)); + transform: scale(1) translateY(var(--fa-bounce-rebound, -.125em)) + } + + 64% { + -webkit-transform: scale(1) translateY(0); + transform: scale(1) translateY(0) + } + + to { + -webkit-transform: scale(1) translateY(0); + transform: scale(1) translateY(0) + } +} + +@-webkit-keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, .4) + } +} + +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, .4) + } +} + +@-webkit-keyframes fa-beat-fade { + + 0%, + to { + opacity: var(--fa-beat-fade-opacity, .4); + -webkit-transform: scale(1); + transform: scale(1) + } + + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)) + } +} + +@keyframes fa-beat-fade { + + 0%, + to { + opacity: var(--fa-beat-fade-opacity, .4); + -webkit-transform: scale(1); + transform: scale(1) + } + + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)) + } +} + +@-webkit-keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)) + } +} + +@keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)) + } +} + +@-webkit-keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg) + } + + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg) + } + + 8%, + 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg) + } + + 12%, + 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg) + } + + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg) + } + + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg) + } + + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg) + } + + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg) + } + + 40%, + to { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } +} + +@keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg) + } + + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg) + } + + 8%, + 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg) + } + + 12%, + 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg) + } + + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg) + } + + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg) + } + + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg) + } + + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg) + } + + 40%, + to { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } + + to { + -webkit-transform: rotate(1turn); + transform: rotate(1turn) + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } + + to { + -webkit-transform: rotate(1turn); + transform: rotate(1turn) + } +} + +.fa-rotate-90 { + -webkit-transform: rotate(90deg); + transform: rotate(90deg) +} + +.fa-rotate-180 { + -webkit-transform: rotate(180deg); + transform: rotate(180deg) +} + +.fa-rotate-270 { + -webkit-transform: rotate(270deg); + transform: rotate(270deg) +} + +.fa-flip-horizontal { + -webkit-transform: scaleX(-1); + transform: scaleX(-1) +} + +.fa-flip-vertical { + -webkit-transform: scaleY(-1); + transform: scaleY(-1) +} + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + -webkit-transform: scale(-1); + transform: scale(-1) +} + +.fa-rotate-by { + -webkit-transform: rotate(var(--fa-rotate-angle, none)); + transform: rotate(var(--fa-rotate-angle, none)) +} + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em +} + +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; + z-index: var(--fa-stack-z-index, auto) +} + +.fa-stack-1x { + line-height: inherit +} + +.fa-stack-2x { + font-size: 2em +} + +.fa-inverse { + color: var(--fa-inverse, #fff) +} + +.fa-0:before { + content: "\30" +} + +.fa-1:before { + content: "\31" +} + +.fa-2:before { + content: "\32" +} + +.fa-3:before { + content: "\33" +} + +.fa-4:before { + content: "\34" +} + +.fa-5:before { + content: "\35" +} + +.fa-6:before { + content: "\36" +} + +.fa-7:before { + content: "\37" +} + +.fa-8:before { + content: "\38" +} + +.fa-9:before { + content: "\39" +} + +.fa-fill-drip:before { + content: "\f576" +} + +.fa-arrows-to-circle:before { + content: "\e4bd" +} + +.fa-chevron-circle-right:before, +.fa-circle-chevron-right:before { + content: "\f138" +} + +.fa-at:before { + content: "\40" +} + +.fa-trash-alt:before, +.fa-trash-can:before { + content: "\f2ed" +} + +.fa-text-height:before { + content: "\f034" +} + +.fa-user-times:before, +.fa-user-xmark:before { + content: "\f235" +} + +.fa-stethoscope:before { + content: "\f0f1" +} + +.fa-comment-alt:before, +.fa-message:before { + content: "\f27a" +} + +.fa-info:before { + content: "\f129" +} + +.fa-compress-alt:before, +.fa-down-left-and-up-right-to-center:before { + content: "\f422" +} + +.fa-explosion:before { + content: "\e4e9" +} + +.fa-file-alt:before, +.fa-file-lines:before, +.fa-file-text:before { + content: "\f15c" +} + +.fa-wave-square:before { + content: "\f83e" +} + +.fa-ring:before { + content: "\f70b" +} + +.fa-building-un:before { + content: "\e4d9" +} + +.fa-dice-three:before { + content: "\f527" +} + +.fa-calendar-alt:before, +.fa-calendar-days:before { + content: "\f073" +} + +.fa-anchor-circle-check:before { + content: "\e4aa" +} + +.fa-building-circle-arrow-right:before { + content: "\e4d1" +} + +.fa-volleyball-ball:before, +.fa-volleyball:before { + content: "\f45f" +} + +.fa-arrows-up-to-line:before { + content: "\e4c2" +} + +.fa-sort-desc:before, +.fa-sort-down:before { + content: "\f0dd" +} + +.fa-circle-minus:before, +.fa-minus-circle:before { + content: "\f056" +} + +.fa-door-open:before { + content: "\f52b" +} + +.fa-right-from-bracket:before, +.fa-sign-out-alt:before { + content: "\f2f5" +} + +.fa-atom:before { + content: "\f5d2" +} + +.fa-soap:before { + content: "\e06e" +} + +.fa-heart-music-camera-bolt:before, +.fa-icons:before { + content: "\f86d" +} + +.fa-microphone-alt-slash:before, +.fa-microphone-lines-slash:before { + content: "\f539" +} + +.fa-bridge-circle-check:before { + content: "\e4c9" +} + +.fa-pump-medical:before { + content: "\e06a" +} + +.fa-fingerprint:before { + content: "\f577" +} + +.fa-hand-point-right:before { + content: "\f0a4" +} + +.fa-magnifying-glass-location:before, +.fa-search-location:before { + content: "\f689" +} + +.fa-forward-step:before, +.fa-step-forward:before { + content: "\f051" +} + +.fa-face-smile-beam:before, +.fa-smile-beam:before { + content: "\f5b8" +} + +.fa-flag-checkered:before { + content: "\f11e" +} + +.fa-football-ball:before, +.fa-football:before { + content: "\f44e" +} + +.fa-school-circle-exclamation:before { + content: "\e56c" +} + +.fa-crop:before { + content: "\f125" +} + +.fa-angle-double-down:before, +.fa-angles-down:before { + content: "\f103" +} + +.fa-users-rectangle:before { + content: "\e594" +} + +.fa-people-roof:before { + content: "\e537" +} + +.fa-people-line:before { + content: "\e534" +} + +.fa-beer-mug-empty:before, +.fa-beer:before { + content: "\f0fc" +} + +.fa-diagram-predecessor:before { + content: "\e477" +} + +.fa-arrow-up-long:before, +.fa-long-arrow-up:before { + content: "\f176" +} + +.fa-burn:before, +.fa-fire-flame-simple:before { + content: "\f46a" +} + +.fa-male:before, +.fa-person:before { + content: "\f183" +} + +.fa-laptop:before { + content: "\f109" +} + +.fa-file-csv:before { + content: "\f6dd" +} + +.fa-menorah:before { + content: "\f676" +} + +.fa-truck-plane:before { + content: "\e58f" +} + +.fa-record-vinyl:before { + content: "\f8d9" +} + +.fa-face-grin-stars:before, +.fa-grin-stars:before { + content: "\f587" +} + +.fa-bong:before { + content: "\f55c" +} + +.fa-pastafarianism:before, +.fa-spaghetti-monster-flying:before { + content: "\f67b" +} + +.fa-arrow-down-up-across-line:before { + content: "\e4af" +} + +.fa-spoon:before, +.fa-utensil-spoon:before { + content: "\f2e5" +} + +.fa-jar-wheat:before { + content: "\e517" +} + +.fa-envelopes-bulk:before, +.fa-mail-bulk:before { + content: "\f674" +} + +.fa-file-circle-exclamation:before { + content: "\e4eb" +} + +.fa-circle-h:before, +.fa-hospital-symbol:before { + content: "\f47e" +} + +.fa-pager:before { + content: "\f815" +} + +.fa-address-book:before, +.fa-contact-book:before { + content: "\f2b9" +} + +.fa-strikethrough:before { + content: "\f0cc" +} + +.fa-k:before { + content: "\4b" +} + +.fa-landmark-flag:before { + content: "\e51c" +} + +.fa-pencil-alt:before, +.fa-pencil:before { + content: "\f303" +} + +.fa-backward:before { + content: "\f04a" +} + +.fa-caret-right:before { + content: "\f0da" +} + +.fa-comments:before { + content: "\f086" +} + +.fa-file-clipboard:before, +.fa-paste:before { + content: "\f0ea" +} + +.fa-code-pull-request:before { + content: "\e13c" +} + +.fa-clipboard-list:before { + content: "\f46d" +} + +.fa-truck-loading:before, +.fa-truck-ramp-box:before { + content: "\f4de" +} + +.fa-user-check:before { + content: "\f4fc" +} + +.fa-vial-virus:before { + content: "\e597" +} + +.fa-sheet-plastic:before { + content: "\e571" +} + +.fa-blog:before { + content: "\f781" +} + +.fa-user-ninja:before { + content: "\f504" +} + +.fa-person-arrow-up-from-line:before { + content: "\e539" +} + +.fa-scroll-torah:before, +.fa-torah:before { + content: "\f6a0" +} + +.fa-broom-ball:before, +.fa-quidditch-broom-ball:before, +.fa-quidditch:before { + content: "\f458" +} + +.fa-toggle-off:before { + content: "\f204" +} + +.fa-archive:before, +.fa-box-archive:before { + content: "\f187" +} + +.fa-person-drowning:before { + content: "\e545" +} + +.fa-arrow-down-9-1:before, +.fa-sort-numeric-desc:before, +.fa-sort-numeric-down-alt:before { + content: "\f886" +} + +.fa-face-grin-tongue-squint:before, +.fa-grin-tongue-squint:before { + content: "\f58a" +} + +.fa-spray-can:before { + content: "\f5bd" +} + +.fa-truck-monster:before { + content: "\f63b" +} + +.fa-w:before { + content: "\57" +} + +.fa-earth-africa:before, +.fa-globe-africa:before { + content: "\f57c" +} + +.fa-rainbow:before { + content: "\f75b" +} + +.fa-circle-notch:before { + content: "\f1ce" +} + +.fa-tablet-alt:before, +.fa-tablet-screen-button:before { + content: "\f3fa" +} + +.fa-paw:before { + content: "\f1b0" +} + +.fa-cloud:before { + content: "\f0c2" +} + +.fa-trowel-bricks:before { + content: "\e58a" +} + +.fa-face-flushed:before, +.fa-flushed:before { + content: "\f579" +} + +.fa-hospital-user:before { + content: "\f80d" +} + +.fa-tent-arrow-left-right:before { + content: "\e57f" +} + +.fa-gavel:before, +.fa-legal:before { + content: "\f0e3" +} + +.fa-binoculars:before { + content: "\f1e5" +} + +.fa-microphone-slash:before { + content: "\f131" +} + +.fa-box-tissue:before { + content: "\e05b" +} + +.fa-motorcycle:before { + content: "\f21c" +} + +.fa-bell-concierge:before, +.fa-concierge-bell:before { + content: "\f562" +} + +.fa-pen-ruler:before, +.fa-pencil-ruler:before { + content: "\f5ae" +} + +.fa-people-arrows-left-right:before, +.fa-people-arrows:before { + content: "\e068" +} + +.fa-mars-and-venus-burst:before { + content: "\e523" +} + +.fa-caret-square-right:before, +.fa-square-caret-right:before { + content: "\f152" +} + +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4" +} + +.fa-sun-plant-wilt:before { + content: "\e57a" +} + +.fa-toilets-portable:before { + content: "\e584" +} + +.fa-hockey-puck:before { + content: "\f453" +} + +.fa-table:before { + content: "\f0ce" +} + +.fa-magnifying-glass-arrow-right:before { + content: "\e521" +} + +.fa-digital-tachograph:before, +.fa-tachograph-digital:before { + content: "\f566" +} + +.fa-users-slash:before { + content: "\e073" +} + +.fa-clover:before { + content: "\e139" +} + +.fa-mail-reply:before, +.fa-reply:before { + content: "\f3e5" +} + +.fa-star-and-crescent:before { + content: "\f699" +} + +.fa-house-fire:before { + content: "\e50c" +} + +.fa-minus-square:before, +.fa-square-minus:before { + content: "\f146" +} + +.fa-helicopter:before { + content: "\f533" +} + +.fa-compass:before { + content: "\f14e" +} + +.fa-caret-square-down:before, +.fa-square-caret-down:before { + content: "\f150" +} + +.fa-file-circle-question:before { + content: "\e4ef" +} + +.fa-laptop-code:before { + content: "\f5fc" +} + +.fa-swatchbook:before { + content: "\f5c3" +} + +.fa-prescription-bottle:before { + content: "\f485" +} + +.fa-bars:before, +.fa-navicon:before { + content: "\f0c9" +} + +.fa-people-group:before { + content: "\e533" +} + +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: "\f253" +} + +.fa-heart-broken:before, +.fa-heart-crack:before { + content: "\f7a9" +} + +.fa-external-link-square-alt:before, +.fa-square-up-right:before { + content: "\f360" +} + +.fa-face-kiss-beam:before, +.fa-kiss-beam:before { + content: "\f597" +} + +.fa-film:before { + content: "\f008" +} + +.fa-ruler-horizontal:before { + content: "\f547" +} + +.fa-people-robbery:before { + content: "\e536" +} + +.fa-lightbulb:before { + content: "\f0eb" +} + +.fa-caret-left:before { + content: "\f0d9" +} + +.fa-circle-exclamation:before, +.fa-exclamation-circle:before { + content: "\f06a" +} + +.fa-school-circle-xmark:before { + content: "\e56d" +} + +.fa-arrow-right-from-bracket:before, +.fa-sign-out:before { + content: "\f08b" +} + +.fa-chevron-circle-down:before, +.fa-circle-chevron-down:before { + content: "\f13a" +} + +.fa-unlock-alt:before, +.fa-unlock-keyhole:before { + content: "\f13e" +} + +.fa-cloud-showers-heavy:before { + content: "\f740" +} + +.fa-headphones-alt:before, +.fa-headphones-simple:before { + content: "\f58f" +} + +.fa-sitemap:before { + content: "\f0e8" +} + +.fa-circle-dollar-to-slot:before, +.fa-donate:before { + content: "\f4b9" +} + +.fa-memory:before { + content: "\f538" +} + +.fa-road-spikes:before { + content: "\e568" +} + +.fa-fire-burner:before { + content: "\e4f1" +} + +.fa-flag:before { + content: "\f024" +} + +.fa-hanukiah:before { + content: "\f6e6" +} + +.fa-feather:before { + content: "\f52d" +} + +.fa-volume-down:before, +.fa-volume-low:before { + content: "\f027" +} + +.fa-comment-slash:before { + content: "\f4b3" +} + +.fa-cloud-sun-rain:before { + content: "\f743" +} + +.fa-compress:before { + content: "\f066" +} + +.fa-wheat-alt:before, +.fa-wheat-awn:before { + content: "\e2cd" +} + +.fa-ankh:before { + content: "\f644" +} + +.fa-hands-holding-child:before { + content: "\e4fa" +} + +.fa-asterisk:before { + content: "\2a" +} + +.fa-check-square:before, +.fa-square-check:before { + content: "\f14a" +} + +.fa-peseta-sign:before { + content: "\e221" +} + +.fa-header:before, +.fa-heading:before { + content: "\f1dc" +} + +.fa-ghost:before { + content: "\f6e2" +} + +.fa-list-squares:before, +.fa-list:before { + content: "\f03a" +} + +.fa-phone-square-alt:before, +.fa-square-phone-flip:before { + content: "\f87b" +} + +.fa-cart-plus:before { + content: "\f217" +} + +.fa-gamepad:before { + content: "\f11b" +} + +.fa-circle-dot:before, +.fa-dot-circle:before { + content: "\f192" +} + +.fa-dizzy:before, +.fa-face-dizzy:before { + content: "\f567" +} + +.fa-egg:before { + content: "\f7fb" +} + +.fa-house-medical-circle-xmark:before { + content: "\e513" +} + +.fa-campground:before { + content: "\f6bb" +} + +.fa-folder-plus:before { + content: "\f65e" +} + +.fa-futbol-ball:before, +.fa-futbol:before, +.fa-soccer-ball:before { + content: "\f1e3" +} + +.fa-paint-brush:before, +.fa-paintbrush:before { + content: "\f1fc" +} + +.fa-lock:before { + content: "\f023" +} + +.fa-gas-pump:before { + content: "\f52f" +} + +.fa-hot-tub-person:before, +.fa-hot-tub:before { + content: "\f593" +} + +.fa-map-location:before, +.fa-map-marked:before { + content: "\f59f" +} + +.fa-house-flood-water:before { + content: "\e50e" +} + +.fa-tree:before { + content: "\f1bb" +} + +.fa-bridge-lock:before { + content: "\e4cc" +} + +.fa-sack-dollar:before { + content: "\f81d" +} + +.fa-edit:before, +.fa-pen-to-square:before { + content: "\f044" +} + +.fa-car-side:before { + content: "\f5e4" +} + +.fa-share-alt:before, +.fa-share-nodes:before { + content: "\f1e0" +} + +.fa-heart-circle-minus:before { + content: "\e4ff" +} + +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: "\f252" +} + +.fa-microscope:before { + content: "\f610" +} + +.fa-sink:before { + content: "\e06d" +} + +.fa-bag-shopping:before, +.fa-shopping-bag:before { + content: "\f290" +} + +.fa-arrow-down-z-a:before, +.fa-sort-alpha-desc:before, +.fa-sort-alpha-down-alt:before { + content: "\f881" +} + +.fa-mitten:before { + content: "\f7b5" +} + +.fa-person-rays:before { + content: "\e54d" +} + +.fa-users:before { + content: "\f0c0" +} + +.fa-eye-slash:before { + content: "\f070" +} + +.fa-flask-vial:before { + content: "\e4f3" +} + +.fa-hand-paper:before, +.fa-hand:before { + content: "\f256" +} + +.fa-om:before { + content: "\f679" +} + +.fa-worm:before { + content: "\e599" +} + +.fa-house-circle-xmark:before { + content: "\e50b" +} + +.fa-plug:before { + content: "\f1e6" +} + +.fa-chevron-up:before { + content: "\f077" +} + +.fa-hand-spock:before { + content: "\f259" +} + +.fa-stopwatch:before { + content: "\f2f2" +} + +.fa-face-kiss:before, +.fa-kiss:before { + content: "\f596" +} + +.fa-bridge-circle-xmark:before { + content: "\e4cb" +} + +.fa-face-grin-tongue:before, +.fa-grin-tongue:before { + content: "\f589" +} + +.fa-chess-bishop:before { + content: "\f43a" +} + +.fa-face-grin-wink:before, +.fa-grin-wink:before { + content: "\f58c" +} + +.fa-deaf:before, +.fa-deafness:before, +.fa-ear-deaf:before, +.fa-hard-of-hearing:before { + content: "\f2a4" +} + +.fa-road-circle-check:before { + content: "\e564" +} + +.fa-dice-five:before { + content: "\f523" +} + +.fa-rss-square:before, +.fa-square-rss:before { + content: "\f143" +} + +.fa-land-mine-on:before { + content: "\e51b" +} + +.fa-i-cursor:before { + content: "\f246" +} + +.fa-stamp:before { + content: "\f5bf" +} + +.fa-stairs:before { + content: "\e289" +} + +.fa-i:before { + content: "\49" +} + +.fa-hryvnia-sign:before, +.fa-hryvnia:before { + content: "\f6f2" +} + +.fa-pills:before { + content: "\f484" +} + +.fa-face-grin-wide:before, +.fa-grin-alt:before { + content: "\f581" +} + +.fa-tooth:before { + content: "\f5c9" +} + +.fa-v:before { + content: "\56" +} + +.fa-bangladeshi-taka-sign:before { + content: "\e2e6" +} + +.fa-bicycle:before { + content: "\f206" +} + +.fa-rod-asclepius:before, +.fa-rod-snake:before, +.fa-staff-aesculapius:before, +.fa-staff-snake:before { + content: "\e579" +} + +.fa-head-side-cough-slash:before { + content: "\e062" +} + +.fa-ambulance:before, +.fa-truck-medical:before { + content: "\f0f9" +} + +.fa-wheat-awn-circle-exclamation:before { + content: "\e598" +} + +.fa-snowman:before { + content: "\f7d0" +} + +.fa-mortar-pestle:before { + content: "\f5a7" +} + +.fa-road-barrier:before { + content: "\e562" +} + +.fa-school:before { + content: "\f549" +} + +.fa-igloo:before { + content: "\f7ae" +} + +.fa-joint:before { + content: "\f595" +} + +.fa-angle-right:before { + content: "\f105" +} + +.fa-horse:before { + content: "\f6f0" +} + +.fa-q:before { + content: "\51" +} + +.fa-g:before { + content: "\47" +} + +.fa-notes-medical:before { + content: "\f481" +} + +.fa-temperature-2:before, +.fa-temperature-half:before, +.fa-thermometer-2:before, +.fa-thermometer-half:before { + content: "\f2c9" +} + +.fa-dong-sign:before { + content: "\e169" +} + +.fa-capsules:before { + content: "\f46b" +} + +.fa-poo-bolt:before, +.fa-poo-storm:before { + content: "\f75a" +} + +.fa-face-frown-open:before, +.fa-frown-open:before { + content: "\f57a" +} + +.fa-hand-point-up:before { + content: "\f0a6" +} + +.fa-money-bill:before { + content: "\f0d6" +} + +.fa-bookmark:before { + content: "\f02e" +} + +.fa-align-justify:before { + content: "\f039" +} + +.fa-umbrella-beach:before { + content: "\f5ca" +} + +.fa-helmet-un:before { + content: "\e503" +} + +.fa-bullseye:before { + content: "\f140" +} + +.fa-bacon:before { + content: "\f7e5" +} + +.fa-hand-point-down:before { + content: "\f0a7" +} + +.fa-arrow-up-from-bracket:before { + content: "\e09a" +} + +.fa-folder-blank:before, +.fa-folder:before { + content: "\f07b" +} + +.fa-file-medical-alt:before, +.fa-file-waveform:before { + content: "\f478" +} + +.fa-radiation:before { + content: "\f7b9" +} + +.fa-chart-simple:before { + content: "\e473" +} + +.fa-mars-stroke:before { + content: "\f229" +} + +.fa-vial:before { + content: "\f492" +} + +.fa-dashboard:before, +.fa-gauge-med:before, +.fa-gauge:before, +.fa-tachometer-alt-average:before { + content: "\f624" +} + +.fa-magic-wand-sparkles:before, +.fa-wand-magic-sparkles:before { + content: "\e2ca" +} + +.fa-e:before { + content: "\45" +} + +.fa-pen-alt:before, +.fa-pen-clip:before { + content: "\f305" +} + +.fa-bridge-circle-exclamation:before { + content: "\e4ca" +} + +.fa-user:before { + content: "\f007" +} + +.fa-school-circle-check:before { + content: "\e56b" +} + +.fa-dumpster:before { + content: "\f793" +} + +.fa-shuttle-van:before, +.fa-van-shuttle:before { + content: "\f5b6" +} + +.fa-building-user:before { + content: "\e4da" +} + +.fa-caret-square-left:before, +.fa-square-caret-left:before { + content: "\f191" +} + +.fa-highlighter:before { + content: "\f591" +} + +.fa-key:before { + content: "\f084" +} + +.fa-bullhorn:before { + content: "\f0a1" +} + +.fa-globe:before { + content: "\f0ac" +} + +.fa-synagogue:before { + content: "\f69b" +} + +.fa-person-half-dress:before { + content: "\e548" +} + +.fa-road-bridge:before { + content: "\e563" +} + +.fa-location-arrow:before { + content: "\f124" +} + +.fa-c:before { + content: "\43" +} + +.fa-tablet-button:before { + content: "\f10a" +} + +.fa-building-lock:before { + content: "\e4d6" +} + +.fa-pizza-slice:before { + content: "\f818" +} + +.fa-money-bill-wave:before { + content: "\f53a" +} + +.fa-area-chart:before, +.fa-chart-area:before { + content: "\f1fe" +} + +.fa-house-flag:before { + content: "\e50d" +} + +.fa-person-circle-minus:before { + content: "\e540" +} + +.fa-ban:before, +.fa-cancel:before { + content: "\f05e" +} + +.fa-camera-rotate:before { + content: "\e0d8" +} + +.fa-air-freshener:before, +.fa-spray-can-sparkles:before { + content: "\f5d0" +} + +.fa-star:before { + content: "\f005" +} + +.fa-repeat:before { + content: "\f363" +} + +.fa-cross:before { + content: "\f654" +} + +.fa-box:before { + content: "\f466" +} + +.fa-venus-mars:before { + content: "\f228" +} + +.fa-arrow-pointer:before, +.fa-mouse-pointer:before { + content: "\f245" +} + +.fa-expand-arrows-alt:before, +.fa-maximize:before { + content: "\f31e" +} + +.fa-charging-station:before { + content: "\f5e7" +} + +.fa-shapes:before, +.fa-triangle-circle-square:before { + content: "\f61f" +} + +.fa-random:before, +.fa-shuffle:before { + content: "\f074" +} + +.fa-person-running:before, +.fa-running:before { + content: "\f70c" +} + +.fa-mobile-retro:before { + content: "\e527" +} + +.fa-grip-lines-vertical:before { + content: "\f7a5" +} + +.fa-spider:before { + content: "\f717" +} + +.fa-hands-bound:before { + content: "\e4f9" +} + +.fa-file-invoice-dollar:before { + content: "\f571" +} + +.fa-plane-circle-exclamation:before { + content: "\e556" +} + +.fa-x-ray:before { + content: "\f497" +} + +.fa-spell-check:before { + content: "\f891" +} + +.fa-slash:before { + content: "\f715" +} + +.fa-computer-mouse:before, +.fa-mouse:before { + content: "\f8cc" +} + +.fa-arrow-right-to-bracket:before, +.fa-sign-in:before { + content: "\f090" +} + +.fa-shop-slash:before, +.fa-store-alt-slash:before { + content: "\e070" +} + +.fa-server:before { + content: "\f233" +} + +.fa-virus-covid-slash:before { + content: "\e4a9" +} + +.fa-shop-lock:before { + content: "\e4a5" +} + +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: "\f251" +} + +.fa-blender-phone:before { + content: "\f6b6" +} + +.fa-building-wheat:before { + content: "\e4db" +} + +.fa-person-breastfeeding:before { + content: "\e53a" +} + +.fa-right-to-bracket:before, +.fa-sign-in-alt:before { + content: "\f2f6" +} + +.fa-venus:before { + content: "\f221" +} + +.fa-passport:before { + content: "\f5ab" +} + +.fa-heart-pulse:before, +.fa-heartbeat:before { + content: "\f21e" +} + +.fa-people-carry-box:before, +.fa-people-carry:before { + content: "\f4ce" +} + +.fa-temperature-high:before { + content: "\f769" +} + +.fa-microchip:before { + content: "\f2db" +} + +.fa-crown:before { + content: "\f521" +} + +.fa-weight-hanging:before { + content: "\f5cd" +} + +.fa-xmarks-lines:before { + content: "\e59a" +} + +.fa-file-prescription:before { + content: "\f572" +} + +.fa-weight-scale:before, +.fa-weight:before { + content: "\f496" +} + +.fa-user-friends:before, +.fa-user-group:before { + content: "\f500" +} + +.fa-arrow-up-a-z:before, +.fa-sort-alpha-up:before { + content: "\f15e" +} + +.fa-chess-knight:before { + content: "\f441" +} + +.fa-face-laugh-squint:before, +.fa-laugh-squint:before { + content: "\f59b" +} + +.fa-wheelchair:before { + content: "\f193" +} + +.fa-arrow-circle-up:before, +.fa-circle-arrow-up:before { + content: "\f0aa" +} + +.fa-toggle-on:before { + content: "\f205" +} + +.fa-person-walking:before, +.fa-walking:before { + content: "\f554" +} + +.fa-l:before { + content: "\4c" +} + +.fa-fire:before { + content: "\f06d" +} + +.fa-bed-pulse:before, +.fa-procedures:before { + content: "\f487" +} + +.fa-shuttle-space:before, +.fa-space-shuttle:before { + content: "\f197" +} + +.fa-face-laugh:before, +.fa-laugh:before { + content: "\f599" +} + +.fa-folder-open:before { + content: "\f07c" +} + +.fa-heart-circle-plus:before { + content: "\e500" +} + +.fa-code-fork:before { + content: "\e13b" +} + +.fa-city:before { + content: "\f64f" +} + +.fa-microphone-alt:before, +.fa-microphone-lines:before { + content: "\f3c9" +} + +.fa-pepper-hot:before { + content: "\f816" +} + +.fa-unlock:before { + content: "\f09c" +} + +.fa-colon-sign:before { + content: "\e140" +} + +.fa-headset:before { + content: "\f590" +} + +.fa-store-slash:before { + content: "\e071" +} + +.fa-road-circle-xmark:before { + content: "\e566" +} + +.fa-user-minus:before { + content: "\f503" +} + +.fa-mars-stroke-up:before, +.fa-mars-stroke-v:before { + content: "\f22a" +} + +.fa-champagne-glasses:before, +.fa-glass-cheers:before { + content: "\f79f" +} + +.fa-clipboard:before { + content: "\f328" +} + +.fa-house-circle-exclamation:before { + content: "\e50a" +} + +.fa-file-arrow-up:before, +.fa-file-upload:before { + content: "\f574" +} + +.fa-wifi-3:before, +.fa-wifi-strong:before, +.fa-wifi:before { + content: "\f1eb" +} + +.fa-bath:before, +.fa-bathtub:before { + content: "\f2cd" +} + +.fa-underline:before { + content: "\f0cd" +} + +.fa-user-edit:before, +.fa-user-pen:before { + content: "\f4ff" +} + +.fa-signature:before { + content: "\f5b7" +} + +.fa-stroopwafel:before { + content: "\f551" +} + +.fa-bold:before { + content: "\f032" +} + +.fa-anchor-lock:before { + content: "\e4ad" +} + +.fa-building-ngo:before { + content: "\e4d7" +} + +.fa-manat-sign:before { + content: "\e1d5" +} + +.fa-not-equal:before { + content: "\f53e" +} + +.fa-border-style:before, +.fa-border-top-left:before { + content: "\f853" +} + +.fa-map-location-dot:before, +.fa-map-marked-alt:before { + content: "\f5a0" +} + +.fa-jedi:before { + content: "\f669" +} + +.fa-poll:before, +.fa-square-poll-vertical:before { + content: "\f681" +} + +.fa-mug-hot:before { + content: "\f7b6" +} + +.fa-battery-car:before, +.fa-car-battery:before { + content: "\f5df" +} + +.fa-gift:before { + content: "\f06b" +} + +.fa-dice-two:before { + content: "\f528" +} + +.fa-chess-queen:before { + content: "\f445" +} + +.fa-glasses:before { + content: "\f530" +} + +.fa-chess-board:before { + content: "\f43c" +} + +.fa-building-circle-check:before { + content: "\e4d2" +} + +.fa-person-chalkboard:before { + content: "\e53d" +} + +.fa-mars-stroke-h:before, +.fa-mars-stroke-right:before { + content: "\f22b" +} + +.fa-hand-back-fist:before, +.fa-hand-rock:before { + content: "\f255" +} + +.fa-caret-square-up:before, +.fa-square-caret-up:before { + content: "\f151" +} + +.fa-cloud-showers-water:before { + content: "\e4e4" +} + +.fa-bar-chart:before, +.fa-chart-bar:before { + content: "\f080" +} + +.fa-hands-bubbles:before, +.fa-hands-wash:before { + content: "\e05e" +} + +.fa-less-than-equal:before { + content: "\f537" +} + +.fa-train:before { + content: "\f238" +} + +.fa-eye-low-vision:before, +.fa-low-vision:before { + content: "\f2a8" +} + +.fa-crow:before { + content: "\f520" +} + +.fa-sailboat:before { + content: "\e445" +} + +.fa-window-restore:before { + content: "\f2d2" +} + +.fa-plus-square:before, +.fa-square-plus:before { + content: "\f0fe" +} + +.fa-torii-gate:before { + content: "\f6a1" +} + +.fa-frog:before { + content: "\f52e" +} + +.fa-bucket:before { + content: "\e4cf" +} + +.fa-image:before { + content: "\f03e" +} + +.fa-microphone:before { + content: "\f130" +} + +.fa-cow:before { + content: "\f6c8" +} + +.fa-caret-up:before { + content: "\f0d8" +} + +.fa-screwdriver:before { + content: "\f54a" +} + +.fa-folder-closed:before { + content: "\e185" +} + +.fa-house-tsunami:before { + content: "\e515" +} + +.fa-square-nfi:before { + content: "\e576" +} + +.fa-arrow-up-from-ground-water:before { + content: "\e4b5" +} + +.fa-glass-martini-alt:before, +.fa-martini-glass:before { + content: "\f57b" +} + +.fa-rotate-back:before, +.fa-rotate-backward:before, +.fa-rotate-left:before, +.fa-undo-alt:before { + content: "\f2ea" +} + +.fa-columns:before, +.fa-table-columns:before { + content: "\f0db" +} + +.fa-lemon:before { + content: "\f094" +} + +.fa-head-side-mask:before { + content: "\e063" +} + +.fa-handshake:before { + content: "\f2b5" +} + +.fa-gem:before { + content: "\f3a5" +} + +.fa-dolly-box:before, +.fa-dolly:before { + content: "\f472" +} + +.fa-smoking:before { + content: "\f48d" +} + +.fa-compress-arrows-alt:before, +.fa-minimize:before { + content: "\f78c" +} + +.fa-monument:before { + content: "\f5a6" +} + +.fa-snowplow:before { + content: "\f7d2" +} + +.fa-angle-double-right:before, +.fa-angles-right:before { + content: "\f101" +} + +.fa-cannabis:before { + content: "\f55f" +} + +.fa-circle-play:before, +.fa-play-circle:before { + content: "\f144" +} + +.fa-tablets:before { + content: "\f490" +} + +.fa-ethernet:before { + content: "\f796" +} + +.fa-eur:before, +.fa-euro-sign:before, +.fa-euro:before { + content: "\f153" +} + +.fa-chair:before { + content: "\f6c0" +} + +.fa-check-circle:before, +.fa-circle-check:before { + content: "\f058" +} + +.fa-circle-stop:before, +.fa-stop-circle:before { + content: "\f28d" +} + +.fa-compass-drafting:before, +.fa-drafting-compass:before { + content: "\f568" +} + +.fa-plate-wheat:before { + content: "\e55a" +} + +.fa-icicles:before { + content: "\f7ad" +} + +.fa-person-shelter:before { + content: "\e54f" +} + +.fa-neuter:before { + content: "\f22c" +} + +.fa-id-badge:before { + content: "\f2c1" +} + +.fa-marker:before { + content: "\f5a1" +} + +.fa-face-laugh-beam:before, +.fa-laugh-beam:before { + content: "\f59a" +} + +.fa-helicopter-symbol:before { + content: "\e502" +} + +.fa-universal-access:before { + content: "\f29a" +} + +.fa-chevron-circle-up:before, +.fa-circle-chevron-up:before { + content: "\f139" +} + +.fa-lari-sign:before { + content: "\e1c8" +} + +.fa-volcano:before { + content: "\f770" +} + +.fa-person-walking-dashed-line-arrow-right:before { + content: "\e553" +} + +.fa-gbp:before, +.fa-pound-sign:before, +.fa-sterling-sign:before { + content: "\f154" +} + +.fa-viruses:before { + content: "\e076" +} + +.fa-square-person-confined:before { + content: "\e577" +} + +.fa-user-tie:before { + content: "\f508" +} + +.fa-arrow-down-long:before, +.fa-long-arrow-down:before { + content: "\f175" +} + +.fa-tent-arrow-down-to-line:before { + content: "\e57e" +} + +.fa-certificate:before { + content: "\f0a3" +} + +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: "\f122" +} + +.fa-suitcase:before { + content: "\f0f2" +} + +.fa-person-skating:before, +.fa-skating:before { + content: "\f7c5" +} + +.fa-filter-circle-dollar:before, +.fa-funnel-dollar:before { + content: "\f662" +} + +.fa-camera-retro:before { + content: "\f083" +} + +.fa-arrow-circle-down:before, +.fa-circle-arrow-down:before { + content: "\f0ab" +} + +.fa-arrow-right-to-file:before, +.fa-file-import:before { + content: "\f56f" +} + +.fa-external-link-square:before, +.fa-square-arrow-up-right:before { + content: "\f14c" +} + +.fa-box-open:before { + content: "\f49e" +} + +.fa-scroll:before { + content: "\f70e" +} + +.fa-spa:before { + content: "\f5bb" +} + +.fa-location-pin-lock:before { + content: "\e51f" +} + +.fa-pause:before { + content: "\f04c" +} + +.fa-hill-avalanche:before { + content: "\e507" +} + +.fa-temperature-0:before, +.fa-temperature-empty:before, +.fa-thermometer-0:before, +.fa-thermometer-empty:before { + content: "\f2cb" +} + +.fa-bomb:before { + content: "\f1e2" +} + +.fa-registered:before { + content: "\f25d" +} + +.fa-address-card:before, +.fa-contact-card:before, +.fa-vcard:before { + content: "\f2bb" +} + +.fa-balance-scale-right:before, +.fa-scale-unbalanced-flip:before { + content: "\f516" +} + +.fa-subscript:before { + content: "\f12c" +} + +.fa-diamond-turn-right:before, +.fa-directions:before { + content: "\f5eb" +} + +.fa-burst:before { + content: "\e4dc" +} + +.fa-house-laptop:before, +.fa-laptop-house:before { + content: "\e066" +} + +.fa-face-tired:before, +.fa-tired:before { + content: "\f5c8" +} + +.fa-money-bills:before { + content: "\e1f3" +} + +.fa-smog:before { + content: "\f75f" +} + +.fa-crutch:before { + content: "\f7f7" +} + +.fa-cloud-arrow-up:before, +.fa-cloud-upload-alt:before, +.fa-cloud-upload:before { + content: "\f0ee" +} + +.fa-palette:before { + content: "\f53f" +} + +.fa-arrows-turn-right:before { + content: "\e4c0" +} + +.fa-vest:before { + content: "\e085" +} + +.fa-ferry:before { + content: "\e4ea" +} + +.fa-arrows-down-to-people:before { + content: "\e4b9" +} + +.fa-seedling:before, +.fa-sprout:before { + content: "\f4d8" +} + +.fa-arrows-alt-h:before, +.fa-left-right:before { + content: "\f337" +} + +.fa-boxes-packing:before { + content: "\e4c7" +} + +.fa-arrow-circle-left:before, +.fa-circle-arrow-left:before { + content: "\f0a8" +} + +.fa-group-arrows-rotate:before { + content: "\e4f6" +} + +.fa-bowl-food:before { + content: "\e4c6" +} + +.fa-candy-cane:before { + content: "\f786" +} + +.fa-arrow-down-wide-short:before, +.fa-sort-amount-asc:before, +.fa-sort-amount-down:before { + content: "\f160" +} + +.fa-cloud-bolt:before, +.fa-thunderstorm:before { + content: "\f76c" +} + +.fa-remove-format:before, +.fa-text-slash:before { + content: "\f87d" +} + +.fa-face-smile-wink:before, +.fa-smile-wink:before { + content: "\f4da" +} + +.fa-file-word:before { + content: "\f1c2" +} + +.fa-file-powerpoint:before { + content: "\f1c4" +} + +.fa-arrows-h:before, +.fa-arrows-left-right:before { + content: "\f07e" +} + +.fa-house-lock:before { + content: "\e510" +} + +.fa-cloud-arrow-down:before, +.fa-cloud-download-alt:before, +.fa-cloud-download:before { + content: "\f0ed" +} + +.fa-children:before { + content: "\e4e1" +} + +.fa-blackboard:before, +.fa-chalkboard:before { + content: "\f51b" +} + +.fa-user-alt-slash:before, +.fa-user-large-slash:before { + content: "\f4fa" +} + +.fa-envelope-open:before { + content: "\f2b6" +} + +.fa-handshake-alt-slash:before, +.fa-handshake-simple-slash:before { + content: "\e05f" +} + +.fa-mattress-pillow:before { + content: "\e525" +} + +.fa-guarani-sign:before { + content: "\e19a" +} + +.fa-arrows-rotate:before, +.fa-refresh:before, +.fa-sync:before { + content: "\f021" +} + +.fa-fire-extinguisher:before { + content: "\f134" +} + +.fa-cruzeiro-sign:before { + content: "\e152" +} + +.fa-greater-than-equal:before { + content: "\f532" +} + +.fa-shield-alt:before, +.fa-shield-halved:before { + content: "\f3ed" +} + +.fa-atlas:before, +.fa-book-atlas:before { + content: "\f558" +} + +.fa-virus:before { + content: "\e074" +} + +.fa-envelope-circle-check:before { + content: "\e4e8" +} + +.fa-layer-group:before { + content: "\f5fd" +} + +.fa-arrows-to-dot:before { + content: "\e4be" +} + +.fa-archway:before { + content: "\f557" +} + +.fa-heart-circle-check:before { + content: "\e4fd" +} + +.fa-house-chimney-crack:before, +.fa-house-damage:before { + content: "\f6f1" +} + +.fa-file-archive:before, +.fa-file-zipper:before { + content: "\f1c6" +} + +.fa-square:before { + content: "\f0c8" +} + +.fa-glass-martini:before, +.fa-martini-glass-empty:before { + content: "\f000" +} + +.fa-couch:before { + content: "\f4b8" +} + +.fa-cedi-sign:before { + content: "\e0df" +} + +.fa-italic:before { + content: "\f033" +} + +.fa-church:before { + content: "\f51d" +} + +.fa-comments-dollar:before { + content: "\f653" +} + +.fa-democrat:before { + content: "\f747" +} + +.fa-z:before { + content: "\5a" +} + +.fa-person-skiing:before, +.fa-skiing:before { + content: "\f7c9" +} + +.fa-road-lock:before { + content: "\e567" +} + +.fa-a:before { + content: "\41" +} + +.fa-temperature-arrow-down:before, +.fa-temperature-down:before { + content: "\e03f" +} + +.fa-feather-alt:before, +.fa-feather-pointed:before { + content: "\f56b" +} + +.fa-p:before { + content: "\50" +} + +.fa-snowflake:before { + content: "\f2dc" +} + +.fa-newspaper:before { + content: "\f1ea" +} + +.fa-ad:before, +.fa-rectangle-ad:before { + content: "\f641" +} + +.fa-arrow-circle-right:before, +.fa-circle-arrow-right:before { + content: "\f0a9" +} + +.fa-filter-circle-xmark:before { + content: "\e17b" +} + +.fa-locust:before { + content: "\e520" +} + +.fa-sort:before, +.fa-unsorted:before { + content: "\f0dc" +} + +.fa-list-1-2:before, +.fa-list-numeric:before, +.fa-list-ol:before { + content: "\f0cb" +} + +.fa-person-dress-burst:before { + content: "\e544" +} + +.fa-money-check-alt:before, +.fa-money-check-dollar:before { + content: "\f53d" +} + +.fa-vector-square:before { + content: "\f5cb" +} + +.fa-bread-slice:before { + content: "\f7ec" +} + +.fa-language:before { + content: "\f1ab" +} + +.fa-face-kiss-wink-heart:before, +.fa-kiss-wink-heart:before { + content: "\f598" +} + +.fa-filter:before { + content: "\f0b0" +} + +.fa-question:before { + content: "\3f" +} + +.fa-file-signature:before { + content: "\f573" +} + +.fa-arrows-alt:before, +.fa-up-down-left-right:before { + content: "\f0b2" +} + +.fa-house-chimney-user:before { + content: "\e065" +} + +.fa-hand-holding-heart:before { + content: "\f4be" +} + +.fa-puzzle-piece:before { + content: "\f12e" +} + +.fa-money-check:before { + content: "\f53c" +} + +.fa-star-half-alt:before, +.fa-star-half-stroke:before { + content: "\f5c0" +} + +.fa-code:before { + content: "\f121" +} + +.fa-glass-whiskey:before, +.fa-whiskey-glass:before { + content: "\f7a0" +} + +.fa-building-circle-exclamation:before { + content: "\e4d3" +} + +.fa-magnifying-glass-chart:before { + content: "\e522" +} + +.fa-arrow-up-right-from-square:before, +.fa-external-link:before { + content: "\f08e" +} + +.fa-cubes-stacked:before { + content: "\e4e6" +} + +.fa-krw:before, +.fa-won-sign:before, +.fa-won:before { + content: "\f159" +} + +.fa-virus-covid:before { + content: "\e4a8" +} + +.fa-austral-sign:before { + content: "\e0a9" +} + +.fa-f:before { + content: "\46" +} + +.fa-leaf:before { + content: "\f06c" +} + +.fa-road:before { + content: "\f018" +} + +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba" +} + +.fa-person-circle-plus:before { + content: "\e541" +} + +.fa-chart-pie:before, +.fa-pie-chart:before { + content: "\f200" +} + +.fa-bolt-lightning:before { + content: "\e0b7" +} + +.fa-sack-xmark:before { + content: "\e56a" +} + +.fa-file-excel:before { + content: "\f1c3" +} + +.fa-file-contract:before { + content: "\f56c" +} + +.fa-fish-fins:before { + content: "\e4f2" +} + +.fa-building-flag:before { + content: "\e4d5" +} + +.fa-face-grin-beam:before, +.fa-grin-beam:before { + content: "\f582" +} + +.fa-object-ungroup:before { + content: "\f248" +} + +.fa-poop:before { + content: "\f619" +} + +.fa-location-pin:before, +.fa-map-marker:before { + content: "\f041" +} + +.fa-kaaba:before { + content: "\f66b" +} + +.fa-toilet-paper:before { + content: "\f71e" +} + +.fa-hard-hat:before, +.fa-hat-hard:before, +.fa-helmet-safety:before { + content: "\f807" +} + +.fa-eject:before { + content: "\f052" +} + +.fa-arrow-alt-circle-right:before, +.fa-circle-right:before { + content: "\f35a" +} + +.fa-plane-circle-check:before { + content: "\e555" +} + +.fa-face-rolling-eyes:before, +.fa-meh-rolling-eyes:before { + content: "\f5a5" +} + +.fa-object-group:before { + content: "\f247" +} + +.fa-chart-line:before, +.fa-line-chart:before { + content: "\f201" +} + +.fa-mask-ventilator:before { + content: "\e524" +} + +.fa-arrow-right:before { + content: "\f061" +} + +.fa-map-signs:before, +.fa-signs-post:before { + content: "\f277" +} + +.fa-cash-register:before { + content: "\f788" +} + +.fa-person-circle-question:before { + content: "\e542" +} + +.fa-h:before { + content: "\48" +} + +.fa-tarp:before { + content: "\e57b" +} + +.fa-screwdriver-wrench:before, +.fa-tools:before { + content: "\f7d9" +} + +.fa-arrows-to-eye:before { + content: "\e4bf" +} + +.fa-plug-circle-bolt:before { + content: "\e55b" +} + +.fa-heart:before { + content: "\f004" +} + +.fa-mars-and-venus:before { + content: "\f224" +} + +.fa-home-user:before, +.fa-house-user:before { + content: "\e1b0" +} + +.fa-dumpster-fire:before { + content: "\f794" +} + +.fa-house-crack:before { + content: "\e3b1" +} + +.fa-cocktail:before, +.fa-martini-glass-citrus:before { + content: "\f561" +} + +.fa-face-surprise:before, +.fa-surprise:before { + content: "\f5c2" +} + +.fa-bottle-water:before { + content: "\e4c5" +} + +.fa-circle-pause:before, +.fa-pause-circle:before { + content: "\f28b" +} + +.fa-toilet-paper-slash:before { + content: "\e072" +} + +.fa-apple-alt:before, +.fa-apple-whole:before { + content: "\f5d1" +} + +.fa-kitchen-set:before { + content: "\e51a" +} + +.fa-r:before { + content: "\52" +} + +.fa-temperature-1:before, +.fa-temperature-quarter:before, +.fa-thermometer-1:before, +.fa-thermometer-quarter:before { + content: "\f2ca" +} + +.fa-cube:before { + content: "\f1b2" +} + +.fa-bitcoin-sign:before { + content: "\e0b4" +} + +.fa-shield-dog:before { + content: "\e573" +} + +.fa-solar-panel:before { + content: "\f5ba" +} + +.fa-lock-open:before { + content: "\f3c1" +} + +.fa-elevator:before { + content: "\e16d" +} + +.fa-money-bill-transfer:before { + content: "\e528" +} + +.fa-money-bill-trend-up:before { + content: "\e529" +} + +.fa-house-flood-water-circle-arrow-right:before { + content: "\e50f" +} + +.fa-poll-h:before, +.fa-square-poll-horizontal:before { + content: "\f682" +} + +.fa-circle:before { + content: "\f111" +} + +.fa-backward-fast:before, +.fa-fast-backward:before { + content: "\f049" +} + +.fa-recycle:before { + content: "\f1b8" +} + +.fa-user-astronaut:before { + content: "\f4fb" +} + +.fa-plane-slash:before { + content: "\e069" +} + +.fa-trademark:before { + content: "\f25c" +} + +.fa-basketball-ball:before, +.fa-basketball:before { + content: "\f434" +} + +.fa-satellite-dish:before { + content: "\f7c0" +} + +.fa-arrow-alt-circle-up:before, +.fa-circle-up:before { + content: "\f35b" +} + +.fa-mobile-alt:before, +.fa-mobile-screen-button:before { + content: "\f3cd" +} + +.fa-volume-high:before, +.fa-volume-up:before { + content: "\f028" +} + +.fa-users-rays:before { + content: "\e593" +} + +.fa-wallet:before { + content: "\f555" +} + +.fa-clipboard-check:before { + content: "\f46c" +} + +.fa-file-audio:before { + content: "\f1c7" +} + +.fa-burger:before, +.fa-hamburger:before { + content: "\f805" +} + +.fa-wrench:before { + content: "\f0ad" +} + +.fa-bugs:before { + content: "\e4d0" +} + +.fa-rupee-sign:before, +.fa-rupee:before { + content: "\f156" +} + +.fa-file-image:before { + content: "\f1c5" +} + +.fa-circle-question:before, +.fa-question-circle:before { + content: "\f059" +} + +.fa-plane-departure:before { + content: "\f5b0" +} + +.fa-handshake-slash:before { + content: "\e060" +} + +.fa-book-bookmark:before { + content: "\e0bb" +} + +.fa-code-branch:before { + content: "\f126" +} + +.fa-hat-cowboy:before { + content: "\f8c0" +} + +.fa-bridge:before { + content: "\e4c8" +} + +.fa-phone-alt:before, +.fa-phone-flip:before { + content: "\f879" +} + +.fa-truck-front:before { + content: "\e2b7" +} + +.fa-cat:before { + content: "\f6be" +} + +.fa-anchor-circle-exclamation:before { + content: "\e4ab" +} + +.fa-truck-field:before { + content: "\e58d" +} + +.fa-route:before { + content: "\f4d7" +} + +.fa-clipboard-question:before { + content: "\e4e3" +} + +.fa-panorama:before { + content: "\e209" +} + +.fa-comment-medical:before { + content: "\f7f5" +} + +.fa-teeth-open:before { + content: "\f62f" +} + +.fa-file-circle-minus:before { + content: "\e4ed" +} + +.fa-tags:before { + content: "\f02c" +} + +.fa-wine-glass:before { + content: "\f4e3" +} + +.fa-fast-forward:before, +.fa-forward-fast:before { + content: "\f050" +} + +.fa-face-meh-blank:before, +.fa-meh-blank:before { + content: "\f5a4" +} + +.fa-parking:before, +.fa-square-parking:before { + content: "\f540" +} + +.fa-house-signal:before { + content: "\e012" +} + +.fa-bars-progress:before, +.fa-tasks-alt:before { + content: "\f828" +} + +.fa-faucet-drip:before { + content: "\e006" +} + +.fa-cart-flatbed:before, +.fa-dolly-flatbed:before { + content: "\f474" +} + +.fa-ban-smoking:before, +.fa-smoking-ban:before { + content: "\f54d" +} + +.fa-terminal:before { + content: "\f120" +} + +.fa-mobile-button:before { + content: "\f10b" +} + +.fa-house-medical-flag:before { + content: "\e514" +} + +.fa-basket-shopping:before, +.fa-shopping-basket:before { + content: "\f291" +} + +.fa-tape:before { + content: "\f4db" +} + +.fa-bus-alt:before, +.fa-bus-simple:before { + content: "\f55e" +} + +.fa-eye:before { + content: "\f06e" +} + +.fa-face-sad-cry:before, +.fa-sad-cry:before { + content: "\f5b3" +} + +.fa-audio-description:before { + content: "\f29e" +} + +.fa-person-military-to-person:before { + content: "\e54c" +} + +.fa-file-shield:before { + content: "\e4f0" +} + +.fa-user-slash:before { + content: "\f506" +} + +.fa-pen:before { + content: "\f304" +} + +.fa-tower-observation:before { + content: "\e586" +} + +.fa-file-code:before { + content: "\f1c9" +} + +.fa-signal-5:before, +.fa-signal-perfect:before, +.fa-signal:before { + content: "\f012" +} + +.fa-bus:before { + content: "\f207" +} + +.fa-heart-circle-xmark:before { + content: "\e501" +} + +.fa-home-lg:before, +.fa-house-chimney:before { + content: "\e3af" +} + +.fa-window-maximize:before { + content: "\f2d0" +} + +.fa-face-frown:before, +.fa-frown:before { + content: "\f119" +} + +.fa-prescription:before { + content: "\f5b1" +} + +.fa-shop:before, +.fa-store-alt:before { + content: "\f54f" +} + +.fa-floppy-disk:before, +.fa-save:before { + content: "\f0c7" +} + +.fa-vihara:before { + content: "\f6a7" +} + +.fa-balance-scale-left:before, +.fa-scale-unbalanced:before { + content: "\f515" +} + +.fa-sort-asc:before, +.fa-sort-up:before { + content: "\f0de" +} + +.fa-comment-dots:before, +.fa-commenting:before { + content: "\f4ad" +} + +.fa-plant-wilt:before { + content: "\e5aa" +} + +.fa-diamond:before { + content: "\f219" +} + +.fa-face-grin-squint:before, +.fa-grin-squint:before { + content: "\f585" +} + +.fa-hand-holding-dollar:before, +.fa-hand-holding-usd:before { + content: "\f4c0" +} + +.fa-bacterium:before { + content: "\e05a" +} + +.fa-hand-pointer:before { + content: "\f25a" +} + +.fa-drum-steelpan:before { + content: "\f56a" +} + +.fa-hand-scissors:before { + content: "\f257" +} + +.fa-hands-praying:before, +.fa-praying-hands:before { + content: "\f684" +} + +.fa-arrow-right-rotate:before, +.fa-arrow-rotate-forward:before, +.fa-arrow-rotate-right:before, +.fa-redo:before { + content: "\f01e" +} + +.fa-biohazard:before { + content: "\f780" +} + +.fa-location-crosshairs:before, +.fa-location:before { + content: "\f601" +} + +.fa-mars-double:before { + content: "\f227" +} + +.fa-child-dress:before { + content: "\e59c" +} + +.fa-users-between-lines:before { + content: "\e591" +} + +.fa-lungs-virus:before { + content: "\e067" +} + +.fa-face-grin-tears:before, +.fa-grin-tears:before { + content: "\f588" +} + +.fa-phone:before { + content: "\f095" +} + +.fa-calendar-times:before, +.fa-calendar-xmark:before { + content: "\f273" +} + +.fa-child-reaching:before { + content: "\e59d" +} + +.fa-head-side-virus:before { + content: "\e064" +} + +.fa-user-cog:before, +.fa-user-gear:before { + content: "\f4fe" +} + +.fa-arrow-up-1-9:before, +.fa-sort-numeric-up:before { + content: "\f163" +} + +.fa-door-closed:before { + content: "\f52a" +} + +.fa-shield-virus:before { + content: "\e06c" +} + +.fa-dice-six:before { + content: "\f526" +} + +.fa-mosquito-net:before { + content: "\e52c" +} + +.fa-bridge-water:before { + content: "\e4ce" +} + +.fa-person-booth:before { + content: "\f756" +} + +.fa-text-width:before { + content: "\f035" +} + +.fa-hat-wizard:before { + content: "\f6e8" +} + +.fa-pen-fancy:before { + content: "\f5ac" +} + +.fa-digging:before, +.fa-person-digging:before { + content: "\f85e" +} + +.fa-trash:before { + content: "\f1f8" +} + +.fa-gauge-simple-med:before, +.fa-gauge-simple:before, +.fa-tachometer-average:before { + content: "\f629" +} + +.fa-book-medical:before { + content: "\f7e6" +} + +.fa-poo:before { + content: "\f2fe" +} + +.fa-quote-right-alt:before, +.fa-quote-right:before { + content: "\f10e" +} + +.fa-shirt:before, +.fa-t-shirt:before, +.fa-tshirt:before { + content: "\f553" +} + +.fa-cubes:before { + content: "\f1b3" +} + +.fa-divide:before { + content: "\f529" +} + +.fa-tenge-sign:before, +.fa-tenge:before { + content: "\f7d7" +} + +.fa-headphones:before { + content: "\f025" +} + +.fa-hands-holding:before { + content: "\f4c2" +} + +.fa-hands-clapping:before { + content: "\e1a8" +} + +.fa-republican:before { + content: "\f75e" +} + +.fa-arrow-left:before { + content: "\f060" +} + +.fa-person-circle-xmark:before { + content: "\e543" +} + +.fa-ruler:before { + content: "\f545" +} + +.fa-align-left:before { + content: "\f036" +} + +.fa-dice-d6:before { + content: "\f6d1" +} + +.fa-restroom:before { + content: "\f7bd" +} + +.fa-j:before { + content: "\4a" +} + +.fa-users-viewfinder:before { + content: "\e595" +} + +.fa-file-video:before { + content: "\f1c8" +} + +.fa-external-link-alt:before, +.fa-up-right-from-square:before { + content: "\f35d" +} + +.fa-table-cells:before, +.fa-th:before { + content: "\f00a" +} + +.fa-file-pdf:before { + content: "\f1c1" +} + +.fa-bible:before, +.fa-book-bible:before { + content: "\f647" +} + +.fa-o:before { + content: "\4f" +} + +.fa-medkit:before, +.fa-suitcase-medical:before { + content: "\f0fa" +} + +.fa-user-secret:before { + content: "\f21b" +} + +.fa-otter:before { + content: "\f700" +} + +.fa-female:before, +.fa-person-dress:before { + content: "\f182" +} + +.fa-comment-dollar:before { + content: "\f651" +} + +.fa-briefcase-clock:before, +.fa-business-time:before { + content: "\f64a" +} + +.fa-table-cells-large:before, +.fa-th-large:before { + content: "\f009" +} + +.fa-book-tanakh:before, +.fa-tanakh:before { + content: "\f827" +} + +.fa-phone-volume:before, +.fa-volume-control-phone:before { + content: "\f2a0" +} + +.fa-hat-cowboy-side:before { + content: "\f8c1" +} + +.fa-clipboard-user:before { + content: "\f7f3" +} + +.fa-child:before { + content: "\f1ae" +} + +.fa-lira-sign:before { + content: "\f195" +} + +.fa-satellite:before { + content: "\f7bf" +} + +.fa-plane-lock:before { + content: "\e558" +} + +.fa-tag:before { + content: "\f02b" +} + +.fa-comment:before { + content: "\f075" +} + +.fa-birthday-cake:before, +.fa-cake-candles:before, +.fa-cake:before { + content: "\f1fd" +} + +.fa-envelope:before { + content: "\f0e0" +} + +.fa-angle-double-up:before, +.fa-angles-up:before { + content: "\f102" +} + +.fa-paperclip:before { + content: "\f0c6" +} + +.fa-arrow-right-to-city:before { + content: "\e4b3" +} + +.fa-ribbon:before { + content: "\f4d6" +} + +.fa-lungs:before { + content: "\f604" +} + +.fa-arrow-up-9-1:before, +.fa-sort-numeric-up-alt:before { + content: "\f887" +} + +.fa-litecoin-sign:before { + content: "\e1d3" +} + +.fa-border-none:before { + content: "\f850" +} + +.fa-circle-nodes:before { + content: "\e4e2" +} + +.fa-parachute-box:before { + content: "\f4cd" +} + +.fa-indent:before { + content: "\f03c" +} + +.fa-truck-field-un:before { + content: "\e58e" +} + +.fa-hourglass-empty:before, +.fa-hourglass:before { + content: "\f254" +} + +.fa-mountain:before { + content: "\f6fc" +} + +.fa-user-doctor:before, +.fa-user-md:before { + content: "\f0f0" +} + +.fa-circle-info:before, +.fa-info-circle:before { + content: "\f05a" +} + +.fa-cloud-meatball:before { + content: "\f73b" +} + +.fa-camera-alt:before, +.fa-camera:before { + content: "\f030" +} + +.fa-square-virus:before { + content: "\e578" +} + +.fa-meteor:before { + content: "\f753" +} + +.fa-car-on:before { + content: "\e4dd" +} + +.fa-sleigh:before { + content: "\f7cc" +} + +.fa-arrow-down-1-9:before, +.fa-sort-numeric-asc:before, +.fa-sort-numeric-down:before { + content: "\f162" +} + +.fa-hand-holding-droplet:before, +.fa-hand-holding-water:before { + content: "\f4c1" +} + +.fa-water:before { + content: "\f773" +} + +.fa-calendar-check:before { + content: "\f274" +} + +.fa-braille:before { + content: "\f2a1" +} + +.fa-prescription-bottle-alt:before, +.fa-prescription-bottle-medical:before { + content: "\f486" +} + +.fa-landmark:before { + content: "\f66f" +} + +.fa-truck:before { + content: "\f0d1" +} + +.fa-crosshairs:before { + content: "\f05b" +} + +.fa-person-cane:before { + content: "\e53c" +} + +.fa-tent:before { + content: "\e57d" +} + +.fa-vest-patches:before { + content: "\e086" +} + +.fa-check-double:before { + content: "\f560" +} + +.fa-arrow-down-a-z:before, +.fa-sort-alpha-asc:before, +.fa-sort-alpha-down:before { + content: "\f15d" +} + +.fa-money-bill-wheat:before { + content: "\e52a" +} + +.fa-cookie:before { + content: "\f563" +} + +.fa-arrow-left-rotate:before, +.fa-arrow-rotate-back:before, +.fa-arrow-rotate-backward:before, +.fa-arrow-rotate-left:before, +.fa-undo:before { + content: "\f0e2" +} + +.fa-hard-drive:before, +.fa-hdd:before { + content: "\f0a0" +} + +.fa-face-grin-squint-tears:before, +.fa-grin-squint-tears:before { + content: "\f586" +} + +.fa-dumbbell:before { + content: "\f44b" +} + +.fa-list-alt:before, +.fa-rectangle-list:before { + content: "\f022" +} + +.fa-tarp-droplet:before { + content: "\e57c" +} + +.fa-house-medical-circle-check:before { + content: "\e511" +} + +.fa-person-skiing-nordic:before, +.fa-skiing-nordic:before { + content: "\f7ca" +} + +.fa-calendar-plus:before { + content: "\f271" +} + +.fa-plane-arrival:before { + content: "\f5af" +} + +.fa-arrow-alt-circle-left:before, +.fa-circle-left:before { + content: "\f359" +} + +.fa-subway:before, +.fa-train-subway:before { + content: "\f239" +} + +.fa-chart-gantt:before { + content: "\e0e4" +} + +.fa-indian-rupee-sign:before, +.fa-indian-rupee:before, +.fa-inr:before { + content: "\e1bc" +} + +.fa-crop-alt:before, +.fa-crop-simple:before { + content: "\f565" +} + +.fa-money-bill-1:before, +.fa-money-bill-alt:before { + content: "\f3d1" +} + +.fa-left-long:before, +.fa-long-arrow-alt-left:before { + content: "\f30a" +} + +.fa-dna:before { + content: "\f471" +} + +.fa-virus-slash:before { + content: "\e075" +} + +.fa-minus:before, +.fa-subtract:before { + content: "\f068" +} + +.fa-chess:before { + content: "\f439" +} + +.fa-arrow-left-long:before, +.fa-long-arrow-left:before { + content: "\f177" +} + +.fa-plug-circle-check:before { + content: "\e55c" +} + +.fa-street-view:before { + content: "\f21d" +} + +.fa-franc-sign:before { + content: "\e18f" +} + +.fa-volume-off:before { + content: "\f026" +} + +.fa-american-sign-language-interpreting:before, +.fa-asl-interpreting:before, +.fa-hands-american-sign-language-interpreting:before, +.fa-hands-asl-interpreting:before { + content: "\f2a3" +} + +.fa-cog:before, +.fa-gear:before { + content: "\f013" +} + +.fa-droplet-slash:before, +.fa-tint-slash:before { + content: "\f5c7" +} + +.fa-mosque:before { + content: "\f678" +} + +.fa-mosquito:before { + content: "\e52b" +} + +.fa-star-of-david:before { + content: "\f69a" +} + +.fa-person-military-rifle:before { + content: "\e54b" +} + +.fa-cart-shopping:before, +.fa-shopping-cart:before { + content: "\f07a" +} + +.fa-vials:before { + content: "\f493" +} + +.fa-plug-circle-plus:before { + content: "\e55f" +} + +.fa-place-of-worship:before { + content: "\f67f" +} + +.fa-grip-vertical:before { + content: "\f58e" +} + +.fa-arrow-turn-up:before, +.fa-level-up:before { + content: "\f148" +} + +.fa-u:before { + content: "\55" +} + +.fa-square-root-alt:before, +.fa-square-root-variable:before { + content: "\f698" +} + +.fa-clock-four:before, +.fa-clock:before { + content: "\f017" +} + +.fa-backward-step:before, +.fa-step-backward:before { + content: "\f048" +} + +.fa-pallet:before { + content: "\f482" +} + +.fa-faucet:before { + content: "\e005" +} + +.fa-baseball-bat-ball:before { + content: "\f432" +} + +.fa-s:before { + content: "\53" +} + +.fa-timeline:before { + content: "\e29c" +} + +.fa-keyboard:before { + content: "\f11c" +} + +.fa-caret-down:before { + content: "\f0d7" +} + +.fa-clinic-medical:before, +.fa-house-chimney-medical:before { + content: "\f7f2" +} + +.fa-temperature-3:before, +.fa-temperature-three-quarters:before, +.fa-thermometer-3:before, +.fa-thermometer-three-quarters:before { + content: "\f2c8" +} + +.fa-mobile-android-alt:before, +.fa-mobile-screen:before { + content: "\f3cf" +} + +.fa-plane-up:before { + content: "\e22d" +} + +.fa-piggy-bank:before { + content: "\f4d3" +} + +.fa-battery-3:before, +.fa-battery-half:before { + content: "\f242" +} + +.fa-mountain-city:before { + content: "\e52e" +} + +.fa-coins:before { + content: "\f51e" +} + +.fa-khanda:before { + content: "\f66d" +} + +.fa-sliders-h:before, +.fa-sliders:before { + content: "\f1de" +} + +.fa-folder-tree:before { + content: "\f802" +} + +.fa-network-wired:before { + content: "\f6ff" +} + +.fa-map-pin:before { + content: "\f276" +} + +.fa-hamsa:before { + content: "\f665" +} + +.fa-cent-sign:before { + content: "\e3f5" +} + +.fa-flask:before { + content: "\f0c3" +} + +.fa-person-pregnant:before { + content: "\e31e" +} + +.fa-wand-sparkles:before { + content: "\f72b" +} + +.fa-ellipsis-v:before, +.fa-ellipsis-vertical:before { + content: "\f142" +} + +.fa-ticket:before { + content: "\f145" +} + +.fa-power-off:before { + content: "\f011" +} + +.fa-long-arrow-alt-right:before, +.fa-right-long:before { + content: "\f30b" +} + +.fa-flag-usa:before { + content: "\f74d" +} + +.fa-laptop-file:before { + content: "\e51d" +} + +.fa-teletype:before, +.fa-tty:before { + content: "\f1e4" +} + +.fa-diagram-next:before { + content: "\e476" +} + +.fa-person-rifle:before { + content: "\e54e" +} + +.fa-house-medical-circle-exclamation:before { + content: "\e512" +} + +.fa-closed-captioning:before { + content: "\f20a" +} + +.fa-hiking:before, +.fa-person-hiking:before { + content: "\f6ec" +} + +.fa-venus-double:before { + content: "\f226" +} + +.fa-images:before { + content: "\f302" +} + +.fa-calculator:before { + content: "\f1ec" +} + +.fa-people-pulling:before { + content: "\e535" +} + +.fa-n:before { + content: "\4e" +} + +.fa-cable-car:before, +.fa-tram:before { + content: "\f7da" +} + +.fa-cloud-rain:before { + content: "\f73d" +} + +.fa-building-circle-xmark:before { + content: "\e4d4" +} + +.fa-ship:before { + content: "\f21a" +} + +.fa-arrows-down-to-line:before { + content: "\e4b8" +} + +.fa-download:before { + content: "\f019" +} + +.fa-face-grin:before, +.fa-grin:before { + content: "\f580" +} + +.fa-backspace:before, +.fa-delete-left:before { + content: "\f55a" +} + +.fa-eye-dropper-empty:before, +.fa-eye-dropper:before, +.fa-eyedropper:before { + content: "\f1fb" +} + +.fa-file-circle-check:before { + content: "\e5a0" +} + +.fa-forward:before { + content: "\f04e" +} + +.fa-mobile-android:before, +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f3ce" +} + +.fa-face-meh:before, +.fa-meh:before { + content: "\f11a" +} + +.fa-align-center:before { + content: "\f037" +} + +.fa-book-dead:before, +.fa-book-skull:before { + content: "\f6b7" +} + +.fa-drivers-license:before, +.fa-id-card:before { + content: "\f2c2" +} + +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b" +} + +.fa-heart-circle-exclamation:before { + content: "\e4fe" +} + +.fa-home-alt:before, +.fa-home-lg-alt:before, +.fa-home:before, +.fa-house:before { + content: "\f015" +} + +.fa-calendar-week:before { + content: "\f784" +} + +.fa-laptop-medical:before { + content: "\f812" +} + +.fa-b:before { + content: "\42" +} + +.fa-file-medical:before { + content: "\f477" +} + +.fa-dice-one:before { + content: "\f525" +} + +.fa-kiwi-bird:before { + content: "\f535" +} + +.fa-arrow-right-arrow-left:before, +.fa-exchange:before { + content: "\f0ec" +} + +.fa-redo-alt:before, +.fa-rotate-forward:before, +.fa-rotate-right:before { + content: "\f2f9" +} + +.fa-cutlery:before, +.fa-utensils:before { + content: "\f2e7" +} + +.fa-arrow-up-wide-short:before, +.fa-sort-amount-up:before { + content: "\f161" +} + +.fa-mill-sign:before { + content: "\e1ed" +} + +.fa-bowl-rice:before { + content: "\e2eb" +} + +.fa-skull:before { + content: "\f54c" +} + +.fa-broadcast-tower:before, +.fa-tower-broadcast:before { + content: "\f519" +} + +.fa-truck-pickup:before { + content: "\f63c" +} + +.fa-long-arrow-alt-up:before, +.fa-up-long:before { + content: "\f30c" +} + +.fa-stop:before { + content: "\f04d" +} + +.fa-code-merge:before { + content: "\f387" +} + +.fa-upload:before { + content: "\f093" +} + +.fa-hurricane:before { + content: "\f751" +} + +.fa-mound:before { + content: "\e52d" +} + +.fa-toilet-portable:before { + content: "\e583" +} + +.fa-compact-disc:before { + content: "\f51f" +} + +.fa-file-arrow-down:before, +.fa-file-download:before { + content: "\f56d" +} + +.fa-caravan:before { + content: "\f8ff" +} + +.fa-shield-cat:before { + content: "\e572" +} + +.fa-bolt:before, +.fa-zap:before { + content: "\f0e7" +} + +.fa-glass-water:before { + content: "\e4f4" +} + +.fa-oil-well:before { + content: "\e532" +} + +.fa-vault:before { + content: "\e2c5" +} + +.fa-mars:before { + content: "\f222" +} + +.fa-toilet:before { + content: "\f7d8" +} + +.fa-plane-circle-xmark:before { + content: "\e557" +} + +.fa-cny:before, +.fa-jpy:before, +.fa-rmb:before, +.fa-yen-sign:before, +.fa-yen:before { + content: "\f157" +} + +.fa-rouble:before, +.fa-rub:before, +.fa-ruble-sign:before, +.fa-ruble:before { + content: "\f158" +} + +.fa-sun:before { + content: "\f185" +} + +.fa-guitar:before { + content: "\f7a6" +} + +.fa-face-laugh-wink:before, +.fa-laugh-wink:before { + content: "\f59c" +} + +.fa-horse-head:before { + content: "\f7ab" +} + +.fa-bore-hole:before { + content: "\e4c3" +} + +.fa-industry:before { + content: "\f275" +} + +.fa-arrow-alt-circle-down:before, +.fa-circle-down:before { + content: "\f358" +} + +.fa-arrows-turn-to-dots:before { + content: "\e4c1" +} + +.fa-florin-sign:before { + content: "\e184" +} + +.fa-arrow-down-short-wide:before, +.fa-sort-amount-desc:before, +.fa-sort-amount-down-alt:before { + content: "\f884" +} + +.fa-less-than:before { + content: "\3c" +} + +.fa-angle-down:before { + content: "\f107" +} + +.fa-car-tunnel:before { + content: "\e4de" +} + +.fa-head-side-cough:before { + content: "\e061" +} + +.fa-grip-lines:before { + content: "\f7a4" +} + +.fa-thumbs-down:before { + content: "\f165" +} + +.fa-user-lock:before { + content: "\f502" +} + +.fa-arrow-right-long:before, +.fa-long-arrow-right:before { + content: "\f178" +} + +.fa-anchor-circle-xmark:before { + content: "\e4ac" +} + +.fa-ellipsis-h:before, +.fa-ellipsis:before { + content: "\f141" +} + +.fa-chess-pawn:before { + content: "\f443" +} + +.fa-first-aid:before, +.fa-kit-medical:before { + content: "\f479" +} + +.fa-person-through-window:before { + content: "\e5a9" +} + +.fa-toolbox:before { + content: "\f552" +} + +.fa-hands-holding-circle:before { + content: "\e4fb" +} + +.fa-bug:before { + content: "\f188" +} + +.fa-credit-card-alt:before, +.fa-credit-card:before { + content: "\f09d" +} + +.fa-automobile:before, +.fa-car:before { + content: "\f1b9" +} + +.fa-hand-holding-hand:before { + content: "\e4f7" +} + +.fa-book-open-reader:before, +.fa-book-reader:before { + content: "\f5da" +} + +.fa-mountain-sun:before { + content: "\e52f" +} + +.fa-arrows-left-right-to-line:before { + content: "\e4ba" +} + +.fa-dice-d20:before { + content: "\f6cf" +} + +.fa-truck-droplet:before { + content: "\e58c" +} + +.fa-file-circle-xmark:before { + content: "\e5a1" +} + +.fa-temperature-arrow-up:before, +.fa-temperature-up:before { + content: "\e040" +} + +.fa-medal:before { + content: "\f5a2" +} + +.fa-bed:before { + content: "\f236" +} + +.fa-h-square:before, +.fa-square-h:before { + content: "\f0fd" +} + +.fa-podcast:before { + content: "\f2ce" +} + +.fa-temperature-4:before, +.fa-temperature-full:before, +.fa-thermometer-4:before, +.fa-thermometer-full:before { + content: "\f2c7" +} + +.fa-bell:before { + content: "\f0f3" +} + +.fa-superscript:before { + content: "\f12b" +} + +.fa-plug-circle-xmark:before { + content: "\e560" +} + +.fa-star-of-life:before { + content: "\f621" +} + +.fa-phone-slash:before { + content: "\f3dd" +} + +.fa-paint-roller:before { + content: "\f5aa" +} + +.fa-hands-helping:before, +.fa-handshake-angle:before { + content: "\f4c4" +} + +.fa-location-dot:before, +.fa-map-marker-alt:before { + content: "\f3c5" +} + +.fa-file:before { + content: "\f15b" +} + +.fa-greater-than:before { + content: "\3e" +} + +.fa-person-swimming:before, +.fa-swimmer:before { + content: "\f5c4" +} + +.fa-arrow-down:before { + content: "\f063" +} + +.fa-droplet:before, +.fa-tint:before { + content: "\f043" +} + +.fa-eraser:before { + content: "\f12d" +} + +.fa-earth-america:before, +.fa-earth-americas:before, +.fa-earth:before, +.fa-globe-americas:before { + content: "\f57d" +} + +.fa-person-burst:before { + content: "\e53b" +} + +.fa-dove:before { + content: "\f4ba" +} + +.fa-battery-0:before, +.fa-battery-empty:before { + content: "\f244" +} + +.fa-socks:before { + content: "\f696" +} + +.fa-inbox:before { + content: "\f01c" +} + +.fa-section:before { + content: "\e447" +} + +.fa-gauge-high:before, +.fa-tachometer-alt-fast:before, +.fa-tachometer-alt:before { + content: "\f625" +} + +.fa-envelope-open-text:before { + content: "\f658" +} + +.fa-hospital-alt:before, +.fa-hospital-wide:before, +.fa-hospital:before { + content: "\f0f8" +} + +.fa-wine-bottle:before { + content: "\f72f" +} + +.fa-chess-rook:before { + content: "\f447" +} + +.fa-bars-staggered:before, +.fa-reorder:before, +.fa-stream:before { + content: "\f550" +} + +.fa-dharmachakra:before { + content: "\f655" +} + +.fa-hotdog:before { + content: "\f80f" +} + +.fa-blind:before, +.fa-person-walking-with-cane:before { + content: "\f29d" +} + +.fa-drum:before { + content: "\f569" +} + +.fa-ice-cream:before { + content: "\f810" +} + +.fa-heart-circle-bolt:before { + content: "\e4fc" +} + +.fa-fax:before { + content: "\f1ac" +} + +.fa-paragraph:before { + content: "\f1dd" +} + +.fa-check-to-slot:before, +.fa-vote-yea:before { + content: "\f772" +} + +.fa-star-half:before { + content: "\f089" +} + +.fa-boxes-alt:before, +.fa-boxes-stacked:before, +.fa-boxes:before { + content: "\f468" +} + +.fa-chain:before, +.fa-link:before { + content: "\f0c1" +} + +.fa-assistive-listening-systems:before, +.fa-ear-listen:before { + content: "\f2a2" +} + +.fa-tree-city:before { + content: "\e587" +} + +.fa-play:before { + content: "\f04b" +} + +.fa-font:before { + content: "\f031" +} + +.fa-rupiah-sign:before { + content: "\e23d" +} + +.fa-magnifying-glass:before, +.fa-search:before { + content: "\f002" +} + +.fa-ping-pong-paddle-ball:before, +.fa-table-tennis-paddle-ball:before, +.fa-table-tennis:before { + content: "\f45d" +} + +.fa-diagnoses:before, +.fa-person-dots-from-line:before { + content: "\f470" +} + +.fa-trash-can-arrow-up:before, +.fa-trash-restore-alt:before { + content: "\f82a" +} + +.fa-naira-sign:before { + content: "\e1f6" +} + +.fa-cart-arrow-down:before { + content: "\f218" +} + +.fa-walkie-talkie:before { + content: "\f8ef" +} + +.fa-file-edit:before, +.fa-file-pen:before { + content: "\f31c" +} + +.fa-receipt:before { + content: "\f543" +} + +.fa-pen-square:before, +.fa-pencil-square:before, +.fa-square-pen:before { + content: "\f14b" +} + +.fa-suitcase-rolling:before { + content: "\f5c1" +} + +.fa-person-circle-exclamation:before { + content: "\e53f" +} + +.fa-chevron-down:before { + content: "\f078" +} + +.fa-battery-5:before, +.fa-battery-full:before, +.fa-battery:before { + content: "\f240" +} + +.fa-skull-crossbones:before { + content: "\f714" +} + +.fa-code-compare:before { + content: "\e13a" +} + +.fa-list-dots:before, +.fa-list-ul:before { + content: "\f0ca" +} + +.fa-school-lock:before { + content: "\e56f" +} + +.fa-tower-cell:before { + content: "\e585" +} + +.fa-down-long:before, +.fa-long-arrow-alt-down:before { + content: "\f309" +} + +.fa-ranking-star:before { + content: "\e561" +} + +.fa-chess-king:before { + content: "\f43f" +} + +.fa-person-harassing:before { + content: "\e549" +} + +.fa-brazilian-real-sign:before { + content: "\e46c" +} + +.fa-landmark-alt:before, +.fa-landmark-dome:before { + content: "\f752" +} + +.fa-arrow-up:before { + content: "\f062" +} + +.fa-television:before, +.fa-tv-alt:before, +.fa-tv:before { + content: "\f26c" +} + +.fa-shrimp:before { + content: "\e448" +} + +.fa-list-check:before, +.fa-tasks:before { + content: "\f0ae" +} + +.fa-jug-detergent:before { + content: "\e519" +} + +.fa-circle-user:before, +.fa-user-circle:before { + content: "\f2bd" +} + +.fa-user-shield:before { + content: "\f505" +} + +.fa-wind:before { + content: "\f72e" +} + +.fa-car-burst:before, +.fa-car-crash:before { + content: "\f5e1" +} + +.fa-y:before { + content: "\59" +} + +.fa-person-snowboarding:before, +.fa-snowboarding:before { + content: "\f7ce" +} + +.fa-shipping-fast:before, +.fa-truck-fast:before { + content: "\f48b" +} + +.fa-fish:before { + content: "\f578" +} + +.fa-user-graduate:before { + content: "\f501" +} + +.fa-adjust:before, +.fa-circle-half-stroke:before { + content: "\f042" +} + +.fa-clapperboard:before { + content: "\e131" +} + +.fa-circle-radiation:before, +.fa-radiation-alt:before { + content: "\f7ba" +} + +.fa-baseball-ball:before, +.fa-baseball:before { + content: "\f433" +} + +.fa-jet-fighter-up:before { + content: "\e518" +} + +.fa-diagram-project:before, +.fa-project-diagram:before { + content: "\f542" +} + +.fa-copy:before { + content: "\f0c5" +} + +.fa-volume-mute:before, +.fa-volume-times:before, +.fa-volume-xmark:before { + content: "\f6a9" +} + +.fa-hand-sparkles:before { + content: "\e05d" +} + +.fa-grip-horizontal:before, +.fa-grip:before { + content: "\f58d" +} + +.fa-share-from-square:before, +.fa-share-square:before { + content: "\f14d" +} + +.fa-child-combatant:before, +.fa-child-rifle:before { + content: "\e4e0" +} + +.fa-gun:before { + content: "\e19b" +} + +.fa-phone-square:before, +.fa-square-phone:before { + content: "\f098" +} + +.fa-add:before, +.fa-plus:before { + content: "\2b" +} + +.fa-expand:before { + content: "\f065" +} + +.fa-computer:before { + content: "\e4e5" +} + +.fa-close:before, +.fa-multiply:before, +.fa-remove:before, +.fa-times:before, +.fa-xmark:before { + content: "\f00d" +} + +.fa-arrows-up-down-left-right:before, +.fa-arrows:before { + content: "\f047" +} + +.fa-chalkboard-teacher:before, +.fa-chalkboard-user:before { + content: "\f51c" +} + +.fa-peso-sign:before { + content: "\e222" +} + +.fa-building-shield:before { + content: "\e4d8" +} + +.fa-baby:before { + content: "\f77c" +} + +.fa-users-line:before { + content: "\e592" +} + +.fa-quote-left-alt:before, +.fa-quote-left:before { + content: "\f10d" +} + +.fa-tractor:before { + content: "\f722" +} + +.fa-trash-arrow-up:before, +.fa-trash-restore:before { + content: "\f829" +} + +.fa-arrow-down-up-lock:before { + content: "\e4b0" +} + +.fa-lines-leaning:before { + content: "\e51e" +} + +.fa-ruler-combined:before { + content: "\f546" +} + +.fa-copyright:before { + content: "\f1f9" +} + +.fa-equals:before { + content: "\3d" +} + +.fa-blender:before { + content: "\f517" +} + +.fa-teeth:before { + content: "\f62e" +} + +.fa-ils:before, +.fa-shekel-sign:before, +.fa-shekel:before, +.fa-sheqel-sign:before, +.fa-sheqel:before { + content: "\f20b" +} + +.fa-map:before { + content: "\f279" +} + +.fa-rocket:before { + content: "\f135" +} + +.fa-photo-film:before, +.fa-photo-video:before { + content: "\f87c" +} + +.fa-folder-minus:before { + content: "\f65d" +} + +.fa-store:before { + content: "\f54e" +} + +.fa-arrow-trend-up:before { + content: "\e098" +} + +.fa-plug-circle-minus:before { + content: "\e55e" +} + +.fa-sign-hanging:before, +.fa-sign:before { + content: "\f4d9" +} + +.fa-bezier-curve:before { + content: "\f55b" +} + +.fa-bell-slash:before { + content: "\f1f6" +} + +.fa-tablet-android:before, +.fa-tablet:before { + content: "\f3fb" +} + +.fa-school-flag:before { + content: "\e56e" +} + +.fa-fill:before { + content: "\f575" +} + +.fa-angle-up:before { + content: "\f106" +} + +.fa-drumstick-bite:before { + content: "\f6d7" +} + +.fa-holly-berry:before { + content: "\f7aa" +} + +.fa-chevron-left:before { + content: "\f053" +} + +.fa-bacteria:before { + content: "\e059" +} + +.fa-hand-lizard:before { + content: "\f258" +} + +.fa-notdef:before { + content: "\e1fe" +} + +.fa-disease:before { + content: "\f7fa" +} + +.fa-briefcase-medical:before { + content: "\f469" +} + +.fa-genderless:before { + content: "\f22d" +} + +.fa-chevron-right:before { + content: "\f054" +} + +.fa-retweet:before { + content: "\f079" +} + +.fa-car-alt:before, +.fa-car-rear:before { + content: "\f5de" +} + +.fa-pump-soap:before { + content: "\e06b" +} + +.fa-video-slash:before { + content: "\f4e2" +} + +.fa-battery-2:before, +.fa-battery-quarter:before { + content: "\f243" +} + +.fa-radio:before { + content: "\f8d7" +} + +.fa-baby-carriage:before, +.fa-carriage-baby:before { + content: "\f77d" +} + +.fa-traffic-light:before { + content: "\f637" +} + +.fa-thermometer:before { + content: "\f491" +} + +.fa-vr-cardboard:before { + content: "\f729" +} + +.fa-hand-middle-finger:before { + content: "\f806" +} + +.fa-percent:before, +.fa-percentage:before { + content: "\25" +} + +.fa-truck-moving:before { + content: "\f4df" +} + +.fa-glass-water-droplet:before { + content: "\e4f5" +} + +.fa-display:before { + content: "\e163" +} + +.fa-face-smile:before, +.fa-smile:before { + content: "\f118" +} + +.fa-thumb-tack:before, +.fa-thumbtack:before { + content: "\f08d" +} + +.fa-trophy:before { + content: "\f091" +} + +.fa-person-praying:before, +.fa-pray:before { + content: "\f683" +} + +.fa-hammer:before { + content: "\f6e3" +} + +.fa-hand-peace:before { + content: "\f25b" +} + +.fa-rotate:before, +.fa-sync-alt:before { + content: "\f2f1" +} + +.fa-spinner:before { + content: "\f110" +} + +.fa-robot:before { + content: "\f544" +} + +.fa-peace:before { + content: "\f67c" +} + +.fa-cogs:before, +.fa-gears:before { + content: "\f085" +} + +.fa-warehouse:before { + content: "\f494" +} + +.fa-arrow-up-right-dots:before { + content: "\e4b7" +} + +.fa-splotch:before { + content: "\f5bc" +} + +.fa-face-grin-hearts:before, +.fa-grin-hearts:before { + content: "\f584" +} + +.fa-dice-four:before { + content: "\f524" +} + +.fa-sim-card:before { + content: "\f7c4" +} + +.fa-transgender-alt:before, +.fa-transgender:before { + content: "\f225" +} + +.fa-mercury:before { + content: "\f223" +} + +.fa-arrow-turn-down:before, +.fa-level-down:before { + content: "\f149" +} + +.fa-person-falling-burst:before { + content: "\e547" +} + +.fa-award:before { + content: "\f559" +} + +.fa-ticket-alt:before, +.fa-ticket-simple:before { + content: "\f3ff" +} + +.fa-building:before { + content: "\f1ad" +} + +.fa-angle-double-left:before, +.fa-angles-left:before { + content: "\f100" +} + +.fa-qrcode:before { + content: "\f029" +} + +.fa-clock-rotate-left:before, +.fa-history:before { + content: "\f1da" +} + +.fa-face-grin-beam-sweat:before, +.fa-grin-beam-sweat:before { + content: "\f583" +} + +.fa-arrow-right-from-file:before, +.fa-file-export:before { + content: "\f56e" +} + +.fa-shield-blank:before, +.fa-shield:before { + content: "\f132" +} + +.fa-arrow-up-short-wide:before, +.fa-sort-amount-up-alt:before { + content: "\f885" +} + +.fa-house-medical:before { + content: "\e3b2" +} + +.fa-golf-ball-tee:before, +.fa-golf-ball:before { + content: "\f450" +} + +.fa-chevron-circle-left:before, +.fa-circle-chevron-left:before { + content: "\f137" +} + +.fa-house-chimney-window:before { + content: "\e00d" +} + +.fa-pen-nib:before { + content: "\f5ad" +} + +.fa-tent-arrow-turn-left:before { + content: "\e580" +} + +.fa-tents:before { + content: "\e582" +} + +.fa-magic:before, +.fa-wand-magic:before { + content: "\f0d0" +} + +.fa-dog:before { + content: "\f6d3" +} + +.fa-carrot:before { + content: "\f787" +} + +.fa-moon:before { + content: "\f186" +} + +.fa-wine-glass-alt:before, +.fa-wine-glass-empty:before { + content: "\f5ce" +} + +.fa-cheese:before { + content: "\f7ef" +} + +.fa-yin-yang:before { + content: "\f6ad" +} + +.fa-music:before { + content: "\f001" +} + +.fa-code-commit:before { + content: "\f386" +} + +.fa-temperature-low:before { + content: "\f76b" +} + +.fa-biking:before, +.fa-person-biking:before { + content: "\f84a" +} + +.fa-broom:before { + content: "\f51a" +} + +.fa-shield-heart:before { + content: "\e574" +} + +.fa-gopuram:before { + content: "\f664" +} + +.fa-earth-oceania:before, +.fa-globe-oceania:before { + content: "\e47b" +} + +.fa-square-xmark:before, +.fa-times-square:before, +.fa-xmark-square:before { + content: "\f2d3" +} + +.fa-hashtag:before { + content: "\23" +} + +.fa-expand-alt:before, +.fa-up-right-and-down-left-from-center:before { + content: "\f424" +} + +.fa-oil-can:before { + content: "\f613" +} + +.fa-t:before { + content: "\54" +} + +.fa-hippo:before { + content: "\f6ed" +} + +.fa-chart-column:before { + content: "\e0e3" +} + +.fa-infinity:before { + content: "\f534" +} + +.fa-vial-circle-check:before { + content: "\e596" +} + +.fa-person-arrow-down-to-line:before { + content: "\e538" +} + +.fa-voicemail:before { + content: "\f897" +} + +.fa-fan:before { + content: "\f863" +} + +.fa-person-walking-luggage:before { + content: "\e554" +} + +.fa-arrows-alt-v:before, +.fa-up-down:before { + content: "\f338" +} + +.fa-cloud-moon-rain:before { + content: "\f73c" +} + +.fa-calendar:before { + content: "\f133" +} + +.fa-trailer:before { + content: "\e041" +} + +.fa-bahai:before, +.fa-haykal:before { + content: "\f666" +} + +.fa-sd-card:before { + content: "\f7c2" +} + +.fa-dragon:before { + content: "\f6d5" +} + +.fa-shoe-prints:before { + content: "\f54b" +} + +.fa-circle-plus:before, +.fa-plus-circle:before { + content: "\f055" +} + +.fa-face-grin-tongue-wink:before, +.fa-grin-tongue-wink:before { + content: "\f58b" +} + +.fa-hand-holding:before { + content: "\f4bd" +} + +.fa-plug-circle-exclamation:before { + content: "\e55d" +} + +.fa-chain-broken:before, +.fa-chain-slash:before, +.fa-link-slash:before, +.fa-unlink:before { + content: "\f127" +} + +.fa-clone:before { + content: "\f24d" +} + +.fa-person-walking-arrow-loop-left:before { + content: "\e551" +} + +.fa-arrow-up-z-a:before, +.fa-sort-alpha-up-alt:before { + content: "\f882" +} + +.fa-fire-alt:before, +.fa-fire-flame-curved:before { + content: "\f7e4" +} + +.fa-tornado:before { + content: "\f76f" +} + +.fa-file-circle-plus:before { + content: "\e494" +} + +.fa-book-quran:before, +.fa-quran:before { + content: "\f687" +} + +.fa-anchor:before { + content: "\f13d" +} + +.fa-border-all:before { + content: "\f84c" +} + +.fa-angry:before, +.fa-face-angry:before { + content: "\f556" +} + +.fa-cookie-bite:before { + content: "\f564" +} + +.fa-arrow-trend-down:before { + content: "\e097" +} + +.fa-feed:before, +.fa-rss:before { + content: "\f09e" +} + +.fa-draw-polygon:before { + content: "\f5ee" +} + +.fa-balance-scale:before, +.fa-scale-balanced:before { + content: "\f24e" +} + +.fa-gauge-simple-high:before, +.fa-tachometer-fast:before, +.fa-tachometer:before { + content: "\f62a" +} + +.fa-shower:before { + content: "\f2cc" +} + +.fa-desktop-alt:before, +.fa-desktop:before { + content: "\f390" +} + +.fa-m:before { + content: "\4d" +} + +.fa-table-list:before, +.fa-th-list:before { + content: "\f00b" +} + +.fa-comment-sms:before, +.fa-sms:before { + content: "\f7cd" +} + +.fa-book:before { + content: "\f02d" +} + +.fa-user-plus:before { + content: "\f234" +} + +.fa-check:before { + content: "\f00c" +} + +.fa-battery-4:before, +.fa-battery-three-quarters:before { + content: "\f241" +} + +.fa-house-circle-check:before { + content: "\e509" +} + +.fa-angle-left:before { + content: "\f104" +} + +.fa-diagram-successor:before { + content: "\e47a" +} + +.fa-truck-arrow-right:before { + content: "\e58b" +} + +.fa-arrows-split-up-and-left:before { + content: "\e4bc" +} + +.fa-fist-raised:before, +.fa-hand-fist:before { + content: "\f6de" +} + +.fa-cloud-moon:before { + content: "\f6c3" +} + +.fa-briefcase:before { + content: "\f0b1" +} + +.fa-person-falling:before { + content: "\e546" +} + +.fa-image-portrait:before, +.fa-portrait:before { + content: "\f3e0" +} + +.fa-user-tag:before { + content: "\f507" +} + +.fa-rug:before { + content: "\e569" +} + +.fa-earth-europe:before, +.fa-globe-europe:before { + content: "\f7a2" +} + +.fa-cart-flatbed-suitcase:before, +.fa-luggage-cart:before { + content: "\f59d" +} + +.fa-rectangle-times:before, +.fa-rectangle-xmark:before, +.fa-times-rectangle:before, +.fa-window-close:before { + content: "\f410" +} + +.fa-baht-sign:before { + content: "\e0ac" +} + +.fa-book-open:before { + content: "\f518" +} + +.fa-book-journal-whills:before, +.fa-journal-whills:before { + content: "\f66a" +} + +.fa-handcuffs:before { + content: "\e4f8" +} + +.fa-exclamation-triangle:before, +.fa-triangle-exclamation:before, +.fa-warning:before { + content: "\f071" +} + +.fa-database:before { + content: "\f1c0" +} + +.fa-mail-forward:before, +.fa-share:before { + content: "\f064" +} + +.fa-bottle-droplet:before { + content: "\e4c4" +} + +.fa-mask-face:before { + content: "\e1d7" +} + +.fa-hill-rockslide:before { + content: "\e508" +} + +.fa-exchange-alt:before, +.fa-right-left:before { + content: "\f362" +} + +.fa-paper-plane:before { + content: "\f1d8" +} + +.fa-road-circle-exclamation:before { + content: "\e565" +} + +.fa-dungeon:before { + content: "\f6d9" +} + +.fa-align-right:before { + content: "\f038" +} + +.fa-money-bill-1-wave:before, +.fa-money-bill-wave-alt:before { + content: "\f53b" +} + +.fa-life-ring:before { + content: "\f1cd" +} + +.fa-hands:before, +.fa-sign-language:before, +.fa-signing:before { + content: "\f2a7" +} + +.fa-calendar-day:before { + content: "\f783" +} + +.fa-ladder-water:before, +.fa-swimming-pool:before, +.fa-water-ladder:before { + content: "\f5c5" +} + +.fa-arrows-up-down:before, +.fa-arrows-v:before { + content: "\f07d" +} + +.fa-face-grimace:before, +.fa-grimace:before { + content: "\f57f" +} + +.fa-wheelchair-alt:before, +.fa-wheelchair-move:before { + content: "\e2ce" +} + +.fa-level-down-alt:before, +.fa-turn-down:before { + content: "\f3be" +} + +.fa-person-walking-arrow-right:before { + content: "\e552" +} + +.fa-envelope-square:before, +.fa-square-envelope:before { + content: "\f199" +} + +.fa-dice:before { + content: "\f522" +} + +.fa-bowling-ball:before { + content: "\f436" +} + +.fa-brain:before { + content: "\f5dc" +} + +.fa-band-aid:before, +.fa-bandage:before { + content: "\f462" +} + +.fa-calendar-minus:before { + content: "\f272" +} + +.fa-circle-xmark:before, +.fa-times-circle:before, +.fa-xmark-circle:before { + content: "\f057" +} + +.fa-gifts:before { + content: "\f79c" +} + +.fa-hotel:before { + content: "\f594" +} + +.fa-earth-asia:before, +.fa-globe-asia:before { + content: "\f57e" +} + +.fa-id-card-alt:before, +.fa-id-card-clip:before { + content: "\f47f" +} + +.fa-magnifying-glass-plus:before, +.fa-search-plus:before { + content: "\f00e" +} + +.fa-thumbs-up:before { + content: "\f164" +} + +.fa-user-clock:before { + content: "\f4fd" +} + +.fa-allergies:before, +.fa-hand-dots:before { + content: "\f461" +} + +.fa-file-invoice:before { + content: "\f570" +} + +.fa-window-minimize:before { + content: "\f2d1" +} + +.fa-coffee:before, +.fa-mug-saucer:before { + content: "\f0f4" +} + +.fa-brush:before { + content: "\f55d" +} + +.fa-mask:before { + content: "\f6fa" +} + +.fa-magnifying-glass-minus:before, +.fa-search-minus:before { + content: "\f010" +} + +.fa-ruler-vertical:before { + content: "\f548" +} + +.fa-user-alt:before, +.fa-user-large:before { + content: "\f406" +} + +.fa-train-tram:before { + content: "\e5b4" +} + +.fa-user-nurse:before { + content: "\f82f" +} + +.fa-syringe:before { + content: "\f48e" +} + +.fa-cloud-sun:before { + content: "\f6c4" +} + +.fa-stopwatch-20:before { + content: "\e06f" +} + +.fa-square-full:before { + content: "\f45c" +} + +.fa-magnet:before { + content: "\f076" +} + +.fa-jar:before { + content: "\e516" +} + +.fa-note-sticky:before, +.fa-sticky-note:before { + content: "\f249" +} + +.fa-bug-slash:before { + content: "\e490" +} + +.fa-arrow-up-from-water-pump:before { + content: "\e4b6" +} + +.fa-bone:before { + content: "\f5d7" +} + +.fa-user-injured:before { + content: "\f728" +} + +.fa-face-sad-tear:before, +.fa-sad-tear:before { + content: "\f5b4" +} + +.fa-plane:before { + content: "\f072" +} + +.fa-tent-arrows-down:before { + content: "\e581" +} + +.fa-exclamation:before { + content: "\21" +} + +.fa-arrows-spin:before { + content: "\e4bb" +} + +.fa-print:before { + content: "\f02f" +} + +.fa-try:before, +.fa-turkish-lira-sign:before, +.fa-turkish-lira:before { + content: "\e2bb" +} + +.fa-dollar-sign:before, +.fa-dollar:before, +.fa-usd:before { + content: "\24" +} + +.fa-x:before { + content: "\58" +} + +.fa-magnifying-glass-dollar:before, +.fa-search-dollar:before { + content: "\f688" +} + +.fa-users-cog:before, +.fa-users-gear:before { + content: "\f509" +} + +.fa-person-military-pointing:before { + content: "\e54a" +} + +.fa-bank:before, +.fa-building-columns:before, +.fa-institution:before, +.fa-museum:before, +.fa-university:before { + content: "\f19c" +} + +.fa-umbrella:before { + content: "\f0e9" +} + +.fa-trowel:before { + content: "\e589" +} + +.fa-d:before { + content: "\44" +} + +.fa-stapler:before { + content: "\e5af" +} + +.fa-masks-theater:before, +.fa-theater-masks:before { + content: "\f630" +} + +.fa-kip-sign:before { + content: "\e1c4" +} + +.fa-hand-point-left:before { + content: "\f0a5" +} + +.fa-handshake-alt:before, +.fa-handshake-simple:before { + content: "\f4c6" +} + +.fa-fighter-jet:before, +.fa-jet-fighter:before { + content: "\f0fb" +} + +.fa-share-alt-square:before, +.fa-square-share-nodes:before { + content: "\f1e1" +} + +.fa-barcode:before { + content: "\f02a" +} + +.fa-plus-minus:before { + content: "\e43c" +} + +.fa-video-camera:before, +.fa-video:before { + content: "\f03d" +} + +.fa-graduation-cap:before, +.fa-mortar-board:before { + content: "\f19d" +} + +.fa-hand-holding-medical:before { + content: "\e05c" +} + +.fa-person-circle-check:before { + content: "\e53e" +} + +.fa-level-up-alt:before, +.fa-turn-up:before { + content: "\f3bf" +} + +.fa-sr-only, +.fa-sr-only-focusable:not(:focus), +.sr-only, +.sr-only-focusable:not(:focus) { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0 +} + +:host, +:root { + --fa-style-family-brands: "Font Awesome 6 Brands"; + --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands" +} + +@font-face { + font-family: "Font Awesome 6 Brands"; + font-style: normal; + font-weight: 400; + font-display: block; + src: url(../css/webfonts/fa-brands-400.woff2) format("woff2"), url(../css/webfonts/fa-brands-400.ttf) format("truetype") +} + +.fa-brands, +.fab { + font-weight: 400 +} + +.fa-monero:before { + content: "\f3d0" +} + +.fa-hooli:before { + content: "\f427" +} + +.fa-yelp:before { + content: "\f1e9" +} + +.fa-cc-visa:before { + content: "\f1f0" +} + +.fa-lastfm:before { + content: "\f202" +} + +.fa-shopware:before { + content: "\f5b5" +} + +.fa-creative-commons-nc:before { + content: "\f4e8" +} + +.fa-aws:before { + content: "\f375" +} + +.fa-redhat:before { + content: "\f7bc" +} + +.fa-yoast:before { + content: "\f2b1" +} + +.fa-cloudflare:before { + content: "\e07d" +} + +.fa-ups:before { + content: "\f7e0" +} + +.fa-pixiv:before { + content: "\e640" +} + +.fa-wpexplorer:before { + content: "\f2de" +} + +.fa-dyalog:before { + content: "\f399" +} + +.fa-bity:before { + content: "\f37a" +} + +.fa-stackpath:before { + content: "\f842" +} + +.fa-buysellads:before { + content: "\f20d" +} + +.fa-first-order:before { + content: "\f2b0" +} + +.fa-modx:before { + content: "\f285" +} + +.fa-guilded:before { + content: "\e07e" +} + +.fa-vnv:before { + content: "\f40b" +} + +.fa-js-square:before, +.fa-square-js:before { + content: "\f3b9" +} + +.fa-microsoft:before { + content: "\f3ca" +} + +.fa-qq:before { + content: "\f1d6" +} + +.fa-orcid:before { + content: "\f8d2" +} + +.fa-java:before { + content: "\f4e4" +} + +.fa-invision:before { + content: "\f7b0" +} + +.fa-creative-commons-pd-alt:before { + content: "\f4ed" +} + +.fa-centercode:before { + content: "\f380" +} + +.fa-glide-g:before { + content: "\f2a6" +} + +.fa-drupal:before { + content: "\f1a9" +} + +.fa-hire-a-helper:before { + content: "\f3b0" +} + +.fa-creative-commons-by:before { + content: "\f4e7" +} + +.fa-unity:before { + content: "\e049" +} + +.fa-whmcs:before { + content: "\f40d" +} + +.fa-rocketchat:before { + content: "\f3e8" +} + +.fa-vk:before { + content: "\f189" +} + +.fa-untappd:before { + content: "\f405" +} + +.fa-mailchimp:before { + content: "\f59e" +} + +.fa-css3-alt:before { + content: "\f38b" +} + +.fa-reddit-square:before, +.fa-square-reddit:before { + content: "\f1a2" +} + +.fa-vimeo-v:before { + content: "\f27d" +} + +.fa-contao:before { + content: "\f26d" +} + +.fa-square-font-awesome:before { + content: "\e5ad" +} + +.fa-deskpro:before { + content: "\f38f" +} + +.fa-brave:before { + content: "\e63c" +} + +.fa-sistrix:before { + content: "\f3ee" +} + +.fa-instagram-square:before, +.fa-square-instagram:before { + content: "\e055" +} + +.fa-battle-net:before { + content: "\f835" +} + +.fa-the-red-yeti:before { + content: "\f69d" +} + +.fa-hacker-news-square:before, +.fa-square-hacker-news:before { + content: "\f3af" +} + +.fa-edge:before { + content: "\f282" +} + +.fa-threads:before { + content: "\e618" +} + +.fa-napster:before { + content: "\f3d2" +} + +.fa-snapchat-square:before, +.fa-square-snapchat:before { + content: "\f2ad" +} + +.fa-google-plus-g:before { + content: "\f0d5" +} + +.fa-artstation:before { + content: "\f77a" +} + +.fa-markdown:before { + content: "\f60f" +} + +.fa-sourcetree:before { + content: "\f7d3" +} + +.fa-google-plus:before { + content: "\f2b3" +} + +.fa-diaspora:before { + content: "\f791" +} + +.fa-foursquare:before { + content: "\f180" +} + +.fa-stack-overflow:before { + content: "\f16c" +} + +.fa-github-alt:before { + content: "\f113" +} + +.fa-phoenix-squadron:before { + content: "\f511" +} + +.fa-pagelines:before { + content: "\f18c" +} + +.fa-algolia:before { + content: "\f36c" +} + +.fa-red-river:before { + content: "\f3e3" +} + +.fa-creative-commons-sa:before { + content: "\f4ef" +} + +.fa-safari:before { + content: "\f267" +} + +.fa-google:before { + content: "\f1a0" +} + +.fa-font-awesome-alt:before, +.fa-square-font-awesome-stroke:before { + content: "\f35c" +} + +.fa-atlassian:before { + content: "\f77b" +} + +.fa-linkedin-in:before { + content: "\f0e1" +} + +.fa-digital-ocean:before { + content: "\f391" +} + +.fa-nimblr:before { + content: "\f5a8" +} + +.fa-chromecast:before { + content: "\f838" +} + +.fa-evernote:before { + content: "\f839" +} + +.fa-hacker-news:before { + content: "\f1d4" +} + +.fa-creative-commons-sampling:before { + content: "\f4f0" +} + +.fa-adversal:before { + content: "\f36a" +} + +.fa-creative-commons:before { + content: "\f25e" +} + +.fa-watchman-monitoring:before { + content: "\e087" +} + +.fa-fonticons:before { + content: "\f280" +} + +.fa-weixin:before { + content: "\f1d7" +} + +.fa-shirtsinbulk:before { + content: "\f214" +} + +.fa-codepen:before { + content: "\f1cb" +} + +.fa-git-alt:before { + content: "\f841" +} + +.fa-lyft:before { + content: "\f3c3" +} + +.fa-rev:before { + content: "\f5b2" +} + +.fa-windows:before { + content: "\f17a" +} + +.fa-wizards-of-the-coast:before { + content: "\f730" +} + +.fa-square-viadeo:before, +.fa-viadeo-square:before { + content: "\f2aa" +} + +.fa-meetup:before { + content: "\f2e0" +} + +.fa-centos:before { + content: "\f789" +} + +.fa-adn:before { + content: "\f170" +} + +.fa-cloudsmith:before { + content: "\f384" +} + +.fa-opensuse:before { + content: "\e62b" +} + +.fa-pied-piper-alt:before { + content: "\f1a8" +} + +.fa-dribbble-square:before, +.fa-square-dribbble:before { + content: "\f397" +} + +.fa-codiepie:before { + content: "\f284" +} + +.fa-node:before { + content: "\f419" +} + +.fa-mix:before { + content: "\f3cb" +} + +.fa-steam:before { + content: "\f1b6" +} + +.fa-cc-apple-pay:before { + content: "\f416" +} + +.fa-scribd:before { + content: "\f28a" +} + +.fa-debian:before { + content: "\e60b" +} + +.fa-openid:before { + content: "\f19b" +} + +.fa-instalod:before { + content: "\e081" +} + +.fa-expeditedssl:before { + content: "\f23e" +} + +.fa-sellcast:before { + content: "\f2da" +} + +.fa-square-twitter:before, +.fa-twitter-square:before { + content: "\f081" +} + +.fa-r-project:before { + content: "\f4f7" +} + +.fa-delicious:before { + content: "\f1a5" +} + +.fa-freebsd:before { + content: "\f3a4" +} + +.fa-vuejs:before { + content: "\f41f" +} + +.fa-accusoft:before { + content: "\f369" +} + +.fa-ioxhost:before { + content: "\f208" +} + +.fa-fonticons-fi:before { + content: "\f3a2" +} + +.fa-app-store:before { + content: "\f36f" +} + +.fa-cc-mastercard:before { + content: "\f1f1" +} + +.fa-itunes-note:before { + content: "\f3b5" +} + +.fa-golang:before { + content: "\e40f" +} + +.fa-kickstarter:before { + content: "\f3bb" +} + +.fa-grav:before { + content: "\f2d6" +} + +.fa-weibo:before { + content: "\f18a" +} + +.fa-uncharted:before { + content: "\e084" +} + +.fa-firstdraft:before { + content: "\f3a1" +} + +.fa-square-youtube:before, +.fa-youtube-square:before { + content: "\f431" +} + +.fa-wikipedia-w:before { + content: "\f266" +} + +.fa-rendact:before, +.fa-wpressr:before { + content: "\f3e4" +} + +.fa-angellist:before { + content: "\f209" +} + +.fa-galactic-republic:before { + content: "\f50c" +} + +.fa-nfc-directional:before { + content: "\e530" +} + +.fa-skype:before { + content: "\f17e" +} + +.fa-joget:before { + content: "\f3b7" +} + +.fa-fedora:before { + content: "\f798" +} + +.fa-stripe-s:before { + content: "\f42a" +} + +.fa-meta:before { + content: "\e49b" +} + +.fa-laravel:before { + content: "\f3bd" +} + +.fa-hotjar:before { + content: "\f3b1" +} + +.fa-bluetooth-b:before { + content: "\f294" +} + +.fa-square-letterboxd:before { + content: "\e62e" +} + +.fa-sticker-mule:before { + content: "\f3f7" +} + +.fa-creative-commons-zero:before { + content: "\f4f3" +} + +.fa-hips:before { + content: "\f452" +} + +.fa-behance:before { + content: "\f1b4" +} + +.fa-reddit:before { + content: "\f1a1" +} + +.fa-discord:before { + content: "\f392" +} + +.fa-chrome:before { + content: "\f268" +} + +.fa-app-store-ios:before { + content: "\f370" +} + +.fa-cc-discover:before { + content: "\f1f2" +} + +.fa-wpbeginner:before { + content: "\f297" +} + +.fa-confluence:before { + content: "\f78d" +} + +.fa-shoelace:before { + content: "\e60c" +} + +.fa-mdb:before { + content: "\f8ca" +} + +.fa-dochub:before { + content: "\f394" +} + +.fa-accessible-icon:before { + content: "\f368" +} + +.fa-ebay:before { + content: "\f4f4" +} + +.fa-amazon:before { + content: "\f270" +} + +.fa-unsplash:before { + content: "\e07c" +} + +.fa-yarn:before { + content: "\f7e3" +} + +.fa-square-steam:before, +.fa-steam-square:before { + content: "\f1b7" +} + +.fa-500px:before { + content: "\f26e" +} + +.fa-square-vimeo:before, +.fa-vimeo-square:before { + content: "\f194" +} + +.fa-asymmetrik:before { + content: "\f372" +} + +.fa-font-awesome-flag:before, +.fa-font-awesome-logo-full:before, +.fa-font-awesome:before { + content: "\f2b4" +} + +.fa-gratipay:before { + content: "\f184" +} + +.fa-apple:before { + content: "\f179" +} + +.fa-hive:before { + content: "\e07f" +} + +.fa-gitkraken:before { + content: "\f3a6" +} + +.fa-keybase:before { + content: "\f4f5" +} + +.fa-apple-pay:before { + content: "\f415" +} + +.fa-padlet:before { + content: "\e4a0" +} + +.fa-amazon-pay:before { + content: "\f42c" +} + +.fa-github-square:before, +.fa-square-github:before { + content: "\f092" +} + +.fa-stumbleupon:before { + content: "\f1a4" +} + +.fa-fedex:before { + content: "\f797" +} + +.fa-phoenix-framework:before { + content: "\f3dc" +} + +.fa-shopify:before { + content: "\e057" +} + +.fa-neos:before { + content: "\f612" +} + +.fa-square-threads:before { + content: "\e619" +} + +.fa-hackerrank:before { + content: "\f5f7" +} + +.fa-researchgate:before { + content: "\f4f8" +} + +.fa-swift:before { + content: "\f8e1" +} + +.fa-angular:before { + content: "\f420" +} + +.fa-speakap:before { + content: "\f3f3" +} + +.fa-angrycreative:before { + content: "\f36e" +} + +.fa-y-combinator:before { + content: "\f23b" +} + +.fa-empire:before { + content: "\f1d1" +} + +.fa-envira:before { + content: "\f299" +} + +.fa-google-scholar:before { + content: "\e63b" +} + +.fa-gitlab-square:before, +.fa-square-gitlab:before { + content: "\e5ae" +} + +.fa-studiovinari:before { + content: "\f3f8" +} + +.fa-pied-piper:before { + content: "\f2ae" +} + +.fa-wordpress:before { + content: "\f19a" +} + +.fa-product-hunt:before { + content: "\f288" +} + +.fa-firefox:before { + content: "\f269" +} + +.fa-linode:before { + content: "\f2b8" +} + +.fa-goodreads:before { + content: "\f3a8" +} + +.fa-odnoklassniki-square:before, +.fa-square-odnoklassniki:before { + content: "\f264" +} + +.fa-jsfiddle:before { + content: "\f1cc" +} + +.fa-sith:before { + content: "\f512" +} + +.fa-themeisle:before { + content: "\f2b2" +} + +.fa-page4:before { + content: "\f3d7" +} + +.fa-hashnode:before { + content: "\e499" +} + +.fa-react:before { + content: "\f41b" +} + +.fa-cc-paypal:before { + content: "\f1f4" +} + +.fa-squarespace:before { + content: "\f5be" +} + +.fa-cc-stripe:before { + content: "\f1f5" +} + +.fa-creative-commons-share:before { + content: "\f4f2" +} + +.fa-bitcoin:before { + content: "\f379" +} + +.fa-keycdn:before { + content: "\f3ba" +} + +.fa-opera:before { + content: "\f26a" +} + +.fa-itch-io:before { + content: "\f83a" +} + +.fa-umbraco:before { + content: "\f8e8" +} + +.fa-galactic-senate:before { + content: "\f50d" +} + +.fa-ubuntu:before { + content: "\f7df" +} + +.fa-draft2digital:before { + content: "\f396" +} + +.fa-stripe:before { + content: "\f429" +} + +.fa-houzz:before { + content: "\f27c" +} + +.fa-gg:before { + content: "\f260" +} + +.fa-dhl:before { + content: "\f790" +} + +.fa-pinterest-square:before, +.fa-square-pinterest:before { + content: "\f0d3" +} + +.fa-xing:before { + content: "\f168" +} + +.fa-blackberry:before { + content: "\f37b" +} + +.fa-creative-commons-pd:before { + content: "\f4ec" +} + +.fa-playstation:before { + content: "\f3df" +} + +.fa-quinscape:before { + content: "\f459" +} + +.fa-less:before { + content: "\f41d" +} + +.fa-blogger-b:before { + content: "\f37d" +} + +.fa-opencart:before { + content: "\f23d" +} + +.fa-vine:before { + content: "\f1ca" +} + +.fa-signal-messenger:before { + content: "\e663" +} + +.fa-paypal:before { + content: "\f1ed" +} + +.fa-gitlab:before { + content: "\f296" +} + +.fa-typo3:before { + content: "\f42b" +} + +.fa-reddit-alien:before { + content: "\f281" +} + +.fa-yahoo:before { + content: "\f19e" +} + +.fa-dailymotion:before { + content: "\e052" +} + +.fa-affiliatetheme:before { + content: "\f36b" +} + +.fa-pied-piper-pp:before { + content: "\f1a7" +} + +.fa-bootstrap:before { + content: "\f836" +} + +.fa-odnoklassniki:before { + content: "\f263" +} + +.fa-nfc-symbol:before { + content: "\e531" +} + +.fa-mintbit:before { + content: "\e62f" +} + +.fa-ethereum:before { + content: "\f42e" +} + +.fa-speaker-deck:before { + content: "\f83c" +} + +.fa-creative-commons-nc-eu:before { + content: "\f4e9" +} + +.fa-patreon:before { + content: "\f3d9" +} + +.fa-avianex:before { + content: "\f374" +} + +.fa-ello:before { + content: "\f5f1" +} + +.fa-gofore:before { + content: "\f3a7" +} + +.fa-bimobject:before { + content: "\f378" +} + +.fa-brave-reverse:before { + content: "\e63d" +} + +.fa-facebook-f:before { + content: "\f39e" +} + +.fa-google-plus-square:before, +.fa-square-google-plus:before { + content: "\f0d4" +} + +.fa-mandalorian:before { + content: "\f50f" +} + +.fa-first-order-alt:before { + content: "\f50a" +} + +.fa-osi:before { + content: "\f41a" +} + +.fa-google-wallet:before { + content: "\f1ee" +} + +.fa-d-and-d-beyond:before { + content: "\f6ca" +} + +.fa-periscope:before { + content: "\f3da" +} + +.fa-fulcrum:before { + content: "\f50b" +} + +.fa-cloudscale:before { + content: "\f383" +} + +.fa-forumbee:before { + content: "\f211" +} + +.fa-mizuni:before { + content: "\f3cc" +} + +.fa-schlix:before { + content: "\f3ea" +} + +.fa-square-xing:before, +.fa-xing-square:before { + content: "\f169" +} + +.fa-bandcamp:before { + content: "\f2d5" +} + +.fa-wpforms:before { + content: "\f298" +} + +.fa-cloudversify:before { + content: "\f385" +} + +.fa-usps:before { + content: "\f7e1" +} + +.fa-megaport:before { + content: "\f5a3" +} + +.fa-magento:before { + content: "\f3c4" +} + +.fa-spotify:before { + content: "\f1bc" +} + +.fa-optin-monster:before { + content: "\f23c" +} + +.fa-fly:before { + content: "\f417" +} + +.fa-aviato:before { + content: "\f421" +} + +.fa-itunes:before { + content: "\f3b4" +} + +.fa-cuttlefish:before { + content: "\f38c" +} + +.fa-blogger:before { + content: "\f37c" +} + +.fa-flickr:before { + content: "\f16e" +} + +.fa-viber:before { + content: "\f409" +} + +.fa-soundcloud:before { + content: "\f1be" +} + +.fa-digg:before { + content: "\f1a6" +} + +.fa-tencent-weibo:before { + content: "\f1d5" +} + +.fa-letterboxd:before { + content: "\e62d" +} + +.fa-symfony:before { + content: "\f83d" +} + +.fa-maxcdn:before { + content: "\f136" +} + +.fa-etsy:before { + content: "\f2d7" +} + +.fa-facebook-messenger:before { + content: "\f39f" +} + +.fa-audible:before { + content: "\f373" +} + +.fa-think-peaks:before { + content: "\f731" +} + +.fa-bilibili:before { + content: "\e3d9" +} + +.fa-erlang:before { + content: "\f39d" +} + +.fa-x-twitter:before { + content: "\e61b" +} + +.fa-cotton-bureau:before { + content: "\f89e" +} + +.fa-dashcube:before { + content: "\f210" +} + +.fa-42-group:before, +.fa-innosoft:before { + content: "\e080" +} + +.fa-stack-exchange:before { + content: "\f18d" +} + +.fa-elementor:before { + content: "\f430" +} + +.fa-pied-piper-square:before, +.fa-square-pied-piper:before { + content: "\e01e" +} + +.fa-creative-commons-nd:before { + content: "\f4eb" +} + +.fa-palfed:before { + content: "\f3d8" +} + +.fa-superpowers:before { + content: "\f2dd" +} + +.fa-resolving:before { + content: "\f3e7" +} + +.fa-xbox:before { + content: "\f412" +} + +.fa-searchengin:before { + content: "\f3eb" +} + +.fa-tiktok:before { + content: "\e07b" +} + +.fa-facebook-square:before, +.fa-square-facebook:before { + content: "\f082" +} + +.fa-renren:before { + content: "\f18b" +} + +.fa-linux:before { + content: "\f17c" +} + +.fa-glide:before { + content: "\f2a5" +} + +.fa-linkedin:before { + content: "\f08c" +} + +.fa-hubspot:before { + content: "\f3b2" +} + +.fa-deploydog:before { + content: "\f38e" +} + +.fa-twitch:before { + content: "\f1e8" +} + +.fa-ravelry:before { + content: "\f2d9" +} + +.fa-mixer:before { + content: "\e056" +} + +.fa-lastfm-square:before, +.fa-square-lastfm:before { + content: "\f203" +} + +.fa-vimeo:before { + content: "\f40a" +} + +.fa-mendeley:before { + content: "\f7b3" +} + +.fa-uniregistry:before { + content: "\f404" +} + +.fa-figma:before { + content: "\f799" +} + +.fa-creative-commons-remix:before { + content: "\f4ee" +} + +.fa-cc-amazon-pay:before { + content: "\f42d" +} + +.fa-dropbox:before { + content: "\f16b" +} + +.fa-instagram:before { + content: "\f16d" +} + +.fa-cmplid:before { + content: "\e360" +} + +.fa-upwork:before { + content: "\e641" +} + +.fa-facebook:before { + content: "\f09a" +} + +.fa-gripfire:before { + content: "\f3ac" +} + +.fa-jedi-order:before { + content: "\f50e" +} + +.fa-uikit:before { + content: "\f403" +} + +.fa-fort-awesome-alt:before { + content: "\f3a3" +} + +.fa-phabricator:before { + content: "\f3db" +} + +.fa-ussunnah:before { + content: "\f407" +} + +.fa-earlybirds:before { + content: "\f39a" +} + +.fa-trade-federation:before { + content: "\f513" +} + +.fa-autoprefixer:before { + content: "\f41c" +} + +.fa-whatsapp:before { + content: "\f232" +} + +.fa-slideshare:before { + content: "\f1e7" +} + +.fa-google-play:before { + content: "\f3ab" +} + +.fa-viadeo:before { + content: "\f2a9" +} + +.fa-line:before { + content: "\f3c0" +} + +.fa-google-drive:before { + content: "\f3aa" +} + +.fa-servicestack:before { + content: "\f3ec" +} + +.fa-simplybuilt:before { + content: "\f215" +} + +.fa-bitbucket:before { + content: "\f171" +} + +.fa-imdb:before { + content: "\f2d8" +} + +.fa-deezer:before { + content: "\e077" +} + +.fa-raspberry-pi:before { + content: "\f7bb" +} + +.fa-jira:before { + content: "\f7b1" +} + +.fa-docker:before { + content: "\f395" +} + +.fa-screenpal:before { + content: "\e570" +} + +.fa-bluetooth:before { + content: "\f293" +} + +.fa-gitter:before { + content: "\f426" +} + +.fa-d-and-d:before { + content: "\f38d" +} + +.fa-microblog:before { + content: "\e01a" +} + +.fa-cc-diners-club:before { + content: "\f24c" +} + +.fa-gg-circle:before { + content: "\f261" +} + +.fa-pied-piper-hat:before { + content: "\f4e5" +} + +.fa-kickstarter-k:before { + content: "\f3bc" +} + +.fa-yandex:before { + content: "\f413" +} + +.fa-readme:before { + content: "\f4d5" +} + +.fa-html5:before { + content: "\f13b" +} + +.fa-sellsy:before { + content: "\f213" +} + +.fa-sass:before { + content: "\f41e" +} + +.fa-wirsindhandwerk:before, +.fa-wsh:before { + content: "\e2d0" +} + +.fa-buromobelexperte:before { + content: "\f37f" +} + +.fa-salesforce:before { + content: "\f83b" +} + +.fa-octopus-deploy:before { + content: "\e082" +} + +.fa-medapps:before { + content: "\f3c6" +} + +.fa-ns8:before { + content: "\f3d5" +} + +.fa-pinterest-p:before { + content: "\f231" +} + +.fa-apper:before { + content: "\f371" +} + +.fa-fort-awesome:before { + content: "\f286" +} + +.fa-waze:before { + content: "\f83f" +} + +.fa-cc-jcb:before { + content: "\f24b" +} + +.fa-snapchat-ghost:before, +.fa-snapchat:before { + content: "\f2ab" +} + +.fa-fantasy-flight-games:before { + content: "\f6dc" +} + +.fa-rust:before { + content: "\e07a" +} + +.fa-wix:before { + content: "\f5cf" +} + +.fa-behance-square:before, +.fa-square-behance:before { + content: "\f1b5" +} + +.fa-supple:before { + content: "\f3f9" +} + +.fa-webflow:before { + content: "\e65c" +} + +.fa-rebel:before { + content: "\f1d0" +} + +.fa-css3:before { + content: "\f13c" +} + +.fa-staylinked:before { + content: "\f3f5" +} + +.fa-kaggle:before { + content: "\f5fa" +} + +.fa-space-awesome:before { + content: "\e5ac" +} + +.fa-deviantart:before { + content: "\f1bd" +} + +.fa-cpanel:before { + content: "\f388" +} + +.fa-goodreads-g:before { + content: "\f3a9" +} + +.fa-git-square:before, +.fa-square-git:before { + content: "\f1d2" +} + +.fa-square-tumblr:before, +.fa-tumblr-square:before { + content: "\f174" +} + +.fa-trello:before { + content: "\f181" +} + +.fa-creative-commons-nc-jp:before { + content: "\f4ea" +} + +.fa-get-pocket:before { + content: "\f265" +} + +.fa-perbyte:before { + content: "\e083" +} + +.fa-grunt:before { + content: "\f3ad" +} + +.fa-weebly:before { + content: "\f5cc" +} + +.fa-connectdevelop:before { + content: "\f20e" +} + +.fa-leanpub:before { + content: "\f212" +} + +.fa-black-tie:before { + content: "\f27e" +} + +.fa-themeco:before { + content: "\f5c6" +} + +.fa-python:before { + content: "\f3e2" +} + +.fa-android:before { + content: "\f17b" +} + +.fa-bots:before { + content: "\e340" +} + +.fa-free-code-camp:before { + content: "\f2c5" +} + +.fa-hornbill:before { + content: "\f592" +} + +.fa-js:before { + content: "\f3b8" +} + +.fa-ideal:before { + content: "\e013" +} + +.fa-git:before { + content: "\f1d3" +} + +.fa-dev:before { + content: "\f6cc" +} + +.fa-sketch:before { + content: "\f7c6" +} + +.fa-yandex-international:before { + content: "\f414" +} + +.fa-cc-amex:before { + content: "\f1f3" +} + +.fa-uber:before { + content: "\f402" +} + +.fa-github:before { + content: "\f09b" +} + +.fa-php:before { + content: "\f457" +} + +.fa-alipay:before { + content: "\f642" +} + +.fa-youtube:before { + content: "\f167" +} + +.fa-skyatlas:before { + content: "\f216" +} + +.fa-firefox-browser:before { + content: "\e007" +} + +.fa-replyd:before { + content: "\f3e6" +} + +.fa-suse:before { + content: "\f7d6" +} + +.fa-jenkins:before { + content: "\f3b6" +} + +.fa-twitter:before { + content: "\f099" +} + +.fa-rockrms:before { + content: "\f3e9" +} + +.fa-pinterest:before { + content: "\f0d2" +} + +.fa-buffer:before { + content: "\f837" +} + +.fa-npm:before { + content: "\f3d4" +} + +.fa-yammer:before { + content: "\f840" +} + +.fa-btc:before { + content: "\f15a" +} + +.fa-dribbble:before { + content: "\f17d" +} + +.fa-stumbleupon-circle:before { + content: "\f1a3" +} + +.fa-internet-explorer:before { + content: "\f26b" +} + +.fa-stubber:before { + content: "\e5c7" +} + +.fa-telegram-plane:before, +.fa-telegram:before { + content: "\f2c6" +} + +.fa-old-republic:before { + content: "\f510" +} + +.fa-odysee:before { + content: "\e5c6" +} + +.fa-square-whatsapp:before, +.fa-whatsapp-square:before { + content: "\f40c" +} + +.fa-node-js:before { + content: "\f3d3" +} + +.fa-edge-legacy:before { + content: "\e078" +} + +.fa-slack-hash:before, +.fa-slack:before { + content: "\f198" +} + +.fa-medrt:before { + content: "\f3c8" +} + +.fa-usb:before { + content: "\f287" +} + +.fa-tumblr:before { + content: "\f173" +} + +.fa-vaadin:before { + content: "\f408" +} + +.fa-quora:before { + content: "\f2c4" +} + +.fa-square-x-twitter:before { + content: "\e61a" +} + +.fa-reacteurope:before { + content: "\f75d" +} + +.fa-medium-m:before, +.fa-medium:before { + content: "\f23a" +} + +.fa-amilia:before { + content: "\f36d" +} + +.fa-mixcloud:before { + content: "\f289" +} + +.fa-flipboard:before { + content: "\f44d" +} + +.fa-viacoin:before { + content: "\f237" +} + +.fa-critical-role:before { + content: "\f6c9" +} + +.fa-sitrox:before { + content: "\e44a" +} + +.fa-discourse:before { + content: "\f393" +} + +.fa-joomla:before { + content: "\f1aa" +} + +.fa-mastodon:before { + content: "\f4f6" +} + +.fa-airbnb:before { + content: "\f834" +} + +.fa-wolf-pack-battalion:before { + content: "\f514" +} + +.fa-buy-n-large:before { + content: "\f8a6" +} + +.fa-gulp:before { + content: "\f3ae" +} + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1" +} + +.fa-strava:before { + content: "\f428" +} + +.fa-ember:before { + content: "\f423" +} + +.fa-canadian-maple-leaf:before { + content: "\f785" +} + +.fa-teamspeak:before { + content: "\f4f9" +} + +.fa-pushed:before { + content: "\f3e1" +} + +.fa-wordpress-simple:before { + content: "\f411" +} + +.fa-nutritionix:before { + content: "\f3d6" +} + +.fa-wodu:before { + content: "\e088" +} + +.fa-google-pay:before { + content: "\e079" +} + +.fa-intercom:before { + content: "\f7af" +} + +.fa-zhihu:before { + content: "\f63f" +} + +.fa-korvue:before { + content: "\f42f" +} + +.fa-pix:before { + content: "\e43a" +} + +.fa-steam-symbol:before { + content: "\f3f6" +} + +:host, +:root { + --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free" +} + +@font-face { + font-family: "Font Awesome 6 Free"; + font-style: normal; + font-weight: 400; + font-display: block; + src: url(../css/webfonts/fa-regular-400.woff2) format("woff2"), url(../css/webfonts/fa-regular-400.ttf) format("truetype") +} + +.fa-regular, +.far { + font-weight: 400 +} + +:host, +:root { + --fa-style-family-classic: "Font Awesome 6 Free"; + --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free" +} + +@font-face { + font-family: "Font Awesome 6 Free"; + font-style: normal; + font-weight: 900; + font-display: block; + src: url(../css/webfonts/fa-solid-900.woff2) format("woff2"), url(../css/webfonts/fa-solid-900.ttf) format("truetype") +} + +.fa-solid, +.fas { + font-weight: 900 +} + +@font-face { + font-family: "Font Awesome 5 Brands"; + font-display: block; + font-weight: 400; + src: url(../css/webfonts/fa-brands-400.woff2) format("woff2"), url(../css/webfonts/fa-brands-400.ttf) format("truetype") +} + +@font-face { + font-family: "Font Awesome 5 Free"; + font-display: block; + font-weight: 900; + src: url(../css/webfonts/fa-solid-900.woff2) format("woff2"), url(../css/webfonts/fa-solid-900.ttf) format("truetype") +} + +@font-face { + font-family: "Font Awesome 5 Free"; + font-display: block; + font-weight: 400; + src: url(../css/webfonts/fa-regular-400.woff2) format("woff2"), url(../css/webfonts/fa-regular-400.ttf) format("truetype") +} + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url(../css/webfonts/fa-solid-900.woff2) format("woff2"), url(../css/webfonts/fa-solid-900.ttf) format("truetype") +} + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url(../css/webfonts/fa-brands-400.woff2) format("woff2"), url(../css/webfonts/fa-brands-400.ttf) format("truetype") +} + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url(../css/webfonts/fa-regular-400.woff2) format("woff2"), url(../css/webfonts/fa-regular-400.ttf) format("truetype"); + unicode-range: u+f003, u+f006, u+f014, u+f016-f017, u+f01a-f01b, u+f01d, u+f022, u+f03e, u+f044, u+f046, u+f05c-f05d, u+f06e, u+f070, u+f087-f088, u+f08a, u+f094, u+f096-f097, u+f09d, u+f0a0, u+f0a2, u+f0a4-f0a7, u+f0c5, u+f0c7, u+f0e5-f0e6, u+f0eb, u+f0f6-f0f8, u+f10c, u+f114-f115, u+f118-f11a, u+f11c-f11d, u+f133, u+f147, u+f14e, u+f150-f152, u+f185-f186, u+f18e, u+f190-f192, u+f196, u+f1c1-f1c9, u+f1d9, u+f1db, u+f1e3, u+f1ea, u+f1f7, u+f1f9, u+f20a, u+f247-f248, u+f24a, u+f24d, u+f255-f25b, u+f25d, u+f271-f274, u+f278, u+f27b, u+f28c, u+f28e, u+f29c, u+f2b5, u+f2b7, u+f2ba, u+f2bc, u+f2be, u+f2c0-f2c1, u+f2c3, u+f2d0, u+f2d2, u+f2d4, u+f2dc +} + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url(../css/webfonts/fa-v4compatibility.woff2) format("woff2"), url(../css/webfonts/fa-v4compatibility.ttf) format("truetype"); + unicode-range: u+f041, u+f047, u+f065-f066, u+f07d-f07e, u+f080, u+f08b, u+f08e, u+f090, u+f09a, u+f0ac, u+f0ae, u+f0b2, u+f0d0, u+f0d6, u+f0e4, u+f0ec, u+f10a-f10b, u+f123, u+f13e, u+f148-f149, u+f14c, u+f156, u+f15e, u+f160-f161, u+f163, u+f175-f178, u+f195, u+f1f8, u+f219, u+f27a +} \ No newline at end of file diff --git a/css/style.css b/css/style.css new file mode 100644 index 0000000..1c61b0c --- /dev/null +++ b/css/style.css @@ -0,0 +1,1457 @@ +/* ============================================================ + DESIGN2CLOTHES β Global Stylesheet + Based on design2clothes.pen design system + Stack: Bootstrap 5 + Font Awesome 6 + Custom + ============================================================ */ + +/* ------------------------------------------------------------ + 1. GOOGLE FONTS + ------------------------------------------------------------ */ +@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap'); + +/* ------------------------------------------------------------ + 2. DESIGN TOKENS β CSS Custom Properties + ------------------------------------------------------------ */ +:root { + /* --- Background Colors --- */ + --clr-bg-root: #121212; /* page background */ + --clr-bg-panel: #1B1B1B; /* main panels / cards */ + --clr-bg-panel-alt: #171717; /* center canvas panel */ + --clr-bg-subpanel: #242424; /* inner sub-panels (model, garment...) */ + --clr-bg-input: #1A1A1A; /* inputs, selects, textareas */ + --clr-bg-item: #202020; /* list items / dropdown rows */ + --clr-bg-item-alt: #262626; /* inactive tabs */ + --clr-bg-edit: #2A2A2A; /* small icon buttons */ + --clr-bg-dark-btn: #242424; /* secondary dark buttons */ + --clr-bg-viewport: #101010; /* canvas viewport */ + + /* --- Border / Stroke Colors --- */ + --clr-border: #2C2C2C; /* outer panel borders */ + --clr-border-input: #363636; /* input/select borders */ + --clr-border-btn: #3A3A3A; /* secondary btn borders */ + --clr-border-upload: #393939; /* upload zone border */ + + /* --- Accent Colors --- */ + --clr-accent-orange: #FF6A00; /* primary CTA / apply btn */ + --clr-accent-purple: #6F2CFF; /* active tabs / generate btn */ + + /* --- Text Colors --- */ + --clr-text-primary: #F2F2F2; /* headings / brand */ + --clr-text-secondary: #B8B8B8; /* labels, descriptions */ + --clr-text-muted: #8E8E8E; /* placeholder text */ + --clr-text-dim: #AFAFAF; /* subtle labels */ + --clr-text-soft: #D8D8D8; /* asset names */ + --clr-text-tag: #A0A0A0; /* file type badges */ + --clr-text-on-dark: #D9D9D9; /* on dark buttons */ + --clr-text-on-orange: #121212; /* text on orange buttons */ + --clr-text-on-purple: #F7F2FF; /* text on purple buttons */ + + /* --- Radius --- */ + --radius-xs: 8px; + --radius-sm: 10px; + --radius-md: 12px; + --radius-lg: 14px; + --radius-xl: 18px; + --radius-xxl: 22px; + --radius-pill: 9999px; + + /* --- Spacing Base --- */ + --sp-1: 4px; + --sp-2: 8px; + --sp-3: 12px; + --sp-4: 16px; + --sp-5: 20px; + --sp-6: 24px; + + /* --- Typography --- */ + --font-base: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; + --fs-xs: 11px; + --fs-sm: 12px; + --fs-md: 13px; + --fs-base: 14px; + --fs-lg: 16px; + --fs-xl: 20px; + --fs-2xl: 24px; + --fs-3xl: 30px; + --fs-4xl: 34px; + + /* --- Transitions --- */ + --transition-fast: 150ms ease; + --transition-base: 250ms ease; + --transition-slow: 400ms ease; +} + +/* ------------------------------------------------------------ + 3. RESET & BASE + ------------------------------------------------------------ */ +*, *::before, *::after { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +html { + scroll-behavior: smooth; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +body { + font-family: var(--font-base); + font-size: var(--fs-base); + font-weight: 500; + color: var(--clr-text-primary); + background-color: var(--clr-bg-root); + line-height: 1.5; + min-height: 100vh; +} + +a { + color: var(--clr-accent-orange); + text-decoration: none; + transition: color var(--transition-fast); +} +a:hover { color: #ff8533; } + +::selection { + background: rgba(111, 44, 255, 0.35); + color: var(--clr-text-primary); +} + +/* Scrollbar */ +::-webkit-scrollbar { width: 6px; height: 6px; } +::-webkit-scrollbar-track { background: var(--clr-bg-panel); } +::-webkit-scrollbar-thumb { background: #3A3A3A; border-radius: 3px; } +::-webkit-scrollbar-thumb:hover { background: #555; } + +/* ------------------------------------------------------------ + 4. LAYOUT β App Shell + ------------------------------------------------------------ */ +.app-wrapper { + display: flex; + flex-direction: column; + min-height: 100vh; + padding: var(--sp-6); + gap: var(--sp-5); +} + +/* --- Topbar / Header --- */ +.app-header { + display: flex; + align-items: center; + justify-content: space-between; + height: 72px; + padding: 0 var(--sp-1); + flex-shrink: 0; +} + +.app-brand { + font-size: var(--fs-4xl); + font-weight: 700; + color: var(--clr-text-primary); + letter-spacing: -0.5px; + line-height: 1; +} + +/* --- Dashboard Row --- */ +.dash-row { + display: flex; + gap: var(--sp-4); + height: 180px; +} + +/* --- Canvas Shell (3-column) --- */ +.canvas-shell { + display: flex; + gap: var(--sp-4); + flex: 1; +} + +.canvas-left { width: 290px; flex-shrink: 0; } +.canvas-center { flex: 1; min-width: 0; } +.canvas-right { width: 340px; flex-shrink: 0; } + +/* --- Footer --- */ +.app-footer { + display: flex; + align-items: center; + justify-content: space-between; + padding: var(--sp-3) var(--sp-4); + font-size: var(--fs-xs); + color: var(--clr-text-muted); + border-top: 1px solid var(--clr-border); + flex-shrink: 0; +} + +.app-footer a { + color: var(--clr-text-dim); +} + +/* ------------------------------------------------------------ + 5. PANEL / CARD + ------------------------------------------------------------ */ +.panel { + background: var(--clr-bg-panel); + border: 1px solid var(--clr-border); + border-radius: var(--radius-xl); + padding: var(--sp-4); + display: flex; + flex-direction: column; + gap: var(--sp-3); +} + +.panel--alt { + background: var(--clr-bg-panel-alt); +} + +.panel--dark { + background: var(--clr-bg-root); + border-color: transparent; +} + +/* Sub-panel (inner card inside left/right) */ +.subpanel { + background: var(--clr-bg-subpanel); + border-radius: var(--radius-md); + padding: var(--sp-3); + display: flex; + flex-direction: column; + gap: 10px; +} + +/* Panel title */ +.panel-title { + font-size: var(--fs-xl); + font-weight: 600; + color: var(--clr-text-primary); + line-height: 1.2; +} + +.panel-title--sm { + font-size: var(--fs-base); + font-weight: 600; + color: #F0F0F0; +} + +.panel-label { + font-size: var(--fs-md); + font-weight: 600; + color: var(--clr-text-dim); +} + +/* ------------------------------------------------------------ + 6. TYPOGRAPHY UTILITIES + ------------------------------------------------------------ */ +.text-primary { color: var(--clr-text-primary) !important; } +.text-secondary { color: var(--clr-text-secondary) !important; } +.text-muted-d { color: var(--clr-text-muted) !important; } +.text-dim { color: var(--clr-text-dim) !important; } +.text-orange { color: var(--clr-accent-orange) !important; } +.text-purple { color: var(--clr-accent-purple) !important; } + +.fw-500 { font-weight: 500; } +.fw-600 { font-weight: 600; } +.fw-700 { font-weight: 700; } + +.fs-xs { font-size: var(--fs-xs); } +.fs-sm { font-size: var(--fs-sm); } +.fs-md { font-size: var(--fs-md); } +.fs-base { font-size: var(--fs-base); } +.fs-lg { font-size: var(--fs-lg); } + +/* ------------------------------------------------------------ + 7. BUTTONS + ------------------------------------------------------------ */ +.btn-d2c { + display: inline-flex; + align-items: center; + justify-content: center; + gap: var(--sp-2); + font-family: var(--font-base); + font-weight: 700; + border: none; + cursor: pointer; + transition: all var(--transition-base); + white-space: nowrap; + user-select: none; + border-radius: var(--radius-pill); + text-decoration: none; +} + +.btn-d2c:focus-visible { + outline: 2px solid var(--clr-accent-purple); + outline-offset: 3px; +} + +/* Size variants */ +.btn-d2c--sm { height: 34px; padding: 0 14px; font-size: var(--fs-sm); } +.btn-d2c--md { height: 44px; padding: 0 20px; font-size: var(--fs-base); } +.btn-d2c--lg { height: 46px; padding: 0 28px; font-size: var(--fs-lg); } +.btn-d2c--xl { height: 56px; padding: 0 36px; font-size: 18px; } +.btn-d2c--full { width: 100%; } + +/* Orange β Primary CTA */ +.btn-orange { + background: var(--clr-accent-orange); + color: var(--clr-text-on-orange); +} +.btn-orange:hover { + background: #e85f00; + transform: translateY(-1px); + box-shadow: 0 8px 24px rgba(255, 106, 0, 0.35); +} +.btn-orange:active { transform: translateY(0); } + +/* Purple β Generate / Active */ +.btn-purple { + background: var(--clr-accent-purple); + color: var(--clr-text-on-purple); +} +.btn-purple:hover { + background: #5a20d4; + transform: translateY(-1px); + box-shadow: 0 8px 24px rgba(111, 44, 255, 0.35); +} +.btn-purple:active { transform: translateY(0); } + +/* Dark β Secondary */ +.btn-dark { + background: var(--clr-bg-dark-btn); + color: var(--clr-text-on-dark); + border: 1px solid var(--clr-border-btn); +} +.btn-dark:hover { + background: #2E2E2E; + border-color: #555; +} + +/* Ghost / Outline */ +.btn-ghost { + background: transparent; + color: var(--clr-text-secondary); + border: 1px solid var(--clr-border-btn); +} +.btn-ghost:hover { + background: var(--clr-bg-subpanel); + color: var(--clr-text-primary); + border-color: #555; +} + +/* Danger */ +.btn-danger { + background: #C0392B; + color: #fff; +} +.btn-danger:hover { + background: #a93226; + transform: translateY(-1px); + box-shadow: 0 6px 18px rgba(192, 57, 43, 0.35); +} + +/* Success */ +.btn-success { + background: #27AE60; + color: #fff; +} +.btn-success:hover { + background: #219952; + transform: translateY(-1px); + box-shadow: 0 6px 18px rgba(39, 174, 96, 0.3); +} + +/* Icon-only button */ +.btn-icon { + display: inline-flex; + align-items: center; + justify-content: center; + background: var(--clr-bg-edit); + border: 1px solid var(--clr-border-btn); + border-radius: var(--radius-pill); + width: 34px; + height: 34px; + color: var(--clr-text-secondary); + cursor: pointer; + transition: all var(--transition-fast); + flex-shrink: 0; +} +.btn-icon:hover { + background: #363636; + color: var(--clr-text-primary); +} + +/* Loading spinner for buttons */ +.btn-d2c.is-loading { + pointer-events: none; + opacity: 0.7; +} +.btn-d2c.is-loading::after { + content: ''; + width: 16px; height: 16px; + border: 2px solid currentColor; + border-top-color: transparent; + border-radius: 50%; + animation: spin 0.7s linear infinite; + margin-left: var(--sp-2); +} + +@keyframes spin { + to { transform: rotate(360deg); } +} + +/* ------------------------------------------------------------ + 8. TABS + ------------------------------------------------------------ */ +.tabs-d2c { + display: flex; + gap: var(--sp-2); + height: 36px; + background: var(--clr-bg-item-alt); + border-radius: var(--radius-xl); + padding: 3px; +} + +.tab-item { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + border-radius: var(--radius-xl); + font-size: var(--fs-sm); + font-weight: 600; + color: #BBBBBB; + background: transparent; + border: none; + cursor: pointer; + transition: all var(--transition-base); + white-space: nowrap; + padding: 0 10px; +} + +.tab-item:hover { + color: var(--clr-text-primary); + background: rgba(255,255,255,0.05); +} + +.tab-item.active--purple { + background: var(--clr-accent-purple); + color: var(--clr-text-on-purple); +} + +.tab-item.active--orange { + background: var(--clr-accent-orange); + color: var(--clr-text-on-orange); +} + +/* Tab content panels */ +.tab-pane { display: none; } +.tab-pane.active { display: block; } + +/* ------------------------------------------------------------ + 9. FORM CONTROLS + ------------------------------------------------------------ */ + +/* --- Shared Field Base --- */ +.field-d2c { + width: 100%; + font-family: var(--font-base); + font-size: var(--fs-xs); + font-weight: 500; + color: var(--clr-text-secondary); + background: var(--clr-bg-input); + border: 1px solid var(--clr-border-input); + border-radius: var(--radius-sm); + transition: border-color var(--transition-fast), box-shadow var(--transition-fast); + outline: none; + appearance: none; + -webkit-appearance: none; +} + +.field-d2c::placeholder { + color: var(--clr-text-muted); +} + +.field-d2c:focus { + border-color: var(--clr-accent-purple); + box-shadow: 0 0 0 3px rgba(111, 44, 255, 0.18); + color: var(--clr-text-primary); +} + +.field-d2c:disabled { + opacity: 0.45; + cursor: not-allowed; +} + +/* --- Input --- */ +.input-d2c { + height: 44px; + padding: 0 12px; + line-height: 44px; +} + +.input-d2c--sm { + height: 34px; + padding: 0 10px; +} + +/* Input with icon prefix */ +.input-wrap { + position: relative; + display: block; +} +.input-wrap .input-icon { + position: absolute; + left: 12px; + top: 50%; + transform: translateY(-50%); + color: var(--clr-text-muted); + pointer-events: none; + font-size: 14px; +} +.input-wrap .field-d2c { + padding-left: 36px; +} +.input-wrap .input-icon-right { + position: absolute; + right: 12px; + top: 50%; + transform: translateY(-50%); + color: var(--clr-text-muted); + font-size: 12px; +} + +/* --- Textarea --- */ +.textarea-d2c { + padding: 12px; + resize: vertical; + min-height: 80px; + line-height: 1.5; + font-size: var(--fs-xs); +} + +/* --- Select --- */ +.select-d2c { + height: 44px; + padding: 0 32px 0 12px; + cursor: pointer; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23AFAFAF' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right 12px center; +} + +.select-d2c option, +.select-d2c optgroup { + background: var(--clr-bg-subpanel); + color: var(--clr-text-secondary); +} + +/* --- Form Label --- */ +.form-label-d2c { + display: block; + font-size: var(--fs-sm); + font-weight: 600; + color: var(--clr-text-secondary); + margin-bottom: 6px; +} + +/* --- Form Group --- */ +.form-group { + display: flex; + flex-direction: column; + gap: 6px; +} + +/* --- Form Row (inline) --- */ +.form-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: var(--sp-2); + height: 40px; + padding: 0 10px; + background: var(--clr-bg-input); + border-radius: var(--radius-sm); +} + +.form-row__label { + font-size: var(--fs-xs); + font-weight: 500; + color: var(--clr-text-secondary); +} + +.form-row__value { + font-size: var(--fs-xs); + font-weight: 600; + color: var(--clr-text-soft); +} + +/* --- Range Slider --- */ +.range-d2c { + -webkit-appearance: none; + appearance: none; + width: 100%; + height: 4px; + background: var(--clr-border-input); + border-radius: 2px; + outline: none; + cursor: pointer; +} +.range-d2c::-webkit-slider-thumb { + -webkit-appearance: none; + width: 16px; height: 16px; + border-radius: 50%; + background: var(--clr-accent-purple); + cursor: pointer; + box-shadow: 0 0 0 3px rgba(111, 44, 255, 0.2); + transition: box-shadow var(--transition-fast); +} +.range-d2c::-webkit-slider-thumb:hover { + box-shadow: 0 0 0 5px rgba(111, 44, 255, 0.3); +} +.range-d2c::-moz-range-thumb { + width: 16px; height: 16px; + border-radius: 50%; + background: var(--clr-accent-purple); + border: none; + cursor: pointer; +} + +/* --- Checkbox --- */ +.check-d2c { + display: flex; + align-items: center; + gap: 10px; + cursor: pointer; + font-size: var(--fs-base); + color: var(--clr-text-secondary); + user-select: none; +} + +.check-d2c input[type="checkbox"] { + -webkit-appearance: none; + appearance: none; + width: 18px; height: 18px; + border: 1px solid var(--clr-border-input); + border-radius: 5px; + background: var(--clr-bg-input); + cursor: pointer; + flex-shrink: 0; + transition: all var(--transition-fast); + position: relative; +} + +.check-d2c input[type="checkbox"]:checked { + background: var(--clr-accent-purple); + border-color: var(--clr-accent-purple); +} + +.check-d2c input[type="checkbox"]:checked::after { + content: ''; + position: absolute; + left: 5px; top: 2px; + width: 5px; height: 9px; + border: 2px solid #fff; + border-top: none; + border-left: none; + transform: rotate(45deg); +} + +/* --- Radio --- */ +.radio-d2c { + display: flex; + align-items: center; + gap: 10px; + cursor: pointer; + font-size: var(--fs-base); + color: var(--clr-text-secondary); + user-select: none; +} + +.radio-d2c input[type="radio"] { + -webkit-appearance: none; + appearance: none; + width: 18px; height: 18px; + border: 1px solid var(--clr-border-input); + border-radius: 50%; + background: var(--clr-bg-input); + cursor: pointer; + flex-shrink: 0; + transition: all var(--transition-fast); + position: relative; +} + +.radio-d2c input[type="radio"]:checked { + border-color: var(--clr-accent-purple); +} + +.radio-d2c input[type="radio"]:checked::after { + content: ''; + position: absolute; + top: 50%; left: 50%; + transform: translate(-50%, -50%); + width: 8px; height: 8px; + border-radius: 50%; + background: var(--clr-accent-purple); +} + +/* --- Toggle Switch --- */ +.toggle-d2c { + display: flex; + align-items: center; + gap: 10px; + cursor: pointer; + font-size: var(--fs-base); + color: var(--clr-text-secondary); + user-select: none; +} + +.toggle-d2c input[type="checkbox"] { + display: none; +} + +.toggle-track { + width: 42px; height: 24px; + background: var(--clr-bg-subpanel); + border: 1px solid var(--clr-border-input); + border-radius: 12px; + position: relative; + transition: background var(--transition-base); + flex-shrink: 0; +} + +.toggle-track::after { + content: ''; + position: absolute; + top: 3px; left: 3px; + width: 16px; height: 16px; + border-radius: 50%; + background: var(--clr-text-muted); + transition: all var(--transition-base); +} + +.toggle-d2c input:checked + .toggle-track { + background: var(--clr-accent-purple); + border-color: var(--clr-accent-purple); +} + +.toggle-d2c input:checked + .toggle-track::after { + left: 21px; + background: #fff; +} + +/* ------------------------------------------------------------ + 10. FILE UPLOAD / DROP ZONE + ------------------------------------------------------------ */ +.upload-zone { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: var(--sp-2); + min-height: 120px; + background: rgba(71, 71, 71, 0.3); + border: 1px dashed var(--clr-border-upload); + border-radius: var(--radius-lg); + cursor: pointer; + transition: all var(--transition-base); + text-align: center; + padding: var(--sp-4); +} + +.upload-zone:hover, +.upload-zone.drag-over { + border-color: var(--clr-accent-purple); + background: rgba(111, 44, 255, 0.07); +} + +.upload-zone i { + font-size: 24px; + color: var(--clr-text-muted); + margin-bottom: var(--sp-1); +} + +.upload-zone p { + font-size: var(--fs-md); + font-weight: 500; + color: #A6A6A6; + line-height: 1.4; +} + +.upload-zone input[type="file"] { display: none; } + +/* ------------------------------------------------------------ + 11. ASSET LIST ITEM + ------------------------------------------------------------ */ +.asset-list { + display: flex; + flex-direction: column; + gap: var(--sp-2); +} + +.asset-item { + display: flex; + align-items: center; + justify-content: space-between; + height: 54px; + padding: 0 12px; + background: var(--clr-bg-subpanel); + border-radius: var(--radius-sm); + transition: background var(--transition-fast); + cursor: pointer; +} + +.asset-item:hover { background: #2E2E2E; } + +.asset-item--active { + outline: 1px solid var(--clr-accent-purple); +} + +.asset-item__name { + font-size: var(--fs-sm); + font-weight: 500; + color: var(--clr-text-soft); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.asset-item__badge { + font-size: var(--fs-xs); + font-weight: 600; + color: var(--clr-text-tag); + flex-shrink: 0; + margin-left: var(--sp-2); +} + +/* ------------------------------------------------------------ + 12. DROPDOWN (custom) + ------------------------------------------------------------ */ +.dropdown-d2c { + position: relative; +} + +.dropdown-trigger { + display: flex; + align-items: center; + justify-content: space-between; + height: 44px; + padding: 0 12px; + background: var(--clr-bg-input); + border: 1px solid var(--clr-border-input); + border-radius: var(--radius-sm); + cursor: pointer; + font-size: var(--fs-xs); + font-weight: 500; + color: var(--clr-text-secondary); + user-select: none; + transition: border-color var(--transition-fast); +} +.dropdown-trigger:hover { border-color: #555; } + +.dropdown-menu-d2c { + position: absolute; + top: calc(100% + 4px); + left: 0; right: 0; + background: var(--clr-bg-input); + border: 1px solid var(--clr-border-input); + border-radius: var(--radius-sm); + overflow: hidden; + z-index: 100; + display: none; +} + +.dropdown-d2c.open .dropdown-menu-d2c { display: block; } + +.dropdown-option { + display: flex; + align-items: center; + height: 30px; + padding: 0 10px; + font-size: var(--fs-xs); + font-weight: 500; + color: var(--clr-text-secondary); + background: var(--clr-bg-item); + cursor: pointer; + transition: background var(--transition-fast); +} +.dropdown-option:hover { background: var(--clr-bg-subpanel); color: var(--clr-text-primary); } +.dropdown-option.selected { font-weight: 600; color: var(--clr-text-primary); } + +/* ------------------------------------------------------------ + 13. VIEWPORT / CANVAS AREA + ------------------------------------------------------------ */ +.design-viewport { + background: var(--clr-bg-viewport); + border: 1px solid #2E2E2E; + border-radius: var(--radius-lg); + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 10px; + padding: var(--sp-5) 0; + min-height: 400px; + position: relative; + overflow: hidden; +} + +.viewport-label { + font-size: var(--fs-md); + font-weight: 500; + color: var(--clr-text-secondary); + position: absolute; + bottom: var(--sp-4); +} + +/* ------------------------------------------------------------ + 14. BADGES / TAGS + ------------------------------------------------------------ */ +.badge-d2c { + display: inline-flex; + align-items: center; + gap: 5px; + padding: 3px 10px; + border-radius: var(--radius-pill); + font-size: var(--fs-xs); + font-weight: 600; + line-height: 1; +} + +.badge-purple { background: rgba(111, 44, 255, 0.2); color: #a880ff; } +.badge-orange { background: rgba(255, 106, 0, 0.2); color: #FF8C35; } +.badge-success { background: rgba(39, 174, 96, 0.2); color: #4fd17c; } +.badge-danger { background: rgba(192, 57, 43, 0.2); color: #e57161; } +.badge-muted { background: var(--clr-bg-subpanel); color: var(--clr-text-dim); } + +/* File type badge */ +.file-badge { + font-size: 10px; + font-weight: 700; + padding: 2px 7px; + border-radius: 5px; + letter-spacing: 0.3px; +} +.file-badge--svg { background: rgba(111, 44, 255, 0.15); color: #a880ff; } +.file-badge--png { background: rgba(255, 106, 0, 0.15); color: #FF8C35; } +.file-badge--jpg { background: rgba(39, 174, 96, 0.15); color: #4fd17c; } + +/* ------------------------------------------------------------ + 15. ALERTS / TOAST + ------------------------------------------------------------ */ +.alert-d2c { + display: flex; + align-items: flex-start; + gap: 12px; + padding: 14px 16px; + border-radius: var(--radius-md); + font-size: var(--fs-base); + font-weight: 500; +} + +.alert-d2c i { font-size: 16px; margin-top: 1px; flex-shrink: 0; } + +.alert-info { background: rgba(111, 44, 255, 0.12); color: #c0a0ff; border: 1px solid rgba(111,44,255,0.2); } +.alert-success { background: rgba(39, 174, 96, 0.12); color: #6ee09a; border: 1px solid rgba(39,174,96,0.2); } +.alert-warning { background: rgba(255, 106, 0, 0.12); color: #ffa04d; border: 1px solid rgba(255,106,0,0.2); } +.alert-danger { background: rgba(192, 57, 43, 0.12); color: #e57161; border: 1px solid rgba(192,57,43,0.2); } + +/* Toast notification */ +.toast-container { + position: fixed; + bottom: 24px; right: 24px; + z-index: 9999; + display: flex; + flex-direction: column; + gap: var(--sp-2); +} + +.toast-d2c { + min-width: 260px; + padding: 12px 16px; + background: var(--clr-bg-panel); + border: 1px solid var(--clr-border); + border-radius: var(--radius-md); + box-shadow: 0 8px 32px rgba(0,0,0,0.6); + display: flex; + align-items: center; + gap: 10px; + font-size: var(--fs-base); + font-weight: 500; + color: var(--clr-text-primary); + animation: slideUp var(--transition-base) ease; +} + +@keyframes slideUp { + from { opacity: 0; transform: translateY(20px); } + to { opacity: 1; transform: translateY(0); } +} + +/* ------------------------------------------------------------ + 16. MODALS + ------------------------------------------------------------ */ +.modal-overlay { + position: fixed; + inset: 0; + background: rgba(0,0,0,0.75); + z-index: 1000; + display: flex; + align-items: center; + justify-content: center; + backdrop-filter: blur(4px); + opacity: 0; + visibility: hidden; + transition: all var(--transition-base); +} + +.modal-overlay.active { + opacity: 1; + visibility: visible; +} + +.modal-d2c { + background: var(--clr-bg-panel); + border: 1px solid var(--clr-border); + border-radius: var(--radius-xl); + padding: var(--sp-6); + max-width: 520px; + width: 90%; + transform: translateY(20px) scale(0.97); + transition: transform var(--transition-base); +} + +.modal-overlay.active .modal-d2c { + transform: translateY(0) scale(1); +} + +.modal-header { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: var(--sp-5); +} + +.modal-title { + font-size: var(--fs-xl); + font-weight: 700; + color: var(--clr-text-primary); +} + +.modal-footer { + display: flex; + justify-content: flex-end; + gap: var(--sp-2); + margin-top: var(--sp-5); +} + +/* ------------------------------------------------------------ + 17. SPINNER / LOADING + ------------------------------------------------------------ */ +.spinner-d2c { + width: 32px; height: 32px; + border: 3px solid var(--clr-border); + border-top-color: var(--clr-accent-purple); + border-radius: 50%; + animation: spin 0.8s linear infinite; +} + +.spinner-d2c--sm { width: 18px; height: 18px; border-width: 2px; } +.spinner-d2c--lg { width: 48px; height: 48px; border-width: 4px; } + +/* Progress bar */ +.progress-d2c { + height: 4px; + border-radius: 2px; + background: var(--clr-border); + overflow: hidden; +} + +.progress-bar-d2c { + height: 100%; + border-radius: 2px; + background: var(--clr-accent-purple); + transition: width var(--transition-slow); +} + +/* ------------------------------------------------------------ + 18. DIVIDER + ------------------------------------------------------------ */ +.divider-d2c { + height: 1px; + background: var(--clr-border); + flex-shrink: 0; +} + +/* ------------------------------------------------------------ + 19. UTILITIES + ------------------------------------------------------------ */ +.d-flex { display: flex; } +.align-center { align-items: center; } +.justify-between { justify-content: space-between; } +.gap-2 { gap: var(--sp-2); } +.gap-3 { gap: var(--sp-3); } +.gap-4 { gap: var(--sp-4); } +.flex-1 { flex: 1; } +.w-full { width: 100%; } +.mt-2 { margin-top: var(--sp-2); } +.mt-3 { margin-top: var(--sp-3); } +.mb-2 { margin-bottom: var(--sp-2); } +.mb-3 { margin-bottom: var(--sp-3); } + +/* ------------------------------------------------------------ + 20. RESPONSIVE + ------------------------------------------------------------ */ +@media (max-width: 1200px) { + .canvas-right { width: 280px; } +} + +@media (max-width: 992px) { + .canvas-shell { flex-direction: column; } + .canvas-left, .canvas-right { width: 100%; } + .dash-row { height: auto; flex-direction: column; } +} + +@media (max-width: 576px) { + .app-wrapper { padding: var(--sp-3); gap: var(--sp-3); } + .app-brand { font-size: 24px; } +} + +/* ============================================================ + 21. APP-SPECIFIC COMPONENTS (index.php) + ============================================================ */ + +/* --- Step Indicator (topbar) --- */ +.step-indicator { + display: flex; + align-items: center; + gap: 6px; +} + +.step-pip { + display: inline-flex; + align-items: center; + justify-content: center; + width: 28px; height: 28px; + border-radius: 50%; + font-size: 11px; + font-weight: 700; + background: var(--clr-bg-subpanel); + border: 1px solid var(--clr-border); + color: var(--clr-text-muted); + transition: all var(--transition-base); + cursor: default; +} + +.step-pip.active { + background: var(--clr-accent-purple); + border-color: var(--clr-accent-purple); + color: #fff; +} + +.step-pip.done { + background: rgba(39, 174, 96, 0.15); + border-color: #27AE60; + color: #4fd17c; +} + +.step-sep { + font-size: 9px; + color: var(--clr-border-btn); +} + +/* Step badge (mini label inside panels) */ +.step-badge { + font-size: 9px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.8px; + padding: 2px 7px; + border-radius: 10px; + background: rgba(111, 44, 255, 0.15); + color: #a880ff; + flex-shrink: 0; +} + +/* --- Project Info (dash-row) --- */ +.project-title { + font-size: 22px; + font-weight: 700; + color: var(--clr-text-primary); + line-height: 1.2; + flex: 1; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.project-desc { + font-size: var(--fs-base); + font-weight: 500; + color: var(--clr-text-secondary); + line-height: 1.5; + flex: 1; +} + +/* h-100 helper for flex panels */ +.h-100 { flex: 1; overflow-y: auto; } + +/* --- Empty Hint --- */ +.empty-hint { + display: flex; + flex-direction: column; + align-items: center; + gap: 8px; + padding: var(--sp-5); + color: var(--clr-text-muted); + text-align: center; + font-size: var(--fs-md); +} +.empty-hint i { font-size: 28px; opacity: 0.4; } + +/* --- Predefined Model Grid --- */ +.predefined-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 6px; +} + +.predefined-item { + display: flex; + flex-direction: column; + align-items: center; + gap: 5px; + padding: 10px 6px; + background: var(--clr-bg-input); + border: 1px solid var(--clr-border-input); + border-radius: var(--radius-sm); + cursor: pointer; + transition: all var(--transition-fast); + font-size: 10px; + font-weight: 600; + color: var(--clr-text-secondary); + text-align: center; +} + +.predefined-item i { font-size: 20px; color: var(--clr-text-muted); } + +.predefined-item:hover { + border-color: var(--clr-accent-purple); + background: rgba(111, 44, 255, 0.08); + color: var(--clr-text-primary); +} + +.predefined-item:hover i { color: var(--clr-accent-purple); } + +.predefined-item.selected { + border-color: var(--clr-accent-purple); + background: rgba(111, 44, 255, 0.12); + color: var(--clr-text-on-purple); +} +.predefined-item.selected i { color: var(--clr-accent-purple); } + +/* --- Color picker input --- */ +.color-input-d2c { + -webkit-appearance: none; + appearance: none; + width: 28px; height: 28px; + border-radius: 50%; + border: 2px solid var(--clr-border-btn); + padding: 0; + cursor: pointer; + background: none; + flex-shrink: 0; +} +.color-input-d2c::-webkit-color-swatch-wrapper { padding: 0; } +.color-input-d2c::-webkit-color-swatch { border: none; border-radius: 50%; } + +/* --- Canvas / Viewport --- */ +.design-viewport { flex: 1; min-height: 440px; } + +.viewport-empty { + display: flex; + flex-direction: column; + align-items: center; + gap: 16px; + color: var(--clr-text-muted); + text-align: center; + padding: 24px; +} +.viewport-empty > i { font-size: 64px; opacity: 0.08; } +.viewport-empty > p { font-size: var(--fs-base); font-weight: 500; } + +.viewport-steps { + display: flex; + align-items: center; + gap: 10px; + margin-top: 8px; +} + +.vs-step { + display: flex; + align-items: center; + gap: 6px; + font-size: 11px; + font-weight: 600; + color: var(--clr-text-muted); + opacity: 0.5; +} + +.vs-step.active { opacity: 1; color: var(--clr-text-secondary); } +.vs-step.done { opacity: 1; color: #4fd17c; } + +.vs-num { + display: inline-flex; + align-items: center; + justify-content: center; + width: 20px; height: 20px; + border-radius: 50%; + background: var(--clr-bg-subpanel); + border: 1px solid var(--clr-border); + font-size: 10px; + font-weight: 700; +} + +.vs-arrow { font-size: 9px; color: var(--clr-border); } + +/* Canvas layers (model + artwork overlay) */ +.viewport-content { + position: relative; + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; +} + +.canvas-layers { + position: relative; + display: inline-block; +} + +.layer-model { + display: block; + max-height: 420px; + max-width: 100%; + border-radius: var(--radius-md); +} + +.layer-artwork { + position: absolute; + top: 50%; left: 50%; + transform: translate(-50%, -50%); + max-width: 60%; + pointer-events: none; +} + +/* Loading overlay */ +.viewport-loading { + position: absolute; + inset: 0; + background: rgba(16,16,16,0.85); + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 12px; + border-radius: var(--radius-lg); + backdrop-filter: blur(4px); +} +.viewport-loading p { + font-size: var(--fs-base); + font-weight: 600; + color: var(--clr-text-secondary); +} + +/* Apply prompt wrap */ +.apply-prompt-wrap { flex-shrink: 0; } + +/* --- Export Panel (right) --- */ +.export-thumb { + height: 140px; + background: var(--clr-bg-viewport); + border: 1px solid var(--clr-border); + border-radius: var(--radius-md); + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 8px; + color: var(--clr-text-muted); + font-size: 12px; + overflow: hidden; + flex-shrink: 0; +} +.export-thumb i { font-size: 36px; opacity: 0.15; } +.export-thumb img { width: 100%; height: 100%; object-fit: cover; } + +.export-meta { + display: flex; + flex-direction: column; + gap: 4px; +} + +.export-meta-row { + display: flex; + align-items: center; + justify-content: space-between; + font-size: 11px; + padding: 4px 0; + border-bottom: 1px solid rgba(255,255,255,0.04); + color: var(--clr-text-secondary); +} +.export-meta-row span:first-child { color: var(--clr-text-muted); } +.export-meta-row i { margin-right: 5px; width: 12px; } + +/* Resolution radio list */ +.resolution-list { + display: flex; + flex-direction: column; + gap: 4px; +} + +.res-option { + display: flex; + align-items: center; + gap: 10px; + padding: 8px 10px; + border-radius: var(--radius-sm); + cursor: pointer; + transition: background var(--transition-fast); + font-size: 12px; + font-weight: 600; + color: var(--clr-text-secondary); +} +.res-option:hover { background: var(--clr-bg-subpanel); } +.res-option input[type="radio"] { accent-color: var(--clr-accent-orange); } +.res-option small { font-weight: 400; color: var(--clr-text-muted); margin-left: 4px; } + +.format-row { + display: flex; + gap: 4px; +} +.format-row .res-option { flex: 1; justify-content: center; padding: 6px; } + +/* Export status */ +.export-status { + font-size: 12px; + font-weight: 500; + color: var(--clr-text-secondary); + text-align: center; + padding: 6px; +} + +/* --- API / Status indicator (footer) --- */ +.api-status { + display: inline-flex; + align-items: center; + gap: 5px; + font-size: 11px; + font-weight: 600; +} +.api-status--idle i { color: var(--clr-text-muted); } +.api-status--working i { color: var(--clr-accent-orange); animation: pulse 1s ease infinite; } +.api-status--done i { color: #4fd17c; } +.api-status--error i { color: #e57161; } + +@keyframes pulse { + 0%, 100% { opacity: 1; } + 50% { opacity: 0.3; } +} diff --git a/css/webfonts/fa-brands-400.ttf b/css/webfonts/fa-brands-400.ttf new file mode 100644 index 0000000..5ce65d5 --- /dev/null +++ b/css/webfonts/fa-brands-400.ttf Binary files differ diff --git a/css/webfonts/fa-brands-400.woff2 b/css/webfonts/fa-brands-400.woff2 new file mode 100644 index 0000000..76fbd53 --- /dev/null +++ b/css/webfonts/fa-brands-400.woff2 Binary files differ diff --git a/css/webfonts/fa-duotone-900.ttf b/css/webfonts/fa-duotone-900.ttf new file mode 100644 index 0000000..36b99b2 --- /dev/null +++ b/css/webfonts/fa-duotone-900.ttf Binary files differ diff --git a/css/webfonts/fa-duotone-900.woff2 b/css/webfonts/fa-duotone-900.woff2 new file mode 100644 index 0000000..84ece20 --- /dev/null +++ b/css/webfonts/fa-duotone-900.woff2 Binary files differ diff --git a/css/webfonts/fa-light-300.ttf b/css/webfonts/fa-light-300.ttf new file mode 100644 index 0000000..d93f252 --- /dev/null +++ b/css/webfonts/fa-light-300.ttf Binary files differ diff --git a/css/webfonts/fa-light-300.woff2 b/css/webfonts/fa-light-300.woff2 new file mode 100644 index 0000000..1f5e395 --- /dev/null +++ b/css/webfonts/fa-light-300.woff2 Binary files differ diff --git a/css/webfonts/fa-regular-400.ttf b/css/webfonts/fa-regular-400.ttf new file mode 100644 index 0000000..3f6ddf7 --- /dev/null +++ b/css/webfonts/fa-regular-400.ttf Binary files differ diff --git a/css/webfonts/fa-regular-400.woff2 b/css/webfonts/fa-regular-400.woff2 new file mode 100644 index 0000000..377777b --- /dev/null +++ b/css/webfonts/fa-regular-400.woff2 Binary files differ diff --git a/css/webfonts/fa-sharp-light-300.ttf b/css/webfonts/fa-sharp-light-300.ttf new file mode 100644 index 0000000..37d920a --- /dev/null +++ b/css/webfonts/fa-sharp-light-300.ttf Binary files differ diff --git a/css/webfonts/fa-sharp-light-300.woff2 b/css/webfonts/fa-sharp-light-300.woff2 new file mode 100644 index 0000000..0e1fc63 --- /dev/null +++ b/css/webfonts/fa-sharp-light-300.woff2 Binary files differ diff --git a/css/webfonts/fa-sharp-regular-400.ttf b/css/webfonts/fa-sharp-regular-400.ttf new file mode 100644 index 0000000..1b2af50 --- /dev/null +++ b/css/webfonts/fa-sharp-regular-400.ttf Binary files differ diff --git a/css/webfonts/fa-sharp-regular-400.woff2 b/css/webfonts/fa-sharp-regular-400.woff2 new file mode 100644 index 0000000..5973996 --- /dev/null +++ b/css/webfonts/fa-sharp-regular-400.woff2 Binary files differ diff --git a/css/webfonts/fa-sharp-solid-900.ttf b/css/webfonts/fa-sharp-solid-900.ttf new file mode 100644 index 0000000..f93a203 --- /dev/null +++ b/css/webfonts/fa-sharp-solid-900.ttf Binary files differ diff --git a/css/webfonts/fa-sharp-solid-900.woff2 b/css/webfonts/fa-sharp-solid-900.woff2 new file mode 100644 index 0000000..86f55d5 --- /dev/null +++ b/css/webfonts/fa-sharp-solid-900.woff2 Binary files differ diff --git a/css/webfonts/fa-solid-900.ttf b/css/webfonts/fa-solid-900.ttf new file mode 100644 index 0000000..875b833 --- /dev/null +++ b/css/webfonts/fa-solid-900.ttf Binary files differ diff --git a/css/webfonts/fa-solid-900.woff2 b/css/webfonts/fa-solid-900.woff2 new file mode 100644 index 0000000..0fdabda --- /dev/null +++ b/css/webfonts/fa-solid-900.woff2 Binary files differ diff --git a/css/webfonts/fa-thin-100.ttf b/css/webfonts/fa-thin-100.ttf new file mode 100644 index 0000000..af843ba --- /dev/null +++ b/css/webfonts/fa-thin-100.ttf Binary files differ diff --git a/css/webfonts/fa-thin-100.woff2 b/css/webfonts/fa-thin-100.woff2 new file mode 100644 index 0000000..499bb5b --- /dev/null +++ b/css/webfonts/fa-thin-100.woff2 Binary files differ diff --git a/css/webfonts/fa-v4compatibility.ttf b/css/webfonts/fa-v4compatibility.ttf new file mode 100644 index 0000000..5807850 --- /dev/null +++ b/css/webfonts/fa-v4compatibility.ttf Binary files differ diff --git a/css/webfonts/fa-v4compatibility.woff2 b/css/webfonts/fa-v4compatibility.woff2 new file mode 100644 index 0000000..104b82a --- /dev/null +++ b/css/webfonts/fa-v4compatibility.woff2 Binary files differ diff --git a/design2clothes.pen b/design2clothes.pen new file mode 100644 index 0000000..2ee03c9 --- /dev/null +++ b/design2clothes.pen @@ -0,0 +1,3167 @@ +{ + "version": "2.8", + "children": [ + { + "type": "frame", + "id": "bi8Au", + "x": -1, + "y": -1, + "name": "1.0 Dashboard", + "clip": true, + "width": 1440, + "height": 1811, + "fill": "#121212", + "layout": "vertical", + "gap": 20, + "padding": 24, + "children": [ + { + "type": "frame", + "id": "gcBFx", + "name": "topbar", + "width": "fill_container", + "height": 72, + "padding": [ + 0, + 4 + ], + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "NAquW", + "name": "brand", + "fill": "#F2F2F2", + "textGrowth": "fixed-width-height", + "width": 300, + "height": 36, + "content": "Design2Clothes", + "fontFamily": "Inter", + "fontSize": 34, + "fontWeight": "700" + }, + { + "type": "frame", + "id": "c8Epb", + "name": "cta", + "width": 166, + "height": 46, + "fill": "#FF6A00", + "cornerRadius": 23, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "wAVgA", + "name": "ctaText", + "fill": "#121212", + "textGrowth": "fixed-width-height", + "width": 104, + "height": 20, + "content": "New Project", + "fontFamily": "Inter", + "fontSize": 16, + "fontWeight": "700" + } + ] + } + ] + }, + { + "type": "frame", + "id": "wpBoO", + "name": "dashRow", + "width": "fill_container", + "height": 180, + "gap": 16, + "children": [ + { + "type": "frame", + "id": "8zkjB", + "name": "shortcutCard", + "width": 288, + "height": "fill_container", + "fill": "#1B1B1B", + "cornerRadius": 18, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#2C2C2C" + }, + "layout": "vertical", + "gap": 10, + "padding": 16, + "children": [ + { + "type": "text", + "id": "Lq6xf", + "name": "shortTitle", + "fill": "#F2F2F2", + "textGrowth": "fixed-width-height", + "width": 180, + "height": 24, + "content": "Quick Access", + "fontFamily": "Inter", + "fontSize": 20, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "htExT", + "name": "assetBtn", + "width": "fill_container", + "height": 44, + "fill": "#6F2CFF", + "cornerRadius": 22, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "mKNee", + "name": "assetBtnText", + "fill": "#F7F2FF", + "textGrowth": "fixed-width-height", + "width": 94, + "height": 18, + "content": "Asset Library", + "fontFamily": "Inter", + "fontSize": 14, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "YNXpj", + "name": "newBtn", + "width": "fill_container", + "height": 44, + "fill": "#242424", + "cornerRadius": 22, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#3A3A3A" + }, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "Ik8dn", + "name": "newBtnText", + "fill": "#D9D9D9", + "textGrowth": "fixed-width-height", + "width": 84, + "height": 18, + "content": "Projects List", + "fontFamily": "Inter", + "fontSize": 14, + "fontWeight": "600" + } + ] + } + ] + }, + { + "type": "frame", + "id": "ilFL3", + "name": "projectInfo", + "width": "fill_container", + "height": "fill_container", + "fill": "#1B1B1B", + "cornerRadius": 18, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#2C2C2C" + }, + "layout": "vertical", + "gap": 10, + "padding": 16, + "children": [ + { + "type": "text", + "id": "4xiYT", + "name": "projectLabel", + "fill": "#AFAFAF", + "textGrowth": "fixed-width-height", + "width": 140, + "height": 18, + "content": "Current Project", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "j9gpw", + "name": "titleRow", + "width": "fill_container", + "height": 34, + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "rYVA4", + "name": "titleEditable", + "fill": "#F2F2F2", + "textGrowth": "fixed-width-height", + "width": 477, + "height": 34, + "content": "ThreadVision SS26 Capsule", + "fontFamily": "Inter", + "fontSize": 30, + "fontWeight": "700" + }, + { + "type": "frame", + "id": "yTNPD", + "name": "editBtn", + "width": 34, + "height": 34, + "fill": "#2A2A2A", + "cornerRadius": 17, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#3A3A3A" + }, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "fN8ub", + "name": "editIcon", + "width": 16, + "height": 16, + "iconFontName": "pencil", + "iconFontFamily": "lucide", + "fill": "#DADADA" + } + ] + } + ] + }, + { + "type": "text", + "id": "BTqx2", + "name": "projectBrief", + "fill": "#B8B8B8", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "AI-assisted fashion mockup workflow for mapping 2D graphics onto 3D garment avatars. Focus: oversized tee and hoodie variants for portfolio-ready exports.", + "lineHeight": 1.45, + "fontFamily": "Inter", + "fontSize": 14, + "fontWeight": "500" + } + ] + } + ] + }, + { + "type": "frame", + "id": "c72ue", + "name": "canvasShell", + "width": "fill_container", + "height": 825, + "gap": 16, + "children": [ + { + "type": "frame", + "id": "D4oMO", + "name": "left", + "width": 290, + "height": 827, + "fill": "#1B1B1B", + "cornerRadius": 18, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#2C2C2C" + }, + "layout": "vertical", + "gap": 12, + "padding": 16, + "children": [ + { + "type": "text", + "id": "7rHkj", + "name": "leftTitle", + "fill": "#F2F2F2", + "textGrowth": "fixed-width-height", + "width": 120, + "height": 24, + "content": "Assets", + "fontFamily": "Inter", + "fontSize": 20, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "ikQ4A", + "name": "leftTabs", + "width": "fill_container", + "height": 36, + "gap": 8, + "children": [ + { + "type": "frame", + "id": "NdBam", + "name": "tab1", + "width": "fill_container", + "height": "fill_container", + "fill": "#6F2CFF", + "cornerRadius": 18, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "vK8vK", + "name": "tab1Text", + "fill": "#F7F2FF", + "textGrowth": "fixed-width-height", + "width": 56, + "height": 16, + "content": "Uploads", + "textAlign": "center", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "SF7NJ", + "name": "tab2", + "width": "fill_container", + "height": "fill_container", + "fill": "#262626", + "cornerRadius": 18, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "2ldX8", + "name": "tab2Text", + "fill": "#BBBBBB", + "textGrowth": "fixed-width-height", + "width": 58, + "height": 16, + "content": "Patterns", + "textAlign": "center", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "Z1f4V", + "name": "tab3", + "width": "fill_container", + "height": "fill_container", + "fill": "#262626", + "cornerRadius": 18, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "XPEVK", + "name": "tab3Text", + "fill": "#BBBBBB", + "textGrowth": "fixed-width-height", + "width": 54, + "height": 16, + "content": "Graphics", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "600" + } + ] + } + ] + }, + { + "type": "frame", + "id": "R2GYT", + "name": "uploadDrop", + "width": "fill_container", + "height": 120, + "fill": "#474747ff", + "cornerRadius": 14, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#393939" + }, + "layout": "vertical", + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "i7WdH", + "name": "uploadText", + "fill": "#A6A6A6", + "textGrowth": "fixed-width-height", + "width": 180, + "height": 36, + "content": "Drop your designs in .png, .jpg, .svg here", + "textAlign": "center", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "zog7T", + "name": "assetList", + "width": "fill_container", + "height": 199, + "layout": "vertical", + "gap": 8, + "children": [ + { + "type": "frame", + "id": "8GWaZ", + "name": "a1", + "width": "fill_container", + "height": 54, + "fill": "#242424", + "cornerRadius": 10, + "padding": [ + 0, + 12 + ], + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "lKUYV", + "name": "a1t", + "fill": "#D8D8D8", + "textGrowth": "fixed-width-height", + "width": 140, + "height": 16, + "content": "Logo_Brandmark.svg", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "500" + }, + { + "type": "text", + "id": "kzk6o", + "name": "a1s", + "fill": "#A0A0A0", + "textGrowth": "fixed-width-height", + "width": 26, + "height": 14, + "content": "SVG", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "dDyUI", + "name": "a2", + "width": "fill_container", + "height": 54, + "fill": "#242424", + "cornerRadius": 10, + "padding": [ + 0, + 12 + ], + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "uFnIs", + "name": "a2t", + "fill": "#D8D8D8", + "textGrowth": "fixed-width-height", + "width": 120, + "height": 16, + "content": "Tiger_Print.png", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "500" + }, + { + "type": "text", + "id": "7HI1m", + "name": "a2s", + "fill": "#A0A0A0", + "textGrowth": "fixed-width-height", + "width": 26, + "height": 14, + "content": "PNG", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "8KGXL", + "name": "a3", + "width": "fill_container", + "height": 54, + "fill": "#242424", + "cornerRadius": 10, + "padding": [ + 0, + 12 + ], + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "wdvvi", + "name": "a3t", + "fill": "#D8D8D8", + "textGrowth": "fixed-width-height", + "width": 130, + "height": 16, + "content": "Floral_Allover.jpg", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "500" + }, + { + "type": "text", + "id": "4jJR3", + "name": "a3s", + "fill": "#A0A0A0", + "textGrowth": "fixed-width-height", + "width": 24, + "height": 14, + "content": "JPG", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "600" + } + ] + } + ] + }, + { + "type": "frame", + "id": "MfT77", + "name": "right", + "width": "fill_container", + "height": 776, + "fill": "#1B1B1B", + "cornerRadius": 18, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#2C2C2C" + }, + "layout": "vertical", + "gap": 12, + "padding": 16, + "children": [ + { + "type": "text", + "id": "b3hr5", + "name": "rightTitle", + "fill": "#F2F2F2", + "textGrowth": "fixed-width-height", + "width": 130, + "height": 24, + "content": "Inspector", + "fontFamily": "Inter", + "fontSize": 20, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "cB2hm", + "name": "modelPanel", + "width": "fill_container", + "height": 208, + "fill": "#242424", + "cornerRadius": 12, + "layout": "vertical", + "gap": 10, + "padding": 12, + "children": [ + { + "type": "text", + "id": "Zl9IO", + "name": "modelHead", + "fill": "#F0F0F0", + "textGrowth": "fixed-width-height", + "width": 140, + "height": 18, + "content": "Model Controls", + "fontFamily": "Inter", + "fontSize": 14, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "WcqzM", + "name": "modelTabs", + "width": "fill_container", + "height": 36, + "gap": 8, + "children": [ + { + "type": "frame", + "id": "bjUVW", + "name": "tabCustom", + "width": "fill_container", + "height": "fill_container", + "fill": "#6F2CFF", + "cornerRadius": 18, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#6F2CFF" + }, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "bmqeO", + "name": "tabCustomText", + "fill": "#F7F2FF", + "textGrowth": "fixed-width-height", + "width": 46, + "height": 16, + "content": "Custom", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "3o4Sx", + "name": "tabPredefined", + "width": "fill_container", + "height": "fill_container", + "fill": "#1A1A1A", + "cornerRadius": 18, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#363636" + }, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "E66Kn", + "name": "tabPredefinedText", + "fill": "#BBBBBB", + "textGrowth": "fixed-width-height", + "width": 72, + "height": 16, + "content": "Predefined", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "600" + } + ] + } + ] + }, + { + "type": "frame", + "id": "MxINl", + "name": "customPromptField", + "width": "fill_container", + "height": 44, + "fill": "#1A1A1A", + "cornerRadius": 10, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#363636" + }, + "padding": [ + 0, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "kNrlF", + "name": "customPromptText", + "fill": "#8E8E8E", + "textGrowth": "fixed-width-height", + "width": 224, + "height": 16, + "content": "Prompt: editorial female model, hands in pockets", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "kzEk1", + "name": "customPoseSelect", + "width": "fill_container", + "height": 44, + "fill": "#1A1A1A", + "cornerRadius": 10, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#363636" + }, + "padding": [ + 0, + 12 + ], + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "V2sg4", + "name": "customPoseText", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 124, + "height": 16, + "content": "Pose: Front / 3-4 / Side", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + }, + { + "type": "icon_font", + "id": "cHnEt", + "name": "customPoseChevron", + "width": 16, + "height": 16, + "iconFontName": "chevrons-up-down", + "iconFontFamily": "lucide", + "fill": "#AFAFAF" + } + ] + } + ] + }, + { + "type": "frame", + "id": "2HI56", + "name": "garmentPanel", + "width": "fill_container", + "height": 200, + "fill": "#242424", + "cornerRadius": 12, + "layout": "vertical", + "gap": 10, + "padding": 12, + "children": [ + { + "type": "text", + "id": "dw7kP", + "name": "garmentHead", + "fill": "#F0F0F0", + "textGrowth": "fixed-width-height", + "width": 150, + "height": 18, + "content": "Garment Controls", + "fontFamily": "Inter", + "fontSize": 14, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "kOilK", + "name": "fabricRow", + "width": "fill_container", + "height": 40, + "fill": "#1A1A1A", + "cornerRadius": 10, + "padding": [ + 0, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "a6M0T", + "name": "fabricText", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 210, + "height": 16, + "content": "Fabric: Cotton / Jersey / Heavyweight", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "am1ax", + "name": "colorRow", + "width": "fill_container", + "height": 40, + "fill": "#1A1A1A", + "cornerRadius": 10, + "padding": [ + 0, + 10 + ], + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "aKg6v", + "name": "colorText", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 70, + "height": 16, + "content": "Base colour", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + }, + { + "type": "ellipse", + "id": "gbTeP", + "name": "colorSwatch", + "fill": "#3A3A3A", + "width": 20, + "height": 20 + } + ] + }, + { + "type": "frame", + "id": "Ap5fS", + "name": "typeRow", + "width": "fill_container", + "height": 40, + "fill": "#1A1A1A", + "cornerRadius": 10, + "padding": [ + 0, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "o7Mza", + "name": "typeText", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 210, + "height": 16, + "content": "Type: Oversized Tee / Slim Fit / Hoodie", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + } + ] + }, + { + "type": "frame", + "id": "7WhTy", + "name": "artPanel", + "width": "fill_container", + "height": 219, + "fill": "#242424", + "cornerRadius": 12, + "layout": "vertical", + "gap": 10, + "padding": 12, + "children": [ + { + "type": "text", + "id": "l6wv9", + "name": "artHead", + "fill": "#F0F0F0", + "textGrowth": "fixed-width-height", + "width": 130, + "height": 18, + "content": "Artwork Controls", + "fontFamily": "Inter", + "fontSize": 14, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "uT5Ld", + "name": "scaleRow", + "width": "fill_container", + "height": 34, + "fill": "#1A1A1A", + "cornerRadius": 8, + "padding": [ + 0, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "D3Hin", + "name": "scaleText", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 80, + "height": 14, + "content": "Scale 85%", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "W9rYL", + "name": "rotRow", + "width": "fill_container", + "height": 34, + "fill": "#1A1A1A", + "cornerRadius": 8, + "padding": [ + 0, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "YCzKU", + "name": "rotText", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 90, + "height": 14, + "content": "Rotation 12Β°", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "80AfW", + "name": "opaRow", + "width": "fill_container", + "height": 34, + "fill": "#1A1A1A", + "cornerRadius": 8, + "padding": [ + 0, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "Z3s9C", + "name": "opaText", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 90, + "height": 14, + "content": "Opacity 82%", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "F4YhW", + "name": "blendRow", + "width": "fill_container", + "height": 34, + "fill": "#1A1A1A", + "cornerRadius": 8, + "padding": [ + 0, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "iJ0jo", + "name": "blendText", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 210, + "height": 14, + "content": "Blending: Print / Multiply / Soft Light", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + } + ] + }, + { + "type": "frame", + "id": "8Fu8d", + "name": "modelGenBtn", + "width": "fill_container", + "height": 38, + "fill": "#6F2CFF", + "cornerRadius": 19, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "S9rq4", + "name": "modelGenText", + "fill": "#F7F2FF", + "textGrowth": "fixed-width-height", + "width": 149, + "height": 16, + "content": "Generate Model", + "textAlign": "center", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "600" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "7vJLN", + "name": "center", + "width": "fill_container", + "height": 828, + "fill": "#171717", + "cornerRadius": 18, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#2C2C2C" + }, + "layout": "vertical", + "gap": 12, + "padding": 16, + "children": [ + { + "type": "text", + "id": "D6fEW", + "name": "centerTitle", + "fill": "#F2F2F2", + "textGrowth": "fixed-width-height", + "width": 220, + "height": 28, + "content": "Design Canvas", + "fontFamily": "Inter", + "fontSize": 24, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "tCnb8", + "name": "viewport", + "width": "fill_container", + "height": 620, + "fill": "#101010", + "cornerRadius": 14, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#2E2E2E" + }, + "layout": "vertical", + "gap": 10, + "padding": [ + 20, + 0 + ], + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "Wi3MZ", + "name": "avatar", + "fill": "#2A2A2A", + "width": 250, + "height": 250 + }, + { + "type": "rectangle", + "cornerRadius": 24, + "id": "yszDp", + "name": "garment", + "fill": "#3A3A3A", + "width": 280, + "height": 190 + }, + { + "type": "rectangle", + "cornerRadius": 8, + "id": "uLT7W", + "name": "artwork", + "opacity": 0.82, + "fill": "#6F2CFF", + "width": 160, + "height": 100 + }, + { + "type": "text", + "id": "skNEj", + "name": "vpLabel", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 190, + "height": 18, + "content": "AI Texture-Mapped Preview", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "fhFpU", + "name": "applyPromptWrap", + "width": "fill_container", + "height": 66, + "layout": "vertical", + "gap": 6, + "children": [ + { + "type": "text", + "id": "ZjvYN", + "name": "applyPromptLabel", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 44, + "height": 16, + "content": "Prompt", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "qP9gD", + "name": "applyPromptField", + "width": "fill_container", + "height": 44, + "fill": "#1A1A1A", + "cornerRadius": 10, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#363636" + }, + "padding": [ + 0, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "4Pgo6", + "name": "applyPromptText", + "fill": "#8E8E8E", + "textGrowth": "fixed-width-height", + "width": 278, + "height": 16, + "content": "Make print placement sharper and aligned to chest", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + } + ] + }, + { + "type": "frame", + "id": "jnom6", + "name": "centerActions", + "width": "fill_container", + "height": 48, + "gap": 10, + "children": [ + { + "type": "frame", + "id": "f19I5", + "name": "applyBtn", + "width": 160, + "height": "fill_container", + "fill": "#FF6A00", + "cornerRadius": 24, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "R4QY8", + "name": "applyText", + "fill": "#121212", + "textGrowth": "fixed-width-height", + "width": 110, + "height": 19, + "content": "Apply Artwork", + "textAlign": "center", + "fontFamily": "Inter", + "fontSize": 14, + "fontWeight": "700" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "Akjxe", + "name": "bottomExportBar", + "width": 340, + "height": 303, + "fill": "#1B1B1B", + "cornerRadius": 18, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#2C2C2C" + }, + "layout": "vertical", + "gap": 8, + "padding": [ + 12, + 16 + ], + "children": [ + { + "type": "text", + "id": "fwr6e", + "name": "expHead", + "fill": "#F0F0F0", + "textGrowth": "fixed-width-height", + "width": 60, + "height": 18, + "content": "Export", + "fontFamily": "Inter", + "fontSize": 14, + "fontWeight": "600" + }, + { + "type": "text", + "id": "0vkmJ", + "name": "expMeta", + "fill": "#A6A6A6", + "textGrowth": "fixed-width-height", + "width": "fill_container", + "height": 30, + "content": "High-resolution render for portfolio and social.", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + }, + { + "type": "frame", + "id": "oV6dF", + "name": "resolutionDropdown", + "clip": true, + "width": "fill_container", + "fill": "#1A1A1A", + "cornerRadius": 10, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#363636" + }, + "layout": "vertical", + "children": [ + { + "type": "frame", + "id": "pRf80", + "name": "resHeader", + "width": "fill_container", + "height": 36, + "padding": [ + 0, + 10 + ], + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "grZYX", + "name": "resLabel", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 70, + "height": 14, + "content": "Resolution", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + }, + { + "type": "text", + "id": "4Incf", + "name": "resValue", + "fill": "#D9D9D9", + "textGrowth": "fixed-width-height", + "width": 58, + "height": 14, + "content": "4K PNG βΎ", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "9fEXc", + "name": "opt1", + "width": "fill_container", + "height": 30, + "fill": "#202020", + "padding": [ + 0, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "6k9UT", + "name": "opt1t", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 130, + "height": 14, + "content": "2K PNG (2048x2048)", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "D7cdX", + "name": "opt2", + "width": "fill_container", + "height": 30, + "fill": "#202020", + "padding": [ + 0, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "EBLVK", + "name": "opt2t", + "fill": "#F0F0F0", + "textGrowth": "fixed-width-height", + "width": 130, + "height": 14, + "content": "4K PNG (4096x4096)", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "psGlg", + "name": "opt3", + "width": "fill_container", + "height": 30, + "fill": "#202020", + "padding": [ + 0, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "R4hG1", + "name": "opt3t", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 150, + "height": 14, + "content": "1080x1350 (Instagram)", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "nSbxe", + "name": "opt4", + "width": "fill_container", + "height": 30, + "fill": "#202020", + "padding": [ + 0, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "DXcH5", + "name": "opt4t", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 110, + "height": 14, + "content": "1080x1920 (Story)", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + } + ] + }, + { + "type": "frame", + "id": "fovF9", + "name": "expBtn", + "width": "fill_container", + "height": 36, + "fill": "#FF6A00", + "cornerRadius": 18, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "qwwDe", + "name": "expBtnText", + "fill": "#121212", + "textGrowth": "fixed-width-height", + "width": 42, + "height": 16, + "content": "Export", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "700" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "ahTfs", + "x": 1559, + "y": -1, + "name": "1.1 Dashboard", + "clip": true, + "width": 1440, + "height": 1811, + "fill": "#121212", + "layout": "vertical", + "gap": 20, + "padding": 24, + "children": [ + { + "type": "frame", + "id": "JAPiZ", + "name": "topbar", + "width": "fill_container", + "height": 72, + "padding": [ + 0, + 4 + ], + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "TiEYi", + "name": "brand", + "fill": "#F2F2F2", + "textGrowth": "fixed-width-height", + "width": 300, + "height": 36, + "content": "Design2Clothes", + "fontFamily": "Inter", + "fontSize": 34, + "fontWeight": "700" + }, + { + "type": "frame", + "id": "iOciG", + "name": "cta", + "width": 166, + "height": 46, + "fill": "#FF6A00", + "cornerRadius": 23, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "Kqo8W", + "name": "ctaText", + "fill": "#121212", + "textGrowth": "fixed-width-height", + "width": 104, + "height": 20, + "content": "New Project", + "fontFamily": "Inter", + "fontSize": 16, + "fontWeight": "700" + } + ] + } + ] + }, + { + "type": "frame", + "id": "X9yNv", + "name": "dashRow", + "width": "fill_container", + "height": 180, + "gap": 16, + "children": [ + { + "type": "frame", + "id": "ZXsNd", + "name": "shortcutCard", + "width": 288, + "height": "fill_container", + "fill": "#1B1B1B", + "cornerRadius": 18, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#2C2C2C" + }, + "layout": "vertical", + "gap": 10, + "padding": 16, + "children": [ + { + "type": "text", + "id": "lNue3", + "name": "shortTitle", + "fill": "#F2F2F2", + "textGrowth": "fixed-width-height", + "width": 180, + "height": 24, + "content": "Quick Access", + "fontFamily": "Inter", + "fontSize": 20, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "cVJl5", + "name": "assetBtn", + "width": "fill_container", + "height": 44, + "fill": "#6F2CFF", + "cornerRadius": 22, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "dYeHK", + "name": "assetBtnText", + "fill": "#F7F2FF", + "textGrowth": "fixed-width-height", + "width": 94, + "height": 18, + "content": "Asset Library", + "fontFamily": "Inter", + "fontSize": 14, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "968Pc", + "name": "newBtn", + "width": "fill_container", + "height": 44, + "fill": "#242424", + "cornerRadius": 22, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#3A3A3A" + }, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "UnnU3", + "name": "newBtnText", + "fill": "#D9D9D9", + "textGrowth": "fixed-width-height", + "width": 84, + "height": 18, + "content": "Projects List", + "fontFamily": "Inter", + "fontSize": 14, + "fontWeight": "600" + } + ] + } + ] + }, + { + "type": "frame", + "id": "iTjCJ", + "name": "projectInfo", + "width": "fill_container", + "height": "fill_container", + "fill": "#1B1B1B", + "cornerRadius": 18, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#2C2C2C" + }, + "layout": "vertical", + "gap": 10, + "padding": 16, + "children": [ + { + "type": "text", + "id": "kZ3If", + "name": "projectLabel", + "fill": "#AFAFAF", + "textGrowth": "fixed-width-height", + "width": 140, + "height": 18, + "content": "Current Project", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "dPe3z", + "name": "titleRow", + "width": "fill_container", + "height": 34, + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "r5Luz", + "name": "titleEditable", + "fill": "#F2F2F2", + "textGrowth": "fixed-width-height", + "width": 477, + "height": 34, + "content": "ThreadVision SS26 Capsule", + "fontFamily": "Inter", + "fontSize": 30, + "fontWeight": "700" + }, + { + "type": "frame", + "id": "5j3nO", + "name": "editBtn", + "width": 34, + "height": 34, + "fill": "#2A2A2A", + "cornerRadius": 17, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#3A3A3A" + }, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "icon_font", + "id": "jLNN9", + "name": "editIcon", + "width": 16, + "height": 16, + "iconFontName": "pencil", + "iconFontFamily": "lucide", + "fill": "#DADADA" + } + ] + } + ] + }, + { + "type": "text", + "id": "E4Vr9", + "name": "projectBrief", + "fill": "#B8B8B8", + "textGrowth": "fixed-width", + "width": "fill_container", + "content": "AI-assisted fashion mockup workflow for mapping 2D graphics onto 3D garment avatars. Focus: oversized tee and hoodie variants for portfolio-ready exports.", + "lineHeight": 1.45, + "fontFamily": "Inter", + "fontSize": 14, + "fontWeight": "500" + } + ] + } + ] + }, + { + "type": "frame", + "id": "DFpD9", + "name": "canvasShell", + "width": "fill_container", + "height": 921, + "gap": 16, + "children": [ + { + "type": "frame", + "id": "nIRIL", + "name": "left", + "width": 290, + "height": 1378, + "fill": "#1B1B1B", + "cornerRadius": 18, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#2C2C2C" + }, + "layout": "vertical", + "gap": 12, + "padding": 16, + "children": [ + { + "type": "text", + "id": "Q2gmB", + "name": "leftTitle", + "fill": "#F2F2F2", + "textGrowth": "fixed-width-height", + "width": 120, + "height": 24, + "content": "Assets", + "fontFamily": "Inter", + "fontSize": 20, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "f9jhA", + "name": "leftTabs", + "width": "fill_container", + "height": 36, + "gap": 8, + "children": [ + { + "type": "frame", + "id": "f4Dyv", + "name": "tab1", + "width": "fill_container", + "height": "fill_container", + "fill": "#6F2CFF", + "cornerRadius": 18, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "mtRhL", + "name": "tab1Text", + "fill": "#F7F2FF", + "textGrowth": "fixed-width-height", + "width": 56, + "height": 16, + "content": "Uploads", + "textAlign": "center", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "EaTsp", + "name": "tab2", + "width": "fill_container", + "height": "fill_container", + "fill": "#262626", + "cornerRadius": 18, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "1rSxd", + "name": "tab2Text", + "fill": "#BBBBBB", + "textGrowth": "fixed-width-height", + "width": 58, + "height": 16, + "content": "Patterns", + "textAlign": "center", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "UnrLb", + "name": "tab3", + "width": "fill_container", + "height": "fill_container", + "fill": "#262626", + "cornerRadius": 18, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "xMv1J", + "name": "tab3Text", + "fill": "#BBBBBB", + "textGrowth": "fixed-width-height", + "width": 54, + "height": 16, + "content": "Graphics", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "600" + } + ] + } + ] + }, + { + "type": "frame", + "id": "N2nK0", + "name": "uploadDrop", + "width": "fill_container", + "height": 120, + "fill": "#474747ff", + "cornerRadius": 14, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#393939" + }, + "layout": "vertical", + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "oPfup", + "name": "uploadText", + "fill": "#A6A6A6", + "textGrowth": "fixed-width-height", + "width": 180, + "height": 36, + "content": "Drop your designs in .png, .jpg, .svg here", + "textAlign": "center", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "3v2am", + "name": "assetList", + "width": "fill_container", + "height": 198, + "layout": "vertical", + "gap": 8, + "children": [ + { + "type": "frame", + "id": "cNNhU", + "name": "a1", + "width": "fill_container", + "height": 54, + "fill": "#242424", + "cornerRadius": 10, + "padding": [ + 0, + 12 + ], + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "UIzbB", + "name": "a1t", + "fill": "#D8D8D8", + "textGrowth": "fixed-width-height", + "width": 140, + "height": 16, + "content": "Logo_Brandmark.svg", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "500" + }, + { + "type": "text", + "id": "JMTOh", + "name": "a1s", + "fill": "#A0A0A0", + "textGrowth": "fixed-width-height", + "width": 26, + "height": 14, + "content": "SVG", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "oFTZ7", + "name": "a2", + "width": "fill_container", + "height": 54, + "fill": "#242424", + "cornerRadius": 10, + "padding": [ + 0, + 12 + ], + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "OVwim", + "name": "a2t", + "fill": "#D8D8D8", + "textGrowth": "fixed-width-height", + "width": 120, + "height": 16, + "content": "Tiger_Print.png", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "500" + }, + { + "type": "text", + "id": "ENWhi", + "name": "a2s", + "fill": "#A0A0A0", + "textGrowth": "fixed-width-height", + "width": 26, + "height": 14, + "content": "PNG", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "mfG8G", + "name": "a3", + "width": "fill_container", + "height": 54, + "fill": "#242424", + "cornerRadius": 10, + "padding": [ + 0, + 12 + ], + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "lPM8J", + "name": "a3t", + "fill": "#D8D8D8", + "textGrowth": "fixed-width-height", + "width": 130, + "height": 16, + "content": "Floral_Allover.jpg", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "500" + }, + { + "type": "text", + "id": "lQsHj", + "name": "a3s", + "fill": "#A0A0A0", + "textGrowth": "fixed-width-height", + "width": 24, + "height": 14, + "content": "JPG", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "600" + } + ] + } + ] + }, + { + "type": "frame", + "id": "cPBy4", + "name": "right", + "width": "fill_container", + "height": 920, + "fill": "#1B1B1B", + "cornerRadius": 18, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#2C2C2C" + }, + "layout": "vertical", + "gap": 12, + "padding": 16, + "children": [ + { + "type": "text", + "id": "bvJSA", + "name": "rightTitle", + "fill": "#F2F2F2", + "textGrowth": "fixed-width-height", + "width": 130, + "height": 24, + "content": "Inspector", + "fontFamily": "Inter", + "fontSize": 20, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "RqQKQ", + "name": "modelPanel", + "width": "fill_container", + "height": 365, + "fill": "#242424", + "cornerRadius": 12, + "layout": "vertical", + "gap": 10, + "padding": 12, + "children": [ + { + "type": "text", + "id": "uMqSb", + "name": "modelHead", + "fill": "#F0F0F0", + "textGrowth": "fixed-width-height", + "width": 140, + "height": 18, + "content": "Model Controls", + "fontFamily": "Inter", + "fontSize": 14, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "hzp4T", + "name": "modelTabs", + "width": "fill_container", + "height": 36, + "gap": 8, + "children": [ + { + "type": "frame", + "id": "v3WGL", + "name": "tabCustom", + "width": "fill_container", + "height": "fill_container", + "fill": "#1A1A1A", + "cornerRadius": 18, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#363636" + }, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "wpVpF", + "name": "tabCustomText", + "fill": "#BBBBBB", + "textGrowth": "fixed-width-height", + "width": 46, + "height": 16, + "content": "Custom", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "TLyiY", + "name": "tabPredefined", + "width": "fill_container", + "height": "fill_container", + "fill": "#6F2CFF", + "cornerRadius": 18, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#6F2CFF" + }, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "xrbDl", + "name": "tabPredefinedText", + "fill": "#F7F2FF", + "textGrowth": "fixed-width-height", + "width": 72, + "height": 16, + "content": "Predefined", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "600" + } + ] + } + ] + }, + { + "type": "frame", + "id": "5eYfZ", + "name": "genderFilter", + "width": "fill_container", + "height": 36, + "gap": 8, + "children": [ + { + "type": "frame", + "id": "3CSnH", + "name": "maleFilter", + "width": "fill_container", + "height": "fill_container", + "fill": "#6F2CFF", + "cornerRadius": 18, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "AQsWe", + "name": "maleFilterText", + "fill": "#F7F2FF", + "textGrowth": "fixed-width-height", + "width": 60, + "height": 16, + "content": "Male", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "jJmSp", + "name": "femaleFilter", + "width": "fill_container", + "height": "fill_container", + "fill": "#1A1A1A", + "cornerRadius": 18, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#363636" + }, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "s3VQi", + "name": "femaleFilterText", + "fill": "#BBBBBB", + "textGrowth": "fixed-width-height", + "width": 70, + "height": 16, + "content": "Female", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "600" + } + ] + } + ] + }, + { + "type": "frame", + "id": "S9T25", + "name": "predefinedOptionsFrame", + "clip": true, + "width": "fill_container", + "height": 155, + "fill": "#1A1A1A", + "cornerRadius": 10, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#363636" + }, + "layout": "vertical", + "children": [ + { + "type": "frame", + "id": "q9z4B", + "name": "modelOptA", + "width": "fill_container", + "height": 31, + "fill": "#242424", + "padding": [ + 0, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "6vyI7", + "name": "modelOptAText", + "fill": "#F0F0F0", + "textGrowth": "fixed-width-height", + "width": 140, + "height": 14, + "content": "30s-black-hoodie-front", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "LAFFM", + "name": "modelOptB", + "width": "fill_container", + "height": 31, + "fill": "#1F1F1F", + "padding": [ + 0, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "cBS38", + "name": "modelOptBText", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 137, + "height": 14, + "content": "30s-black-hoodie-back", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "HqnbE", + "name": "modelOptC", + "width": "fill_container", + "height": 31, + "fill": "#1F1F1F", + "padding": [ + 0, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "mC99o", + "name": "modelOptCText", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 116, + "height": 14, + "content": "30s-white-tee-front", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "9xvup", + "name": "modelOptD", + "width": "fill_container", + "height": 31, + "fill": "#1F1F1F", + "padding": [ + 0, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "dP9Cj", + "name": "modelOptDText", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 113, + "height": 14, + "content": "30s-white-tee-back", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "7boEv", + "name": "modelOptE", + "width": "fill_container", + "height": 31, + "fill": "#1F1F1F", + "padding": [ + 0, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "XmMag", + "name": "modelOptEText", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 147, + "height": 14, + "content": "30s-gray-crewneck-front", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "3xuxY", + "name": "garmentPanel", + "width": "fill_container", + "height": 200, + "fill": "#242424", + "cornerRadius": 12, + "layout": "vertical", + "gap": 10, + "padding": 12, + "children": [ + { + "type": "text", + "id": "kLgXs", + "name": "garmentHead", + "fill": "#F0F0F0", + "textGrowth": "fixed-width-height", + "width": 150, + "height": 18, + "content": "Garment Controls", + "fontFamily": "Inter", + "fontSize": 14, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "zi6CY", + "name": "fabricRow", + "width": "fill_container", + "height": 40, + "fill": "#1A1A1A", + "cornerRadius": 10, + "padding": [ + 0, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "hWsUI", + "name": "fabricText", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 210, + "height": 16, + "content": "Fabric: Cotton / Jersey / Heavyweight", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "rMks1", + "name": "colorRow", + "width": "fill_container", + "height": 40, + "fill": "#1A1A1A", + "cornerRadius": 10, + "padding": [ + 0, + 10 + ], + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "tHxGj", + "name": "colorText", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 70, + "height": 16, + "content": "Base colour", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + }, + { + "type": "ellipse", + "id": "xPj3f", + "name": "colorSwatch", + "fill": "#3A3A3A", + "width": 20, + "height": 20 + } + ] + }, + { + "type": "frame", + "id": "NaLSu", + "name": "typeRow", + "width": "fill_container", + "height": 40, + "fill": "#1A1A1A", + "cornerRadius": 10, + "padding": [ + 0, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "gmjLA", + "name": "typeText", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 210, + "height": 16, + "content": "Type: Oversized Tee / Slim Fit / Hoodie", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + } + ] + }, + { + "type": "frame", + "id": "3t2AW", + "name": "artPanel", + "width": "fill_container", + "height": 219, + "fill": "#242424", + "cornerRadius": 12, + "layout": "vertical", + "gap": 10, + "padding": 12, + "children": [ + { + "type": "text", + "id": "P9Z6F", + "name": "artHead", + "fill": "#F0F0F0", + "textGrowth": "fixed-width-height", + "width": 130, + "height": 18, + "content": "Artwork Controls", + "fontFamily": "Inter", + "fontSize": 14, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "NUI2w", + "name": "scaleRow", + "width": "fill_container", + "height": 34, + "fill": "#1A1A1A", + "cornerRadius": 8, + "padding": [ + 0, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "oMvmn", + "name": "scaleText", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 80, + "height": 14, + "content": "Scale 85%", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "kv497", + "name": "rotRow", + "width": "fill_container", + "height": 34, + "fill": "#1A1A1A", + "cornerRadius": 8, + "padding": [ + 0, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "ANo0T", + "name": "rotText", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 90, + "height": 14, + "content": "Rotation 12Β°", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "a4dQv", + "name": "opaRow", + "width": "fill_container", + "height": 34, + "fill": "#1A1A1A", + "cornerRadius": 8, + "padding": [ + 0, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "YFOfc", + "name": "opaText", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 90, + "height": 14, + "content": "Opacity 82%", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "mOV6u", + "name": "blendRow", + "width": "fill_container", + "height": 34, + "fill": "#1A1A1A", + "cornerRadius": 8, + "padding": [ + 0, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "5tLuB", + "name": "blendText", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 210, + "height": 14, + "content": "Blending: Print / Multiply / Soft Light", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + } + ] + }, + { + "type": "frame", + "id": "EqANG", + "name": "modelGenBtn", + "width": "fill_container", + "height": 38, + "fill": "#6F2CFF", + "cornerRadius": 19, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "RwXN5", + "name": "modelGenText", + "fill": "#F7F2FF", + "textGrowth": "fixed-width-height", + "width": 149, + "height": 16, + "content": "Generate Model", + "textAlign": "center", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "600" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "eWHgk", + "name": "center", + "width": "fill_container", + "height": 919, + "fill": "#171717", + "cornerRadius": 18, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#2C2C2C" + }, + "layout": "vertical", + "gap": 12, + "padding": 16, + "children": [ + { + "type": "text", + "id": "SAMlt", + "name": "centerTitle", + "fill": "#F2F2F2", + "textGrowth": "fixed-width-height", + "width": 220, + "height": 28, + "content": "Design Canvas", + "fontFamily": "Inter", + "fontSize": 24, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "OCX1H", + "name": "viewport", + "width": "fill_container", + "height": 620, + "fill": "#101010", + "cornerRadius": 14, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#2E2E2E" + }, + "layout": "vertical", + "gap": 10, + "padding": [ + 20, + 0 + ], + "alignItems": "center", + "children": [ + { + "type": "ellipse", + "id": "TSOpF", + "name": "avatar", + "fill": "#2A2A2A", + "width": 250, + "height": 250 + }, + { + "type": "rectangle", + "cornerRadius": 24, + "id": "7zz0x", + "name": "garment", + "fill": "#3A3A3A", + "width": 280, + "height": 190 + }, + { + "type": "rectangle", + "cornerRadius": 8, + "id": "zu29G", + "name": "artwork", + "opacity": 0.82, + "fill": "#6F2CFF", + "width": 160, + "height": 100 + }, + { + "type": "text", + "id": "nqOTs", + "name": "vpLabel", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 190, + "height": 18, + "content": "AI Texture-Mapped Preview", + "fontFamily": "Inter", + "fontSize": 13, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "k7Atp", + "name": "applyPromptWrap", + "width": "fill_container", + "height": 66, + "layout": "vertical", + "gap": 6, + "children": [ + { + "type": "text", + "id": "fvqNs", + "name": "applyPromptLabel", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 44, + "height": 16, + "content": "Prompt", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "600" + }, + { + "type": "frame", + "id": "E7ncN", + "name": "applyPromptField", + "width": "fill_container", + "height": 44, + "fill": "#1A1A1A", + "cornerRadius": 10, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#363636" + }, + "padding": [ + 0, + 12 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "posnf", + "name": "applyPromptText", + "fill": "#8E8E8E", + "textGrowth": "fixed-width-height", + "width": 278, + "height": 16, + "content": "Make print placement sharper and aligned to chest", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + } + ] + }, + { + "type": "frame", + "id": "W6Frh", + "name": "centerActions", + "width": "fill_container", + "height": 48, + "gap": 10, + "children": [ + { + "type": "frame", + "id": "JNkFw", + "name": "applyBtn", + "width": 160, + "height": "fill_container", + "fill": "#FF6A00", + "cornerRadius": 24, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "6aXtP", + "name": "applyText", + "fill": "#121212", + "textGrowth": "fixed-width-height", + "width": 110, + "height": 19, + "content": "Apply Artwork", + "textAlign": "center", + "fontFamily": "Inter", + "fontSize": 14, + "fontWeight": "700" + } + ] + } + ] + } + ] + }, + { + "type": "frame", + "id": "Zjo6h", + "name": "bottomExportBar", + "width": 340, + "height": 298, + "fill": "#1B1B1B", + "cornerRadius": 18, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#2C2C2C" + }, + "layout": "vertical", + "gap": 8, + "padding": [ + 12, + 16 + ], + "children": [ + { + "type": "text", + "id": "FqaSG", + "name": "expHead", + "fill": "#F0F0F0", + "textGrowth": "fixed-width-height", + "width": 60, + "height": 18, + "content": "Export", + "fontFamily": "Inter", + "fontSize": 14, + "fontWeight": "600" + }, + { + "type": "text", + "id": "HUYMt", + "name": "expMeta", + "fill": "#A6A6A6", + "textGrowth": "fixed-width-height", + "width": "fill_container", + "height": 30, + "content": "High-resolution render for portfolio and social.", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + }, + { + "type": "frame", + "id": "44tIF", + "name": "resolutionDropdown", + "clip": true, + "width": "fill_container", + "fill": "#1A1A1A", + "cornerRadius": 10, + "stroke": { + "align": "inside", + "thickness": 1, + "fill": "#363636" + }, + "layout": "vertical", + "children": [ + { + "type": "frame", + "id": "xIg8g", + "name": "resHeader", + "width": "fill_container", + "height": 36, + "padding": [ + 0, + 10 + ], + "justifyContent": "space_between", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "VYslF", + "name": "resLabel", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 70, + "height": 14, + "content": "Resolution", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + }, + { + "type": "text", + "id": "jzS89", + "name": "resValue", + "fill": "#D9D9D9", + "textGrowth": "fixed-width-height", + "width": 58, + "height": 14, + "content": "4K PNG βΎ", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "JOr6Y", + "name": "opt1", + "width": "fill_container", + "height": 30, + "fill": "#202020", + "padding": [ + 0, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "Sk2vs", + "name": "opt1t", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 130, + "height": 14, + "content": "2K PNG (2048x2048)", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "PCswA", + "name": "opt2", + "width": "fill_container", + "height": 30, + "fill": "#202020", + "padding": [ + 0, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "vu0Xd", + "name": "opt2t", + "fill": "#F0F0F0", + "textGrowth": "fixed-width-height", + "width": 130, + "height": 14, + "content": "4K PNG (4096x4096)", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "600" + } + ] + }, + { + "type": "frame", + "id": "KcttC", + "name": "opt3", + "width": "fill_container", + "height": 30, + "fill": "#202020", + "padding": [ + 0, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "K5f2U", + "name": "opt3t", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 150, + "height": 14, + "content": "1080x1350 (Instagram)", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + }, + { + "type": "frame", + "id": "FHjXu", + "name": "opt4", + "width": "fill_container", + "height": 30, + "fill": "#202020", + "padding": [ + 0, + 10 + ], + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "m1tr0", + "name": "opt4t", + "fill": "#B8B8B8", + "textGrowth": "fixed-width-height", + "width": 110, + "height": 14, + "content": "1080x1920 (Story)", + "fontFamily": "Inter", + "fontSize": 11, + "fontWeight": "500" + } + ] + } + ] + }, + { + "type": "frame", + "id": "nBiFv", + "name": "expBtn", + "width": "fill_container", + "height": 36, + "fill": "#FF6A00", + "cornerRadius": 18, + "justifyContent": "center", + "alignItems": "center", + "children": [ + { + "type": "text", + "id": "Zjsmr", + "name": "expBtnText", + "fill": "#121212", + "textGrowth": "fixed-width-height", + "width": 42, + "height": 16, + "content": "Export", + "fontFamily": "Inter", + "fontSize": 12, + "fontWeight": "700" + } + ] + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..71a254f --- /dev/null +++ b/index.php @@ -0,0 +1,572 @@ + 'ThreadVision SS26 Capsule', + 'description' => 'AI-assisted fashion mockup workflow for mapping 2D graphics onto 3D garment avatars. Focus: oversized tee and hoodie variants for portfolio-ready exports.', +]; + +// Scan existing uploads for this session +$sessionUploadDir = UPLOAD_DIR . (session_id() ?: 'demo') . '/'; +$uploadedAssets = []; +if (is_dir($sessionUploadDir)) { + foreach (glob($sessionUploadDir . '*') as $f) { + $ext = strtoupper(pathinfo($f, PATHINFO_EXTENSION)); + $uploadedAssets[] = [ + 'name' => basename($f), + 'ext' => $ext, + 'url' => APP_BASE_PATH . '/media/uploads/' . session_id() . '/' . basename($f), + ]; + } +} + +// Predefined models +$predefinedModels = [ + ['id' => 'model_f_front', 'label' => 'Female β Front', 'icon' => 'fa-person-dress'], + ['id' => 'model_f_3q', 'label' => 'Female β 3/4', 'icon' => 'fa-person-dress'], + ['id' => 'model_m_front', 'label' => 'Male β Front', 'icon' => 'fa-person'], + ['id' => 'model_m_3q', 'label' => 'Male β 3/4', 'icon' => 'fa-person'], + ['id' => 'model_m_side', 'label' => 'Male β Side', 'icon' => 'fa-person'], + ['id' => 'model_flat_tee', 'label' => 'Flat β Tee', 'icon' => 'fa-shirt'], + ['id' => 'model_flat_hoodie', 'label' => 'Flat β Hoodie', 'icon' => 'fa-shirt'], +]; +?> + + +
+ + +design2clothes.penDrop your designs in
.png, .jpg, .svg here
Suelta el archivo aquΓ
+