diff --git a/CHANGELOG.md b/CHANGELOG.md index 3fec243..b25e3f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ All notable changes to this project will be documented in this file. +## [1.6.0] - 2026-03-07 + +### Changed +- Replaced franchise card suit icons with the official Cards Forge brand icon across the site and admin panel +- Removed webtech-solutions and unreality1 domain templates, routes, and assets no longer used in this application + ## [1.5.0] - 2026-02-22 ### Added diff --git a/app/Http/Controllers/ChangelogController.php b/app/Http/Controllers/ChangelogController.php index 15c2484..1aab052 100644 --- a/app/Http/Controllers/ChangelogController.php +++ b/app/Http/Controllers/ChangelogController.php @@ -26,10 +26,14 @@ public function index() // Parse changelog into versions $versions = $this->parseChangelog($content); + $rawVersion = config('app_version.version', ''); + // Normalize: strip leading 'v' and trailing status suffix (e.g. v1.6.0-stable → 1.6.0) + $currentVersion = preg_replace('/^v/', '', preg_replace('/-\w+$/', '', $rawVersion)); + return view('changelog', [ 'versions' => $versions, - 'currentVersion' => config('app_config.version'), - 'versionDate' => config('app_config.version_date'), + 'currentVersion' => $currentVersion, + 'versionDate' => config('app_version.release_date'), ]); } diff --git a/app/Http/Controllers/WebtechController.php b/app/Http/Controllers/WebtechController.php deleted file mode 100644 index be0c331..0000000 --- a/app/Http/Controllers/WebtechController.php +++ /dev/null @@ -1,44 +0,0 @@ -passwordReset(RequestPasswordReset::class, ResetPassword::class) ->emailVerification() ->brandName('Cards Forge') + ->brandLogo(asset('images/logo.svg')) + ->brandLogoHeight('2rem') ->colors([ 'primary' => Color::Amber, ]) - ->icons([ - 'suit' => resource_path('svg'), - ]) ->discoverResources(in: app_path('Filament/Resources'), for: 'App\\Filament\\Resources') ->discoverPages(in: app_path('Filament/Pages'), for: 'App\\Filament\\Pages') ->pages([ diff --git a/config/app_version.php b/config/app_version.php index 13e55f9..c8d1365 100644 --- a/config/app_version.php +++ b/config/app_version.php @@ -11,9 +11,9 @@ | */ - 'version' => env('APP_VERSION', 'v1.1.0-stable'), + 'version' => env('APP_VERSION', 'v1.6.0-stable'), - 'release_date' => '2025-12-24', + 'release_date' => '2026-03-07', 'status' => 'stable', // alpha, beta, stable diff --git a/dps/plans/integrate-site-icon.md b/dps/plans/integrate-site-icon.md new file mode 100644 index 0000000..c05c630 --- /dev/null +++ b/dps/plans/integrate-site-icon.md @@ -0,0 +1,77 @@ +# Plan: Integrate Cards Forge Site Icon + +## Context +A custom SVG icon (card shape with crescent moon and underline, orange `#EA580C`) has been provided to replace all placeholder logos, favicons, and the old franchise suit icons across the app. + +## SVG Source +```svg + + + + + +``` + +## What to do + +### 1. Save the SVG +- Create `public/images/logo.svg` with the SVG source above + +### 2. Generate PNG sizes (via Bash/ImageMagick or inline — done manually if tools unavailable) +Required sizes for favicons and touch icons: +- `public/favicon-16x16.png` (16×16) +- `public/favicon-32x32.png` (32×32) +- `public/apple-touch-icon.png` (180×180) +- Replace `public/favicon.ico` with an ICO derived from the SVG + +> Use `rsvg-convert` or `convert` (ImageMagick) inside the docker container to generate PNGs from the SVG. + +### 3. Create `public/site.webmanifest` +```json +{ + "name": "Cards Forge", + "short_name": "Cards Forge", + "icons": [ + { "src": "/favicon-16x16.png", "sizes": "16x16", "type": "image/png" }, + { "src": "/favicon-32x32.png", "sizes": "32x32", "type": "image/png" }, + { "src": "/apple-touch-icon.png", "sizes": "180x180", "type": "image/png" } + ], + "theme_color": "#EA580C", + "background_color": "#1e293b", + "display": "standalone" +} +``` + +### 4. Filament admin panel — add brand logo +In `app/Providers/Filament/AdminPanelProvider.php`, add `->brandLogo(asset('images/logo.svg'))` and `->brandLogoHeight('2rem')` after `->brandName('Cards Forge')`. + +### 5. Remove old suit SVGs from Filament icon registration +In `AdminPanelProvider.php`, remove the `->icons([...])` block that registers `resources/svg/` (clubs, diamonds, spades, hearts). Delete the 4 SVG files under `resources/svg/`. + +### 6. welcome.blade.php — replace text logo with SVG inline +In the navbar (line ~139), replace plain text `Cards Forge` with the SVG inline (small size, ~24px) + text. + +### 7. welcome.blade.php — footer brand +Same treatment for the footer `

Cards Forge

` — prepend the inline SVG. + +## Files modified +| File | Action | +|------|--------| +| `public/images/logo.svg` | Create | +| `public/favicon-16x16.png` | Generate | +| `public/favicon-32x32.png` | Generate | +| `public/apple-touch-icon.png` | Generate | +| `public/favicon.ico` | Regenerate | +| `public/site.webmanifest` | Create | +| `app/Providers/Filament/AdminPanelProvider.php` | Add brandLogo, remove icons() | +| `resources/svg/clubs.svg` | Delete | +| `resources/svg/diamonds.svg` | Delete | +| `resources/svg/spades.svg` | Delete | +| `resources/svg/hearts.svg` | Delete | +| `resources/views/welcome.blade.php` | Inline SVG in navbar + footer | + +## Verification +- Visit `/` — navbar and footer show the icon +- Visit `/admin` — Filament sidebar shows brand logo +- Browser tab shows the favicon +- No references to old suit SVGs remain diff --git a/dps/plans/remove-webtech-unreality-templates.md b/dps/plans/remove-webtech-unreality-templates.md new file mode 100644 index 0000000..baf758b --- /dev/null +++ b/dps/plans/remove-webtech-unreality-templates.md @@ -0,0 +1,34 @@ +# Plan: Remove webtech-solutions and unreality1 domain templates + +## Context +The webtech-solutions and unreality1 domains have moved to a separate application. All views, routes, and the controller serving those domains should be removed from this codebase. Copyright text in footer/welcome is kept as-is per user request. + +## Files to DELETE + +| File | Reason | +|------|--------| +| `resources/views/webtech-solutions.blade.php` | webtech domain homepage view | +| `resources/views/webtech-ai-solutions.blade.php` | webtech AI solutions page view | +| `resources/views/webtech-terms.blade.php` | webtech terms view | +| `resources/views/webtech-privacy.blade.php` | webtech privacy view | +| `resources/views/unreality1.blade.php` | unreality1 domain view | +| `resources/views/layouts/webtech.blade.php` | webtech layout template | +| `app/Http/Controllers/WebtechController.php` | controller for webtech routes | + +## Files to EDIT + +### `routes/web.php` +Remove the two domain route groups (lines 73–86): +- The `DOMAIN_WEBTECH` group (webtech.home, webtech.ai, webtech.terms, webtech.privacy) +- The `DOMAIN_UNREALITY` group + +## What is NOT changed +- All PHP copyright header comments in source files — kept +- `CLAUDE.md` copyright header instruction — kept +- Legal pages under `resources/views/legal/` — these serve the main domain, not webtech domain +- Filament legal pages (`PrivacyPolicy.php`, `TermsAndConditions.php`) — unrelated + +## Verification +- Run `grep -r "webtech-solutions.blade\|webtech-ai-solutions\|webtech-terms\|webtech-privacy\|unreality1.blade\|WebtechController\|DOMAIN_WEBTECH\|DOMAIN_UNREALITY" resources/ routes/ app/` — should return no results +- Confirm `routes/web.php` only contains the main `DOMAIN_MAIN` group +- Load the main app — no broken routes diff --git a/dps/tasks/csv-to-sql-output.sql b/dps/tasks/csv-to-sql-output.sql new file mode 100644 index 0000000..61ef00c --- /dev/null +++ b/dps/tasks/csv-to-sql-output.sql @@ -0,0 +1,156 @@ +-- ============================================================ +-- Essentia 2.2 Cards - CSV to SQL Import +-- Generated: 2026-02-27 +-- Game ID: 31, User ID: 1 +-- ============================================================ + +-- ------------------------------------------------------------ +-- Step 1: Insert CardTypes for game 31 +-- Adjust IDs if they conflict with existing records +-- ------------------------------------------------------------ + +-- ------------------------------------------------------------ +-- Step 2: Insert Cards +-- type_id mapping: +-- Action = 40 +-- Program = 41 +-- Protection = 42 +-- Agreement = 43 +-- Trade = 44 +-- +-- card_data only includes fields with non-empty values +-- ------------------------------------------------------------ + +INSERT INTO `cards` (`user_id`, `game_id`, `type_id`, `name`, `image`, `card_text`, `card_data`, `created_at`, `updated_at`) VALUES + +-- ACTION CARDS -- +(1, 31, 39, 'Terraform Protocol', NULL, 'Put 3 resource to any territory and you can gain one resource per turn from this.', '[{"fieldname":"Military","fieldvalue":"1"},{"fieldname":"Technology","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 39, 'Global Defense Grid', NULL, 'Your units gets +1 defense this turn. Successful defense on this units generate 1 Technology.', '[{"fieldname":"Military","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 39, 'United Earth Command', NULL, 'Add 1 unit on any Hero and draw a card.', '[{"fieldname":"Military","fieldvalue":"2"},{"fieldname":"Diplomacy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 39, 'Prometheus Fire', NULL, 'Add +1 damage to the resolution of the selected Hero.', '[{"fieldname":"Technology","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 39, 'Tech Ascension', NULL, 'Copy any Technology card in play for this turn. Can be used as a Protection card.', '[{"fieldname":"Technology","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 39, 'Cosmic Convergence', NULL, 'Force all players to trade one resource. Gain 1 resource of choice after trades.', '[{"fieldname":"Diplomacy","fieldvalue":"2"},{"fieldname":"Economy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 39, 'Central Authority', NULL, 'Play another Action card with this for free. Gain X resources equal to the played card\'s cost.', '[{"fieldname":"Economy","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 39, 'Universal Exchange', NULL, 'Trade any resources at 1:1 ratio this turn. Gain 1 Diplomacy per trade.', '[{"fieldname":"Diplomacy","fieldvalue":"1"},{"fieldname":"Economy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 39, 'Time Freeze', NULL, 'Gets an additional turn after this.', '[{"fieldname":"Technology","fieldvalue":"4"}]', NOW(), NOW()), +(1, 31, 39, 'Temporal Shield', NULL, 'Prevent all damage on a selected territory.', '[{"fieldname":"Military","fieldvalue":"1"},{"fieldname":"Technology","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 39, 'War Machine', NULL, 'All units get +1 attack and -1 defense.', '[{"fieldname":"Military","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 39, 'Military Draft', NULL, 'Deploy two units for the cost of one.', '[{"fieldname":"Military","fieldvalue":"2"},{"fieldname":"Economy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 39, 'Fortress Protocol', NULL, 'Every units defense doubled on the selected territory.', '[{"fieldname":"Military","fieldvalue":"2"},{"fieldname":"Technology","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 39, 'Thunder Strike', NULL, 'Attack all adjacent territories and gain 1 military per successful hit.', '[{"fieldname":"Military","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 39, 'Battle Fury', NULL, 'Triple the attack and no defense.', '[{"fieldname":"Military","fieldvalue":"2"},{"fieldname":"Technology","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 39, 'Diplomatic Immunity', NULL, 'Prevent all military actions against one territory.', '[{"fieldname":"Diplomacy","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 39, 'Cultural Exchange', NULL, 'Copy another civilization\'s basic action. Gain 1 Diplomacy if used.', '[{"fieldname":"Diplomacy","fieldvalue":"2"},{"fieldname":"Economy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 39, 'Peace Treaty', NULL, 'The Units on the selected territory and adjacent territories can\'t attack.', '[{"fieldname":"Diplomacy","fieldvalue":"4"}]', NOW(), NOW()), +(1, 31, 39, 'Harmonic Wave', NULL, 'Once per game. Convert up to 3 enemy unit to your control.', '[{"fieldname":"Diplomacy","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 39, 'Nature\'s Shield', NULL, 'This Hero reflects any attack to the attacker.', '[{"fieldname":"Technology","fieldvalue":"1"},{"fieldname":"Diplomacy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 39, 'Void Walk', NULL, 'Move through blocked territories.', '[{"fieldname":"Military","fieldvalue":"1"},{"fieldname":"Technology","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 39, 'Emergency Protocols', NULL, 'Prevent all resource loss this turn. Gain 1 Technology if triggered. Can be used as a Protection.', '[{"fieldname":"Technology","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 39, 'Space Adaptation', NULL, 'Units immune environment damage on territories.', '[{"fieldname":"Technology","fieldvalue":"2"},{"fieldname":"Economy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 39, 'Death\'s Return', NULL, 'Revive all destroyed units this turn. Units return with 1 health.', '[{"fieldname":"Technology","fieldvalue":"4"}]', NOW(), NOW()), +(1, 31, 39, 'Void Shield', NULL, 'Immune to all effects on the selected territory.', '[{"fieldname":"Military","fieldvalue":"2"},{"fieldname":"Technology","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 39, 'Fluid Strategy', NULL, 'Move up to 3 resources to any adjacent territory.', '[{"fieldname":"Diplomacy","fieldvalue":"1"},{"fieldname":"Economy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 39, 'Trade Current', NULL, 'Force advantageous trades with all players. Gain 1 Economy per trade.', '[{"fieldname":"Economy","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 39, 'Liquid Form', NULL, 'Move through any territory without any effect.', '[{"fieldname":"Technology","fieldvalue":"1"},{"fieldname":"Economy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 39, 'Tidal Wave', NULL, 'Push all units out of adjacent territories. Your Hero can move the emptied territory.', '[{"fieldname":"Military","fieldvalue":"2"},{"fieldname":"Economy","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 39, 'Ocean\'s Might', NULL, 'Double all resource generation this turn.', '[{"fieldname":"Economy","fieldvalue":"4"}]', NOW(), NOW()), +(1, 31, 39, 'Tech Singularity', NULL, 'Gain 1 Technology. You can play 2 Action cards for half cost.', '[{"fieldname":"Technology","fieldvalue":"4"}]', NOW(), NOW()), +(1, 31, 39, 'Advanced Warfare', NULL, 'Draw one card. All units get +1 attack and +1 life.', '[{"fieldname":"Military","fieldvalue":"2"},{"fieldname":"Technology","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 39, 'Master Program', NULL, 'Copy any action card in play. Can be used as a Protection.', '[{"fieldname":"Technology","fieldvalue":"5"}]', NOW(), NOW()), +(1, 31, 39, 'Strategic Matrix', NULL, 'You can cancel any 3 actions.', '[{"fieldname":"Technology","fieldvalue":"4"}]', NOW(), NOW()), +(1, 31, 39, 'Wisdom Protocol', NULL, 'Take control for any Action card in play.', '[{"fieldname":"Technology","fieldvalue":"3"},{"fieldname":"Diplomacy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 39, 'Power Supreme', NULL, 'Use any two Hero abilities.', '[{"fieldname":"Military","fieldvalue":"4"},{"fieldname":"Technology","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 39, 'Alpha Strike', NULL, 'Attack all territories in the danger zone simultaneously. You can\'t play any Action cards in this turn.', '[{"fieldname":"Military","fieldvalue":"5"}]', NOW(), NOW()), +(1, 31, 39, 'Omega Protocol', NULL, 'Put this card in play. You may cancel any or all actions this turn.', '[{"fieldname":"Technology","fieldvalue":"6"}]', NOW(), NOW()), +(1, 31, 39, 'Divine Thunder', NULL, 'Destroy up to 2 card or/and unit in play. This action can\'t be canceled.', '[{"fieldname":"Military","fieldvalue":"5"},{"fieldname":"Technology","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 39, 'God Emperor', NULL, 'Select a territory. You can move 1 step with units on this territory.', '[{"fieldname":"Military","fieldvalue":"2"},{"fieldname":"Technology","fieldvalue":"2"},{"fieldname":"Diplomacy","fieldvalue":"2"},{"fieldname":"Economy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 39, 'Espionage Network', NULL, 'View 2 random cards from target player\'s hand. If either is a Protection or Action card, you may discard one of them.', '[{"fieldname":"Technology","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 39, 'Covert Intelligence', NULL, 'Look at the top 3 cards of any player\'s draw pile and rearrange them in any order.', '[{"fieldname":"Technology","fieldvalue":"1"},{"fieldname":"Diplomacy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 39, 'Data Breach', NULL, 'Force target player to reveal their hand. You may choose one non-Hero card and move it to your hand.', '[{"fieldname":"Technology","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 39, 'Sabotage Operation', NULL, 'Target player must discard 2 cards from their hand. If they have fewer than 2 cards, they must discard all cards and 1 resource of your choice.', '[{"fieldname":"Military","fieldvalue":"2"},{"fieldname":"Technology","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 39, 'Void Archives', NULL, 'Exile up to 3 cards from any player\'s discard pile. You may play one of these cards immediately as if it were in your hand paying its cost.', '[{"fieldname":"Technology","fieldvalue":"3"},{"fieldname":"Economy","fieldvalue":"1"}]', NOW(), NOW()), + +-- PROGRAM CARDS -- +(1, 31, 40, 'Resource Monitor', NULL, 'Utility Program. If any resource can reach the limit on your Civilization you may move 1 resource to any other resource.', '[{"fieldname":"Technology","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 40, 'Defense Matrix', NULL, 'Protection Program. Automatically counter the first attack in the turn.', '[{"fieldname":"Technology","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 40, 'Auto-Collector', NULL, 'Resource Program. Automatically collect one resource in your turn.', '[{"fieldname":"Technology","fieldvalue":"2"},{"fieldname":"Economy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 40, 'Basic AI Assistant', NULL, 'Support Program. One free basic action per turn, not used for a Military based action.', '[{"fieldname":"Technology","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 40, 'Surveillance Algorithm', NULL, 'Once per turn pay 2 Technology, you may look at a random card from target player\'s hand.', '[{"fieldname":"Technology","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 40, 'Neural Network', NULL, 'Analysis Program. Predict opponent\'s next action view up to 2 cards for any other players hand.', '[{"fieldname":"Technology","fieldvalue":"3"},{"fieldname":"Economy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 40, 'Quantum Calculator', NULL, 'Enhancement Program. Can split resources between any storage units one per turn.', '[{"fieldname":"Technology","fieldvalue":"4"}]', NOW(), NOW()), +(1, 31, 40, 'Market Manipulator', NULL, 'Economic Program. Once per turn you can force 2:3 resource trade, if successful then gain 1 Economy.', '[{"fieldname":"Technology","fieldvalue":"3"},{"fieldname":"Economy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 40, 'Quantum Entanglement', NULL, 'When target player draws a card, you may look at it. You may pay 2 Technology to force them to discard this card they draw.', '[{"fieldname":"Technology","fieldvalue":"3"},{"fieldname":"Economy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 40, 'Digital Ascension', NULL, 'Ultimate Program. Once per turn take control of all basic programs in play (you can use it once) and prevent one program deployment in this turn.', '[{"fieldname":"Technology","fieldvalue":"7"},{"fieldname":"Diplomacy","fieldvalue":"1"},{"fieldname":"Economy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 40, 'Singularity Core', NULL, 'Ultimate Program. Copy any active program in play for this turn.', '[{"fieldname":"Technology","fieldvalue":"6"},{"fieldname":"Diplomacy","fieldvalue":"1"},{"fieldname":"Economy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 40, 'Temporal Manipulator Core', NULL, 'Once per turn you may look through any player\'s discard pile and return up to 3 cards to your hand. For each card returned this way, discard 1 card from your hand.', '[{"fieldname":"Technology","fieldvalue":"4"},{"fieldname":"Economy","fieldvalue":"2"}]', NOW(), NOW()), + +-- PROTECTION CARDS -- +(1, 31, 41, 'Defensive Shield Matrix', NULL, 'Protects one facility from a single attack.', '[{"fieldname":"Military","fieldvalue":"1"},{"fieldname":"Technology","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 41, 'Emergency Barrier', NULL, 'Prevents damage to units in one territory for one turn.', '[{"fieldname":"Technology","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 41, 'Diplomatic Immunity', NULL, 'Protects one Hero from any damage in the next attack.', '[{"fieldname":"Diplomacy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 41, 'Cultural Sanctuary', NULL, 'Protects a Civilization for any negative cultural or economical effect in this turn.', '[{"fieldname":"Diplomacy","fieldvalue":"1"},{"fieldname":"Economy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 41, 'Planetary Shield Matrix', NULL, 'Prevent the next attack against one of your planets.', '[{"fieldname":"Technology","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 41, 'Diplomatic Immunity (Nullify)', NULL, 'Nullify one diplomatic action targeted at your civilization.', '[{"fieldname":"Diplomacy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 41, 'Economic Firewall', NULL, 'Prevent the loss of up to 2 Economy resources from an opponent\'s action.', '[{"fieldname":"Economy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 41, 'Emergency Defense Protocol', NULL, 'When attacked, immediately gain +2 Military resource for defense only. Resource returns to normal after combat.', '[{"fieldname":"Technology","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 41, 'Data Encryption System', NULL, 'Protect one stealing or viewing action directed at your hand or discard pile by opponents.', '[{"fieldname":"Technology","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 41, 'Counterintelligence', NULL, 'When an opponent attempts to view or discard cards from your hand, cancel that effect. You may then look at 1 random card from their hand.', '[{"fieldname":"Technology","fieldvalue":"1"},{"fieldname":"Diplomacy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 41, 'Quantum Force Field', NULL, 'Create an inpenetrable barrier around a territory at the end of this turn.', '[{"fieldname":"Military","fieldvalue":"2"},{"fieldname":"Technology","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 41, 'Trade Route Security', NULL, 'Cancel up to 3 trades in this turn.', '[{"fieldname":"Military","fieldvalue":"1"},{"fieldname":"Technology","fieldvalue":"1"},{"fieldname":"Economy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 41, 'Neural Firewall', NULL, 'Prevents up to 2 Program effects in this turn.', '[{"fieldname":"Technology","fieldvalue":"2"},{"fieldname":"Diplomacy","fieldvalue":"1"},{"fieldname":"Economy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 41, 'Quantum Barrier Field', NULL, 'Create an impenetrable defense around one sector that lasts for a turn. No units can enter or leave this sector during this time.', '[{"fieldname":"Military","fieldvalue":"1"},{"fieldname":"Technology","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 41, 'Cultural Preservation Accord', NULL, 'Prevent any loss of Diplomacy resources for 1 full round. Additionally, all diplomatic actions against you cost opponents +1 Diplomacy resource.', '[{"fieldname":"Diplomacy","fieldvalue":"2"},{"fieldname":"Economy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 41, 'Strategic Resource Cache', NULL, 'When an opponent\'s action would cause you to lose resources, reveal this card to maintain minimum levels of 1 in each resource type.', '[{"fieldname":"Technology","fieldvalue":"1"},{"fieldname":"Diplomacy","fieldvalue":"2"},{"fieldname":"Economy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 41, 'Countermeasure Array', NULL, 'Reflect the effects of an opponent\'s Action card back to them. The opponent must resolve the effects of their own card against themselves.', '[{"fieldname":"Military","fieldvalue":"2"},{"fieldname":"Technology","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 41, 'Quantum Encryption', NULL, 'Your cards cannot be viewed, copied, or discarded by opponents. You can discard this card to examine any player\'s discard pile and return 1 card to your hand.', '[{"fieldname":"Technology","fieldvalue":"3"},{"fieldname":"Economy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 41, 'Celestial Aegis', NULL, 'Protects one Civilization from any types of attack in this turn.', '[{"fieldname":"Military","fieldvalue":"3"},{"fieldname":"Technology","fieldvalue":"3"},{"fieldname":"Diplomacy","fieldvalue":"3"},{"fieldname":"Economy","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 41, 'Cosmic Void Shield', NULL, 'Creates an artificial space-time anomaly that makes one territory completely immune to all effects and attacks for one turn.', '[{"fieldname":"Military","fieldvalue":"3"},{"fieldname":"Technology","fieldvalue":"2"},{"fieldname":"Diplomacy","fieldvalue":"2"},{"fieldname":"Economy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 41, 'Temporal Stasis Field', NULL, 'Pause all effects, both positive and negative, targeting your civilization for one full round. Play at the start of any player\'s turn.', '[{"fieldname":"Military","fieldvalue":"3"},{"fieldname":"Technology","fieldvalue":"5"},{"fieldname":"Diplomacy","fieldvalue":"2"},{"fieldname":"Economy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 41, 'Galactic Sanctuary Declaration', NULL, 'Declare one of your territories as a protected sanctuary. No military action, sabotage, or hostile effects can target this territory for the rest of the game.', '[{"fieldname":"Technology","fieldvalue":"3"},{"fieldname":"Diplomacy","fieldvalue":"5"},{"fieldname":"Economy","fieldvalue":"4"}]', NOW(), NOW()), +(1, 31, 41, 'Ancient Defense Network', NULL, 'When attacked, activate dormant defense systems from an ancient civilization. Triple your Military resource and your units defense for this defense only. After use, reduce your Technology resource by 1.', '[{"fieldname":"Technology","fieldvalue":"4"},{"fieldname":"Diplomacy","fieldvalue":"2"},{"fieldname":"Economy","fieldvalue":"4"}]', NOW(), NOW()), + +-- AGREEMENT CARDS -- +(1, 31, 42, 'Mutual Defense Pact', NULL, 'Both parties commit to defend each other if attacked. Each player gains +1 Military resource during defense actions when the other is threatened.', '[{"fieldname":"Diplomacy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 42, 'Scientific Collaboration Treaty', NULL, 'Both parties share technological advancements. When one player gains a Technology resource, the other player may draw 1 card.', '[{"fieldname":"Diplomacy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 42, 'Open Borders Initiative', NULL, 'Free movement between territories. Both players may move units through each other\'s controlled sectors without penalty.', '[{"fieldname":"Diplomacy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 42, 'Resource Sharing Accord', NULL, 'Declare one resource type when played. Both parties may exchange this resource type freely during their turns.', '[{"fieldname":"Diplomacy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 42, 'Non-Aggression Protocol', NULL, 'Players cannot attack each other. If broken, the violator loses 2 Diplomacy resources.', '[{"fieldname":"Diplomacy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 42, 'Cultural Exchange Pact', NULL, 'Both parties gain +1 Diplomacy resource when conducting diplomatic actions with neutral civilizations. Once per turn, either party may spend 1 Diplomacy to draw a card.', '[{"fieldname":"Diplomacy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 42, 'Trade Route Establishment', NULL, 'Requires connected APN ranges. Both parties gain +1 Economy resource during income phases when trading with each other.', '[{"fieldname":"Diplomacy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 42, 'Joint Research Initiative', NULL, 'When one party develops a Technology card, the other may view the top 2 cards of the Technology deck and place one on top.', '[{"fieldname":"Diplomacy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 42, 'Information Sharing Treaty', NULL, 'All signing parties must reveal their hands to each other at the beginning of their turns. Any player may cancel this agreement by discarding 1 card from their hand.', '[{"fieldname":"Diplomacy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 42, 'Galactic Council Membership', NULL, 'All signing parties gain representation in the Galactic Council. Each player gains +1 Diplomacy resource and may veto one Action card played against them per round.', '[{"fieldname":"Diplomacy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 42, 'Joint Military Operations', NULL, 'Combine Military resources for attacks or defense and +1 for each signing parties.', '[{"fieldname":"Diplomacy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 42, 'Technology Transfer Program', NULL, 'Players may exchange Technology cards without the usual resource cost once per turn.', '[{"fieldname":"Diplomacy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 42, 'Interstellar Development Compact', NULL, 'Each signing player may develop one facility from another player\'s discard pile. Both gain +1 Economy resource during income phases.', '[{"fieldname":"Diplomacy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 42, 'Strategic Resource Alliance', NULL, 'Designate one resource type (Military, Technology, Diplomacy, or Economy). Both parties gain +1 of that resource during income phases.', '[{"fieldname":"Diplomacy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 42, 'Shared Defense Grid', NULL, 'Combine defensive capabilities. When either player is attacked, both may contribute Military resources to the defense.', '[{"fieldname":"Diplomacy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 42, 'Diplomatic Corps Exchange', NULL, 'Once per turn, either party may use the other\'s Diplomacy resource for a single diplomatic action.', '[{"fieldname":"Diplomacy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 42, 'Technological Breakthrough Sharing', NULL, 'When either party develops a Tier 2 or higher Technology card, the other may immediately reduce the cost of their next Technology card by 1.', '[{"fieldname":"Diplomacy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 42, 'Economic Integration Protocol', NULL, 'Pool Economy resources for major purchases. When buying Facilities or Units costing 3+ resources, either party may contribute Economy resources to reduce the cost.', '[{"fieldname":"Diplomacy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 42, 'Joint Intelligence Directive', NULL, 'Once per turn, each signing party may look at one random card from a non-signing player\'s hand. Once per game, signing parties may collectively choose to discard 1 card from a non-signing player\'s hand.', '[{"fieldname":"Diplomacy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 42, 'Celestial Concordat', NULL, 'All signing civilizations unite under a shared vision. Players pool Diplomacy resources for joint diplomatic actions and gain immunity to hostile Action cards when pay the card cost from the pool.', '[{"fieldname":"Diplomacy","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 42, 'Unified Economic Zone', NULL, 'Create a shared market that increases all trading efficiency. When any signing player trades resources, they gain +1 additional resource of that type.', '[{"fieldname":"Diplomacy","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 42, 'Ancient Knowledge Exchange', NULL, 'Share the secrets of forgotten technologies. Each player may access the discard pile once per turn to retrieve one Technology card of their choice.', '[{"fieldname":"Diplomacy","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 42, 'Unified Research Consortium', NULL, 'Create a joint research body. All Technology costs are reduced by 1 for signing parties. Once per game, develop one Legendary Technology card at half cost.', '[{"fieldname":"Diplomacy","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 42, 'Ancient Artifact Accord', NULL, 'Jointly excavate and study powerful artifacts. Each turn, place 1 resource token on this card. When it reaches 5, each player may immediately develop any card from their hand without paying its resource cost and discard this card.', '[{"fieldname":"Diplomacy","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 42, 'Archive Access Accord', NULL, 'Signing parties may freely look through each other\'s discard piles. Once per turn, each signing party may retrieve 1 card from any signing party\'s discard pile by paying its resource cost.', '[{"fieldname":"Diplomacy","fieldvalue":"3"}]', NOW(), NOW()), + +-- TRADE CARDS -- +(1, 31, 43, 'Information Exchange', NULL, 'Exchange 2 cards randomly with target player. Then, you may discard 1 card from your hand to force them to discard 1 card of your choice from their hand.', '[{"fieldname":"Diplomacy","fieldvalue":"1"},{"fieldname":"Economy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 43, 'Black Market Connections', NULL, 'Look at the top 3 cards of any player\'s deck. You may purchase one of these cards by paying half of its resource cost. Place the remaining cards on the bottom of their deck.', '[{"fieldname":"Economy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 43, 'Resource Exchange Protocol', NULL, 'Exchange up to 2 resources of one type for 2 resources of another type.', '[{"fieldname":"Economy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 43, 'Minor Trade Route', NULL, 'Establish a trade route between two adjacent sectors, generating 1 Economy resource per turn.', '[{"fieldname":"Economy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 43, 'Knowledge Market', NULL, 'Trade 1 Technology resource to receive 2 Economy resources, or vice versa.', '[{"fieldname":"Technology","fieldvalue":"1"},{"fieldname":"Economy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 43, 'Military Contractors', NULL, 'Convert 2 Economy resources into 1 Military resource and deploy one basic unit for free.', '[{"fieldname":"Military","fieldvalue":"2"},{"fieldname":"Economy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 43, 'Cultural Exchange', NULL, 'Trade cultural artifacts with another civilization, both gaining 2 Diplomacy resource.', '[{"fieldname":"Diplomacy","fieldvalue":"1"},{"fieldname":"Economy","fieldvalue":"1"}]', NOW(), NOW()), +(1, 31, 43, 'Emergency Supply Line', NULL, 'Instantly gain 3 resources of your choice, but of the same type.', '[{"fieldname":"Economy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 43, 'Corporate Espionage', NULL, 'Target player reveals all Trade and Economy cards in their hand. You may select one of these cards and add it to your hand. Target gains 1 Economy resource.', '[{"fieldname":"Technology","fieldvalue":"1"},{"fieldname":"Economy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 43, 'Interstellar Commerce Hub', NULL, 'Establish a commerce hub (this card in play) that generates 2 Economy resources per turn and allows trade with any civilization regardless of distance.', '[{"fieldname":"Technology","fieldvalue":"1"},{"fieldname":"Economy","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 43, 'Technology Licensing', NULL, 'Install a Technology card to another civilization if accepted and put 6 Economy counter to it. Each turn you can collect up to 2 Economy counter.', '[{"fieldname":"Technology","fieldvalue":"2"},{"fieldname":"Economy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 43, 'Diplomatic Trade Alliance', NULL, 'Form a trade alliance with another civilization, both gaining 1 Economy and 1 Diplomacy resource per turn.', '[{"fieldname":"Diplomacy","fieldvalue":"2"},{"fieldname":"Economy","fieldvalue":"2"}]', NOW(), NOW()), +(1, 31, 43, 'Black Market Networks', NULL, 'Gain 4 resources of any type, but all other civilizations gain 1 Diplomacy resource.', '[{"fieldname":"Military","fieldvalue":"1"},{"fieldname":"Economy","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 43, 'Galactic Economic Union', NULL, 'Form an Economic Union with up to three civilizations, all members gaining 2 Economy resources per turn and immunity to negative economic effects.', '[{"fieldname":"Technology","fieldvalue":"1"},{"fieldname":"Diplomacy","fieldvalue":"2"},{"fieldname":"Economy","fieldvalue":"4"}]', NOW(), NOW()), +(1, 31, 43, 'Galactic Takeover', NULL, 'Force all players to reveal their hands. You may take one Economy or Trade card from each player\'s hand. For each card taken this way, provide that player with 1 resource of their choice.', '[{"fieldname":"Military","fieldvalue":"2"},{"fieldname":"Economy","fieldvalue":"5"}]', NOW(), NOW()), +(1, 31, 43, 'Quantum Transportation Network', NULL, 'Establish instantaneous trade routes that connect all your sectors, doubling all Economy resource generation.', '[{"fieldname":"Technology","fieldvalue":"3"},{"fieldname":"Economy","fieldvalue":"3"}]', NOW(), NOW()), +(1, 31, 43, 'Resource Transmutation Matrix', NULL, 'Convert any resources into any other resources at a 1:1 ratio for all signing Civilization.', '[{"fieldname":"Military","fieldvalue":"1"},{"fieldname":"Technology","fieldvalue":"3"},{"fieldname":"Economy","fieldvalue":"4"}]', NOW(), NOW()); diff --git a/dps/tasks/csv-to-sql.md b/dps/tasks/csv-to-sql.md new file mode 100644 index 0000000..90f0d85 --- /dev/null +++ b/dps/tasks/csv-to-sql.md @@ -0,0 +1,58 @@ +# Convert Cards CSV to SQL + +A dps/tasks/essentia-2-2-cards.csv file-ban lévő Cards adatokat kellene nekem átalakítani SQL insert lekérdezésekké. + +A cards adattábla szerkezete és néhány adat alább, fontos az átalakításnál figyelni rá, hogy a card_data JSON tömböt vár, ami a CSV-ben oszlopokban szerepel. Csak azokat az oszlopokat kell feltűntetni a card_data-ban, ahol van értéke az oszlopnak. + +## Result +Egy SQL file-t kérek, amit lefuttatva be tudom insertálni a kártya adatokat a CSV-ből! + + +## Cards table +-- +-- Table structure for table `cards` +-- + +CREATE TABLE `cards` ( + `id` bigint(20) UNSIGNED NOT NULL, + `user_id` bigint(20) UNSIGNED DEFAULT NULL, + `game_id` int(11) NOT NULL, + `type_id` int(11) NOT NULL, + `name` varchar(255) NOT NULL, + `image` varchar(255) DEFAULT NULL, + `card_text` mediumtext DEFAULT NULL, + `card_data` longtext DEFAULT NULL, + `created_at` timestamp NULL DEFAULT NULL, + `updated_at` timestamp NULL DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- +-- Dumping data for table `cards` +-- + +INSERT INTO `cards` (`id`, `user_id`, `game_id`, `type_id`, `name`, `image`, `card_text`, `card_data`, `created_at`, `updated_at`) VALUES +(140, 1, 31, 38, 'Shadow Agent', NULL, 'Movement 3. When this unit attacks a territory, you may look at the unit\'s owner\'s hand on this territory and discard 1 card of your choice.', '[{\"fieldname\":\"Military\",\"fieldvalue\":\"3\"},{\"fieldname\":\"Technology\",\"fieldvalue\":\"4\"}]', '2026-02-25 18:41:48', '2026-02-25 18:41:48'), +(139, 1, 31, 38, 'Master Archivist', NULL, 'Movement 2. Once per turn, you may examine any player\'s discard pile and take one card from it into your hand. Take control of any non-Hero Unit card currently in play. Return it to its owner at the end of your turn for 3 Technology.', '[{\"fieldname\":\"Military\",\"fieldvalue\":\"1\"},{\"fieldname\":\"Technology\",\"fieldvalue\":\"3\"},{\"fieldname\":\"Diplomacy\",\"fieldvalue\":\"3\"}]', '2026-02-25 18:41:11', '2026-02-25 18:41:11'), +(138, 1, 31, 38, 'Phase Commander', NULL, 'Movement 2. Once a turn prevent an enemy strike. Once a turn can teleport any territories.', '[{\"fieldname\":\"Military\",\"fieldvalue\":\"4\"},{\"fieldname\":\"Diplomacy\",\"fieldvalue\":\"3\"}]', '2026-02-25 18:40:15', '2026-02-25 18:40:15'), +(137, 1, 31, 38, 'Nova Squadron', NULL, 'Movement 3. Once a turn can attack an enemy on the board or reveal one territory on the board.', '[{\"fieldname\":\"Military\",\"fieldvalue\":\"5\"},{\"fieldname\":\"Economy\",\"fieldvalue\":\"2\"}]', '2026-02-25 18:39:36', '2026-02-25 18:39:36'), +(136, 1, 31, 38, 'Titan Warmech', NULL, 'Movement 1. Can attack all adjacent territories. Can carry one Advanced unit.', '[{\"fieldname\":\"Technology\",\"fieldvalue\":\"3\"},{\"fieldname\":\"Military\",\"fieldvalue\":\"4\"}]', '2026-02-25 18:38:42', '2026-02-25 18:38:42'), +(135, 1, 31, 38, 'Information Broker', NULL, 'Movement 2. When this unit enters play, choose a player. That player must reveal their hand to you. You may select one card from their hand and add it to the bottom of their deck.', '[{\"fieldname\":\"Diplomacy\",\"fieldvalue\":\"2\"},{\"fieldname\":\"Economy\",\"fieldvalue\":\"1\"}]', '2026-02-25 18:37:41', '2026-02-25 18:37:41'), +(134, 1, 31, 38, 'Long-Range Scout ', NULL, 'Movement 2. Can explore adjacent territories in 2 APN range from Hero.', '[{\"fieldname\":\"Military\",\"fieldvalue\":\"1\"},{\"fieldname\":\"Technology\",\"fieldvalue\":\"3\"}]', '2026-02-25 18:36:47', '2026-02-25 18:36:47'), +(133, 1, 31, 38, 'Stealth Operative', NULL, 'Movement 3. Can move through enemy based territories.', '[{\"fieldname\":\"Military\",\"fieldvalue\":\"2\"},{\"fieldname\":\"Diplomacy\",\"fieldvalue\":\"2\"}]', '2026-02-25 18:36:05', '2026-02-25 18:36:05'), +(132, 1, 31, 38, 'Command Walker', NULL, 'Movement 2. Can carry one basic unit. All adjacent unit gets +1 movement.', '[{\"fieldname\":\"Military\",\"fieldvalue\":\"2\"},{\"fieldname\":\"Technology\",\"fieldvalue\":\"3\"}]', '2026-02-25 18:34:51', '2026-02-25 18:34:51'), +(131, 1, 31, 38, 'Elite Strike Force', NULL, 'Movement 2. Can attack twice per turn separate targets.', '[{\"fieldname\":\"Military\",\"fieldvalue\":\"3\"},{\"fieldname\":\"Technology\",\"fieldvalue\":\"1\"}]', '2026-02-25 18:33:52', '2026-02-25 18:33:52'), +(130, 1, 31, 38, 'Diplomatic Envoy', NULL, 'Movement 2. Once per turn, you may exchange 1 card randomly with target player. If you exchange a Diplomacy card, you may look at their entire hand.', '[{\"fieldname\":\"Diplomacy\",\"fieldvalue\":\"3\"},{\"fieldname\":\"Economy\",\"fieldvalue\":\"3\"}]', '2026-02-25 18:32:45', '2026-02-25 18:32:45'), +(129, 1, 31, 38, 'Scout Operative', NULL, 'Movement 1. When this unit enters play, look at 2 random cards from target player\'s hand.', '[{\"fieldname\":\"Military\",\"fieldvalue\":\"1\"},{\"fieldname\":\"Technology\",\"fieldvalue\":\"1\"},{\"fieldname\":\"Economy\",\"fieldvalue\":\"1\"}]', '2026-02-25 18:31:47', '2026-02-25 18:31:47'), +(128, 1, 31, 38, 'Combat Drone', NULL, 'Movement 2. Can attack adjacent territories.', '[{\"fieldname\":\"Military\",\"fieldvalue\":\"1\"},{\"fieldname\":\"Technology\",\"fieldvalue\":\"2\"}]', '2026-02-25 18:30:53', '2026-02-25 18:30:53'), +(127, 1, 31, 37, 'Resource Collector', NULL, 'Movement 1. Gain 1 additional resource from the territory.', '[{\"fieldname\":\"Military\",\"fieldvalue\":\"1\"},{\"fieldname\":\"Economy\",\"fieldvalue\":\"2\"}]', '2026-02-25 18:29:42', '2026-02-25 18:29:42'), +(126, 1, 31, 38, 'Defense Squadron', NULL, 'Movement 1. +1 defense for each unit on this Hero.', '[{\"fieldname\":\"Military\",\"fieldvalue\":\"3\"}]', '2026-02-25 18:28:46', '2026-02-25 18:28:46'), +(125, 1, 31, 38, 'Scout Patrol', NULL, 'Movement 1. Automatically reveal unexplored territories.', '[{\"fieldname\":\"Military\",\"fieldvalue\":\"2\"},{\"fieldname\":\"Technology\",\"fieldvalue\":\"1\"}]', '2026-02-25 18:28:15', '2026-02-25 18:28:15'), +(124, 1, 31, 37, 'Temporal Archive', NULL, 'Capacity: Economy +2. Once per turn, examine any player\'s discard pile and return 1 card to your hand.', '[{\"fieldname\":\"Technology\",\"fieldvalue\":\"4\"},{\"fieldname\":\"Economy\",\"fieldvalue\":\"3\"}]', '2026-02-25 18:27:03', '2026-02-25 18:27:03'), +(123, 1, 31, 37, 'Strategic Information Center', NULL, 'Whenever an opponent plays a card, you may spend 1 Technology resource to draw a card.\nOnce per game, force all players to reveal their hands. Choose one card from one player\'s hand and move it to the discard pile.', '[{\"fieldname\":\"Technology\",\"fieldvalue\":\"3\"},{\"fieldname\":\"Economy\",\"fieldvalue\":\"3\"}]', '2026-02-25 18:26:24', '2026-02-25 18:26:24'), +(122, 1, 31, 37, 'Intelligence Headquarters', NULL, 'Once per turn, you may view one random card from each opponent\'s hand.\nSpend 2 Technology resources to look at target player\'s entire hand and discard one card of your choice.', '[{\"fieldname\":\"Technology\",\"fieldvalue\":\"3\"},{\"fieldname\":\"Economy\",\"fieldvalue\":\"2\"}]', '2026-02-25 18:25:37', '2026-02-25 18:25:37'), +(121, 1, 31, 37, 'Sensor Arrays', NULL, 'Boost Civilization and Hero APN by 1.', '[{\"fieldname\":\"Technology\",\"fieldvalue\":\"2\"},{\"fieldname\":\"Diplomacy\",\"fieldvalue\":\"2\"},{\"fieldname\":\"Economy\",\"fieldvalue\":\"2\"}]', '2026-02-25 18:24:43', '2026-02-25 18:24:43'), +(120, 1, 31, 37, 'Temporal Trading Hub', NULL, 'Time-dilated economic storage nexus. Capacity: Technology +1, Diplomacy +1, Economy +4', '[{\"fieldname\":\"Economy\",\"fieldvalue\":\"3\"}]', '2026-02-25 18:23:45', '2026-02-25 18:23:45'), +(119, 1, 31, 37, 'Neural Network Repository', NULL, 'AI-optimized resource distribution system. Capacity: Technology +3, Diplomacy +3', '[{\"fieldname\":\"Technology\",\"fieldvalue\":\"2\"},{\"fieldname\":\"Economy\",\"fieldvalue\":\"1\"}]', '2026-02-25 18:23:16', '2026-02-25 18:23:16'), +(118, 1, 31, 37, 'Singularity Resource Core', NULL, 'Military-focused containment using gravity manipulation. Capacity: Military +4, Technology +2', '[{\"fieldname\":\"Technology\",\"fieldvalue\":\"4\"}]', '2026-02-25 18:22:40', '2026-02-25 18:22:40'), +(117, 1, 31, 37, 'Astral Diplomatic Vault', NULL, 'Secured storage through interstellar cooperation. Capacity: Diplomacy +3, Economy +3', '[{\"fieldname\":\"Diplomacy\",\"fieldvalue\":\"2\"},{\"fieldname\":\"Economy\",\"fieldvalue\":\"2\"}]', '2026-02-25 18:22:05', '2026-02-25 18:22:05'), +(116, 1, 31, 37, 'Hyperspace Cache Matrix', NULL, 'Military-grade dimensional compression technology. Capacity: Military +3, Technology +3', '[{\"fieldname\":\"Military\",\"fieldvalue\":\"2\"},{\"fieldname\":\"Technology\",\"fieldvalue\":\"2\"}]', '2026-02-25 18:21:25', '2026-02-25 18:21:25'); diff --git a/dps/tasks/essentia-2-2-cards.csv b/dps/tasks/essentia-2-2-cards.csv new file mode 100644 index 0000000..ceaafcb --- /dev/null +++ b/dps/tasks/essentia-2-2-cards.csv @@ -0,0 +1,124 @@ +Type,Tier,Title,Description,Military,Technology,Diplomacy,Economy +Action,1,Terraform Protocol,Put 3 resource to any territory and you can gain one resource per turn from this.,1,2,, +Action,1,Global Defense Grid,Your units gets +1 defense this turn. Successful defense on this units generate 1 Technology.,3,,, +Action,1,United Earth Command,Add 1 unit on any Hero and draw a card.,2,,1, +Action,2,Prometheus Fire,Add +1 damage to the resolution of the selected Hero.,,2,, +Action,3,Tech Ascension,Copy any Technology card in play for this turn. Can be used as a Protection card.,,3,, +Action,1,Cosmic Convergence,Force all players to trade one resource. Gain 1 resource of choice after trades.,,,2,1 +Action,1,Central Authority,Play another Action card with this for free. Gain X resources equal to the played card's cost.,,,,3 +Action,1,Universal Exchange,Trade any resources at 1:1 ratio this turn. Gain 1 Diplomacy per trade.,,,1,2 +Action,2,Time Freeze,Gets an additional turn after this.,,4,, +Action,3,Temporal Shield,Prevent all damage on a selected territory-,1,2,, +Action,1,War Machine,All units get +1 attack and -1 defense.,3,,, +Action,1,Military Draft,Deploy two units for the cost of one.,2,,,1 +Action,1,Fortress Protocol,Every units defense doubled on the selected territory.,2,1,, +Action,2,Thunder Strike,Attack all adjacent territories and gain 1 military per successful hit.,3,,, +Action,3,Battle Fury,Triple the attack and no defense.,2,1,, +Action,1,Diplomatic Immunity,Prevent all military actions against one territory.,,,3, +Action,1,Cultural Exchange,Copy another civilization's basic action. Gain 1 Diplomacy if used.,,,2,1 +Action,1,Peace Treaty,The Units on the selected territory and adjacent territories can't attack.,,,4, +Action,2,Harmonic Wave,Once per game. Convert up to 3 enemy unit to your control.,,,3, +Action,3,Nature's Shield,This Hero reflects any attack to the attacker.,,1,2, +Action,1,Viod Walk,Move through blocked territories.,1,2,, +Action,1,Emergency Protocols,Prevent all resource loss this turn. Gain 1 Technology if triggered. Can be used as a Protection.,,3,, +Action,1,Space Adaptation,Units immune environment damage on territories.,,2,,1 +Action,2,Death's Return,Revive all destroyed units this turn. Units return with 1 health,,4,, +Action,3,Void Shield,Immune to all effects on the selected territory.,2,2,, +Action,1,Fluid Strategy,Move up to 3 resources to any adjacent territory.,,,1,2 +Action,1,Trade Current,Force advantageous trades with all players. Gain 1 Economy per trade.,,,,3 +Action,1,Liquid Form,Move through any territory without any effect.,,1,,2 +Action,2,Tidal Wave,Push all units out of adjacent territories. Your Hero can move the emptied territory.,2,,,3 +Action,3,Ocean's Might,Double all resource generation this turn.,,,,4 +Action,1,Tech Singularity,Gain 1 Technology. You can play 2 Action cards for half cost.,,4,, +Action,1,Advanced Warfare,Draw one card. All units get +1 attack and +1 life.,2,3,, +Action,2,Master Program,Copy any action card in play. Can be used as a Protection.,,5,, +Action,2,Strategic Matrix,You can cancel any 3 actions.,,4,, +Action,3,Wisdom Protocel,Take control for any Action card in play.,,3,2, +Action,1,Power Supreme,Use any two Hero abilities.,4,2,, +Action,1,Alpha Strike,Attack all territories in the danger zone simultaneously. You can't play any Action cards in this turn.,5,,, +Action,1,Omega Protocol,Put this card in play. You may cancel any or all actions this turn.,,6,, +Action,2,Divine Thunder,Destroy up to 2 card or/and unit in play. This action can't be canceled.,5,2,, +Action,3,God Emperor,Select a teritory. You can move 1 step with units on this territoy.,2,2,2,2 +Action,1,Espionage Network,"View 2 random cards from target player's hand. If either is a Protection or Action card, you may discard one of them.",,2,, +Action,1,Covert Intelligence,Look at the top 3 cards of any player's draw pile and rearrange them in any order.,,1,1, +Action,2,Data Breach,Force target player to reveal their hand. You may choose one non-Hero card and move it to your hand.,,3,, +Action,2,Sabotage Operation,"Target player must discard 2 cards from their hand. If they have fewer than 2 cards, they must discard all cards and 1 resource of your choice.",2,1,, +Action,3,Void Archives,Exile up to 3 cards from any player's discard pile. You may play one of these cards immediately as if it were in your hand paying its cost.,,3,,1 +Program,1,Resource Monitor,Utility Program. If any resource can reach the limit on your Civilization you may move 1 resource to any other resource.,,1,, +Program,1,Defense Matrix,Protection Program. Automatically counter the first attack in the turn.,,2,, +Program,1,Auto-Collector,Resource Program. Automatically collect one resource in your turn.,,2,,1 +Program,1,Basic AI Assistant,"Support Program. One free basic action per turn, not used for a Military based action.",,2,, +Program,1,Surveillance Algorithm,"Once per turn pay 2 Technology, you may look at a random card from target player's hand.",,2,, +Program,2,Neural Network,Analysis Program. Predict opponent's next action view up to 2 cards for any other players hand.,,3,,1 +Program,2,Quantum Calculator,Enhancement Program. Can split resources between any storage units one per turn.,,4,, +Program,2,Market Manipulator,"Economic Program. Once per turn you can force 2:3 resource trade, if successful then gain 1 Economy.",,3,,2 +Program,2,Quantum Entanglement,"When target player draws a card, you may look at it. You may pay 2 Technology to force them to discard this card they draw.",,3,,1 +Program,3,Digital Ascension,Ultimate Program. Once per turn take control of all basic programs in play (you can use it once) and prevent one program deployment in this turn.,,7,1,1 +Program,3,Singularity Core,Ultimate Program. Copy any active program in play for this turn.,,6,1,2 +Program,3,Temporal Manipulator Core,"Once per turn you may look through any player's discard pile and return up to 3 cards to your hand. For each card returned this way, discard 1 card from your hand.",,4,,2 +Protection,1,Defensive Shield Matrix,Protects one facility from a single attack.,1,1,, +Protection,1,Emergency Barrier,Prevents damage to units in one territory for one turn.,,2,, +Protection,1,Diplomatic Immunity,Protects one Hero from any damage in the next attack.,,,2, +Protection,1,Cultural Sanctuary,Protects a Civilization for any negative cultural or economical effect in this turn.,,,1,1 +Protection,1,Planetary Shield Matrix,Prevent the next attack against one of your planets.,,2,, +Protection,1,Diplomatic Immunity,Nullify one diplomatic action targeted at your civilization.,,,1, +Protection,1,Economic Firewall,Prevent the loss of up to 2 Economy resources from an opponent's action.,,,,1 +Protection,1,Emergency Defense Protoco,"When attacked, immediately gain +2 Military resource for defense only. Resource returns to normal after combat.",,1,, +Protection,1,Data Encryption System,Protect one stealing or viewing action directed at your hand or discard pile by opponents.,,1,, +Protection,1,Counterintelligence,"When an opponent attempts to view or discard cards from your hand, cancel that effect. You may then look at 1 random card from their hand.",,1,1, +Protection,2,,,,,, +Protection,2,Quantum Force Field,Create an inpenetrable barrier around a territory at the end of this turn.,2,2,, +Protection,2,Trade Route Security,Cancel up to 3 trades in this turn.,1,1,,2 +Protection,2,Neural Firewall,Prevents up to 2 Program effects in this turn.,,2,1,1 +Protection,2,Quantum Barrier Field,Create an impenetrable defense around one sector that lasts for a turn. No units can enter or leave this sector during this time.,1,3,, +Protection,2,Cultural Preservation Accord,"Prevent any loss of Diplomacy resources for 1 full round. Additionally, all diplomatic actions against you cost opponents +1 Diplomacy resource.",,,2,2 +Protection,2,Strategic Resource Cache,"When an opponent's action would cause you to lose resources, reveal this card to maintain minimum levels of 1 in each resource type.",,1,2,1 +Protection,2,Countermeasure Array,Reflect the effects of an opponent's Action card back to them. The opponent must resolve the effects of their own card against themselves.,2,2,, +Protection,3,Quantum Encryption,"Your cards cannot be viewed, copied, or discarded by opponents. You can discard this card to examine any player's discard pile and return 1 card to your hand.",,3,,2 +Protection,3,Celestial Aegis,Protects one Civilization from any types off attack in this turn.,3,3,3,3 +Protection,3,Cosmic Void Shield,Creates an artificial space-time anomaly that makes one territory completely immune to all effects and attacks for one turn,3,2,2,2 +Protection,3,Temporal Stasis Field,"Pause all effects, both positive and negative, targeting your civilization for one full round. Play at the start of any player's turn.",3,5,2,1 +Protection,3,Galactic Sanctuary Declaration,"Declare one of your territories as a protected sanctuary. No military action, sabotage, or hostile effects can target this territory for the rest of the game.",,3,5,4 +Protection,3,Ancient Defense Network,"When attacked, activate dormant defense systems from an ancient civilization. Triple your Military resource and your units defense for this defense only. After use, reduce your Technology resource by 1.",,4,2,4 +Agreement,1,Mutual Defense Pact,Both parties commit to defend each other if attacked. Each player gains +1 Military resource during defense actions when the other is threatened.,,,1, +Agreement,1,Scientific Collaboration Treaty,"Both parties share technological advancements. When one player gains a Technology resource, the other player may draw 1 card.",,,1, +Agreement,1,Open Borders Initiative,Free movement between territories. Both players may move units through each other's controlled sectors without penalty.,,,1, +Agreement,1,Resource Sharing Accord,Declare one resource type when played. Both parties may exchange this resource type freely during their turns.,,,1, +Agreement,1,Non-Aggression Protocol,"Players cannot attack each other. If broken, the violator loses 2 Diplomacy resources.",,,1, +Agreement,1,Cultural Exchange Pact,"Both parties gain +1 Diplomacy resource when conducting diplomatic actions with neutral civilizations. Once per turn, either party may spend 1 Diplomacy to draw a card.",,,1, +Agreement,1,Trade Route Establishment,Requires connected APN ranges. Both parties gain +1 Economy resource during income phases when trading with each other.,,,1, +Agreement,1,Joint Research Initiative,"When one party develops a Technology card, the other may view the top 2 cards of the Technology deck and place one on top.",,,1, +Agreement,1,Information Sharing Treaty,All signing parties must reveal their hands to each other at the beginning of their turns. Any player may cancel this agreement by discarding 1 card from their hand.,,,1, +Agreement,2,Galactic Council Membership,All signing parties gain representation in the Galactic Council. Each player gains +1 Diplomacy resource and may veto one Action card played against them per round.,,,2, +Agreement,2,Joint Military Operations,Combine Military resources for attacks or defense and +1 for each signing parties.,,,2, +Agreement,2,Technology Transfer Program,Players may exchange Technology cards without the usual resource cost once per turn.,,,2, +Agreement,2,Interstellar Development Compact,Each signing player may develop one facility from another player's discard pile. Both gain +1 Economy resource during income phases.,,,2, +Agreement,2,Strategic Resource Alliance,"Designate one resource type (Military, Technology, Diplomacy, or Economy). Both parties gain +1 of that resource during income phases.",,,2, +Agreement,2,Shared Defense Grid,"Combine defensive capabilities. When either player is attacked, both may contribute Military resources to the defense.",,,2, +Agreement,2,Diplomatic Corps Exchange,"Once per turn, either party may use the other's Diplomacy resource for a single diplomatic action.",,,2, +Agreement,2,Technological Breakthrough Sharing,"When either party develops a Tier 2 or higher Technology card, the other may immediately reduce the cost of their next Technology card by 1.",,,2, +Agreement,2,Economic Integration Protocol,"Pool Economy resources for major purchases. When buying Facilities or Units costing 3+ resources, either party may contribute Economy resources to reduce the cost.",,,2, +Agreement,2,Joint Intelligence Directive,"Once per turn, each signing party may look at one random card from a non-signing player's hand. Once per game, signing parties may collectively choose to discard 1 card from a non-signing player's hand.",,,2, +Agreement,3,Celestial Concordat,All signing civilizations unite under a shared vision. Players pool Diplomacy resources for joint diplomatic actions and gain immunity to hostile Action cards when pay the card cost from the pool.,,,3, +Agreement,3,Unified Economic Zone,"Create a shared market that increases all trading efficiency. When any signing player trades resources, they gain +1 additional resource of that type.",,,3, +Agreement,3,Ancient Knowledge Exchange,Share the secrets of forgotten technologies. Each player may access the discard pile once per turn to retrieve one Technology card of their choice.,,,3, +Agreement,3,Unified Research Consortium,"Create a joint research body. All Technology costs are reduced by 1 for signing parties. Once per game, develop one Legendary Technology card at half cost.",,,3, +Agreement,3,Ancient Artifact Accord,"Jointly excavate and study powerful artifacts. Each turn, place 1 resource token on this card. When it reaches 5, each player may immediately develop any card from their hand without paying its resource cost and discard this card.",,,3, +Agreement,3,Archive Access Accord,"Signing parties may freely look through each other's discard piles. Once per turn, each signing party may retrieve 1 card from any signing party's discard pile by paying its resource cost.",,,3, +Trade,1,Information Exchange,"Exchange 2 cards randomly with target player. Then, you may discard 1 card from your hand to force them to discard 1 card of your choice from their hand.",,,1,1 +Trade,1,Black Market Connections,Look at the top 3 cards of any player's deck. You may purchase one of these cards by paying half of its resource cost. Place the remaining cards on the bottom of their deck.,,,,2 +Trade,1,Resource Exchange Protocol,Exchange up to 2 resources of one type for 2 resources of another type.,,,,1 +Trade,1,Minor Trade Route,"Establish a trade route between two adjacent sectors, generating 1 Economy resource per turn.",,,,2 +Trade,1,Knowledge Market,"Trade 1 Technology resource to receive 2 Economy resources, or vice versa",,1,,1 +Trade,1,Military Contractors,Convert 2 Economy resources into 1 Military resource and deploy one basic unit for free,2,,,1 +Trade,1,Cultural Exchange,"Trade cultural artifacts with another civilization, both gaining 2 Diplomacy resource",,,1,1 +Trade,1,Emergency Supply Line,"Instantly gain 3 resources of your choice, but of the same type",,,,2 +Trade,2,Corporate Espionage,Target player reveals all Trade and Economy cards in their hand. You may select one of these cards and add it to your hand. Target gains 1 Economy resource.,,1,,2 +Trade,2,Interstellar Commerce Hub,Establish a commerce hub (this card in play) that generates 2 Economy resources per turn and allows trade with any civilization regardless of distance.,,1,,3 +Trade,2,Technology Licensing,Install a Technology card to another civilization if accepted and put 6 Economy counter to it. Each turn you can collect up to 2 Economy counter.,,2,,2 +Trade,2,Diplomatic Trade Alliance,"Form a trade alliance with another civilization, both gaining 1 Economy and 1 Diplomacy resource per turn.",,,2,2 +Trade,2,Black Market Networks,"Gain 4 resources of any type, but all other civilizations gain 1 Diplomacy resource",1,,,3 +Trade,3,Galactic Economic Union,"Form an Economic Union with up to three civilizations, all members gaining 2 Economy resources per turn and immunity to negative economic effects.",,1,2,4 +Trade,3,Galactic Takeover,"Force all players to reveal their hands. You may take one Economy or Trade card from each player's hand. For each card taken this way, provide that player with 1 resource of their choice.",2,,,5 +Trade,3,Quantum Transportation Network,"Establish instantaneous trade routes that connect all your sectors, doubling all Economy resource generation.",,3,,3 +Trade,3,Resource Transmutation Matrix,Convert any resources into any other resources at a 1:1 ratio for all signing Civilization.,1,3,,4 diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000..c19ad48 Binary files /dev/null and b/public/apple-touch-icon.png differ diff --git a/public/build/assets/app-1K7jybbe.css b/public/build/assets/app-1K7jybbe.css new file mode 100644 index 0000000..615c8be --- /dev/null +++ b/public/build/assets/app-1K7jybbe.css @@ -0,0 +1 @@ +/*! tailwindcss v4.1.13 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:"Instrument Sans",ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-indigo-950:oklch(25.7% .09 281.288);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-gray-950:oklch(13% .028 261.692);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-xl:36rem;--container-2xl:42rem;--container-4xl:56rem;--container-5xl:64rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--drop-shadow-2xl:0 25px 25px #00000026;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.-top-6{top:calc(var(--spacing)*-6)}.top-0{top:calc(var(--spacing)*0)}.top-1\.5{top:calc(var(--spacing)*1.5)}.top-2{top:calc(var(--spacing)*2)}.top-3{top:calc(var(--spacing)*3)}.top-4{top:calc(var(--spacing)*4)}.top-10{top:calc(var(--spacing)*10)}.top-24{top:calc(var(--spacing)*24)}.-right-6{right:calc(var(--spacing)*-6)}.right-1\.5{right:calc(var(--spacing)*1.5)}.right-2{right:calc(var(--spacing)*2)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.-bottom-6{bottom:calc(var(--spacing)*-6)}.-left-6{left:calc(var(--spacing)*-6)}.left-1\.5{left:calc(var(--spacing)*1.5)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing)*2)}.left-3{left:calc(var(--spacing)*3)}.left-4{left:calc(var(--spacing)*4)}.left-10{left:calc(var(--spacing)*10)}.left-full{left:100%}.z-0{z-index:0}.z-10{z-index:10}.z-50{z-index:50}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-auto{margin-inline:auto}.my-auto{margin-block:auto}.ms-3{margin-inline-start:calc(var(--spacing)*3)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-12{margin-top:calc(var(--spacing)*12)}.mt-16{margin-top:calc(var(--spacing)*16)}.mt-20{margin-top:calc(var(--spacing)*20)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-1\.5{margin-right:calc(var(--spacing)*1.5)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-3{margin-right:calc(var(--spacing)*3)}.mr-4{margin-right:calc(var(--spacing)*4)}.mb-0\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.mb-16{margin-bottom:calc(var(--spacing)*16)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.-ml-px{margin-left:-1px}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.inline-table{display:inline-table}.list-item{display:list-item}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row{display:table-row}.table-row-group{display:table-row-group}.aspect-\[3\/4\]{aspect-ratio:3/4}.aspect-\[4\/3\]{aspect-ratio:4/3}.h-0\.5{height:calc(var(--spacing)*.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-16{height:calc(var(--spacing)*16)}.h-20{height:calc(var(--spacing)*20)}.h-24{height:calc(var(--spacing)*24)}.h-32{height:calc(var(--spacing)*32)}.h-36{height:calc(var(--spacing)*36)}.h-64{height:calc(var(--spacing)*64)}.h-\[420px\]{height:420px}.h-auto{height:auto}.h-full{height:100%}.max-h-96{max-height:calc(var(--spacing)*96)}.min-h-screen{min-height:100vh}.w-1\/2{width:50%}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-32{width:calc(var(--spacing)*32)}.w-64{width:calc(var(--spacing)*64)}.w-\[300px\]{width:300px}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-rotate-12{rotate:-12deg}.rotate-12{rotate:12deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.transform\!{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)!important}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.justify-items-center{justify-items:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}.gap-12{gap:calc(var(--spacing)*12)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing)*3)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*3)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-l-md{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-\[\#F59E0B\]{border-color:#f59e0b}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-700\/30{border-color:#1447e64d}@supports (color:color-mix(in lab,red,red)){.border-blue-700\/30{border-color:color-mix(in oklab,var(--color-blue-700)30%,transparent)}}.border-emerald-700\/30{border-color:#0079564d}@supports (color:color-mix(in lab,red,red)){.border-emerald-700\/30{border-color:color-mix(in oklab,var(--color-emerald-700)30%,transparent)}}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-600{border-color:var(--color-gray-600)}.border-gray-700{border-color:var(--color-gray-700)}.border-gray-800{border-color:var(--color-gray-800)}.border-indigo-500\/30{border-color:#625fff4d}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/30{border-color:color-mix(in oklab,var(--color-indigo-500)30%,transparent)}}.border-indigo-700\/30{border-color:#432dd74d}@supports (color:color-mix(in lab,red,red)){.border-indigo-700\/30{border-color:color-mix(in oklab,var(--color-indigo-700)30%,transparent)}}.border-purple-700\/30{border-color:#8200da4d}@supports (color:color-mix(in lab,red,red)){.border-purple-700\/30{border-color:color-mix(in oklab,var(--color-purple-700)30%,transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-slate-600{border-color:var(--color-slate-600)}.border-slate-700{border-color:var(--color-slate-700)}.border-slate-700\/30{border-color:#3141584d}@supports (color:color-mix(in lab,red,red)){.border-slate-700\/30{border-color:color-mix(in oklab,var(--color-slate-700)30%,transparent)}}.border-slate-700\/50{border-color:#31415880}@supports (color:color-mix(in lab,red,red)){.border-slate-700\/50{border-color:color-mix(in oklab,var(--color-slate-700)50%,transparent)}}.bg-\[\#09090B\]{background-color:#09090b}.bg-\[\#18181B\]\/60{background-color:#18181b99}.bg-\[\#EA580C\]{background-color:#ea580c}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-600{background-color:var(--color-amber-600)}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black)40%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-500\/75{background-color:#6a7282bf}@supports (color:color-mix(in lab,red,red)){.bg-gray-500\/75{background-color:color-mix(in oklab,var(--color-gray-500)75%,transparent)}}.bg-gray-900\/90{background-color:#101828e6}@supports (color:color-mix(in lab,red,red)){.bg-gray-900\/90{background-color:color-mix(in oklab,var(--color-gray-900)90%,transparent)}}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-600{background-color:var(--color-green-600)}.bg-green-600\/80{background-color:#00a544cc}@supports (color:color-mix(in lab,red,red)){.bg-green-600\/80{background-color:color-mix(in oklab,var(--color-green-600)80%,transparent)}}.bg-green-600\/90{background-color:#00a544e6}@supports (color:color-mix(in lab,red,red)){.bg-green-600\/90{background-color:color-mix(in oklab,var(--color-green-600)90%,transparent)}}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-indigo-600\/20{background-color:#4f39f633}@supports (color:color-mix(in lab,red,red)){.bg-indigo-600\/20{background-color:color-mix(in oklab,var(--color-indigo-600)20%,transparent)}}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-600{background-color:var(--color-purple-600)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-600{background-color:var(--color-red-600)}.bg-slate-700{background-color:var(--color-slate-700)}.bg-slate-800\/30{background-color:#1d293d4d}@supports (color:color-mix(in lab,red,red)){.bg-slate-800\/30{background-color:color-mix(in oklab,var(--color-slate-800)30%,transparent)}}.bg-slate-800\/50{background-color:#1d293d80}@supports (color:color-mix(in lab,red,red)){.bg-slate-800\/50{background-color:color-mix(in oklab,var(--color-slate-800)50%,transparent)}}.bg-slate-900{background-color:var(--color-slate-900)}.bg-slate-900\/40{background-color:#0f172b66}@supports (color:color-mix(in lab,red,red)){.bg-slate-900\/40{background-color:color-mix(in oklab,var(--color-slate-900)40%,transparent)}}.bg-slate-900\/50{background-color:#0f172b80}@supports (color:color-mix(in lab,red,red)){.bg-slate-900\/50{background-color:color-mix(in oklab,var(--color-slate-900)50%,transparent)}}.bg-slate-900\/60{background-color:#0f172b99}@supports (color:color-mix(in lab,red,red)){.bg-slate-900\/60{background-color:color-mix(in oklab,var(--color-slate-900)60%,transparent)}}.bg-slate-900\/80{background-color:#0f172bcc}@supports (color:color-mix(in lab,red,red)){.bg-slate-900\/80{background-color:color-mix(in oklab,var(--color-slate-900)80%,transparent)}}.bg-slate-900\/90{background-color:#0f172be6}@supports (color:color-mix(in lab,red,red)){.bg-slate-900\/90{background-color:color-mix(in oklab,var(--color-slate-900)90%,transparent)}}.bg-white{background-color:var(--color-white)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-amber-500{--tw-gradient-from:var(--color-amber-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-indigo-400{--tw-gradient-from:var(--color-indigo-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-slate-700\/50{--tw-gradient-from:#31415880}@supports (color:color-mix(in lab,red,red)){.from-slate-700\/50{--tw-gradient-from:color-mix(in oklab,var(--color-slate-700)50%,transparent)}}.from-slate-700\/50{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-slate-900{--tw-gradient-from:var(--color-slate-900);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.via-slate-800{--tw-gradient-via:var(--color-slate-800);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-indigo-950{--tw-gradient-to:var(--color-indigo-950);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-orange-600{--tw-gradient-to:var(--color-orange-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-purple-400{--tw-gradient-to:var(--color-purple-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-slate-800\/50{--tw-gradient-to:#1d293d80}@supports (color:color-mix(in lab,red,red)){.to-slate-800\/50{--tw-gradient-to:color-mix(in oklab,var(--color-slate-800)50%,transparent)}}.to-slate-800\/50{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-slate-900{--tw-gradient-to:var(--color-slate-900);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.mask-repeat{-webkit-mask-repeat:repeat;mask-repeat:repeat}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.p-12{padding:calc(var(--spacing)*12)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.py-20{padding-block:calc(var(--spacing)*20)}.pt-1\.5{padding-top:calc(var(--spacing)*1.5)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-6{padding-top:calc(var(--spacing)*6)}.pt-8{padding-top:calc(var(--spacing)*8)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pl-6{padding-left:calc(var(--spacing)*6)}.text-center{text-align:center}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-wrap{text-wrap:wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#EA580C\]{color:#ea580c}.text-amber-400{color:var(--color-amber-400)}.text-amber-500{color:var(--color-amber-500)}.text-amber-800{color:var(--color-amber-800)}.text-blue-400{color:var(--color-blue-400)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-blue-900{color:var(--color-blue-900)}.text-emerald-400{color:var(--color-emerald-400)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-gray-950{color:var(--color-gray-950)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-800{color:var(--color-green-800)}.text-indigo-300{color:var(--color-indigo-300)}.text-indigo-400{color:var(--color-indigo-400)}.text-orange-500{color:var(--color-orange-500)}.text-purple-400{color:var(--color-purple-400)}.text-purple-500{color:var(--color-purple-500)}.text-purple-800{color:var(--color-purple-800)}.text-red-100{color:var(--color-red-100)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-red-900{color:var(--color-red-900)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.text-yellow-800{color:var(--color-yellow-800)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.placeholder-slate-400::placeholder{color:var(--color-slate-400)}.opacity-10{opacity:.1}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-orange-500\/20{--tw-shadow-color:#fe6e0033}@supports (color:color-mix(in lab,red,red)){.shadow-orange-500\/20{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-orange-500)20%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-orange-500\/50{--tw-shadow-color:#fe6e0080}@supports (color:color-mix(in lab,red,red)){.shadow-orange-500\/50{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-orange-500)50%,transparent)var(--tw-shadow-alpha),transparent)}}.ring-gray-100{--tw-ring-color:var(--color-gray-100)}.ring-gray-200{--tw-ring-color:var(--color-gray-200)}.ring-gray-300{--tw-ring-color:var(--color-gray-300)}.ring-gray-950\/5{--tw-ring-color:#0307120d}@supports (color:color-mix(in lab,red,red)){.ring-gray-950\/5{--tw-ring-color:color-mix(in oklab,var(--color-gray-950)5%,transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.blur-\[120px\]{--tw-blur:blur(120px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a))drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a)drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow-2xl{--tw-drop-shadow-size:drop-shadow(0 25px 25px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-2xl));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter\!{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)!important}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.\[program\:cards-api-queue-worker\]{program:cards-api-queue-worker}@media (hover:hover){.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:text-red-400:is(:where(.group):hover *){color:var(--color-red-400)}.group-hover\:opacity-90:is(:where(.group):hover *){opacity:.9}}.last\:mb-0:last-child{margin-bottom:calc(var(--spacing)*0)}@media (hover:hover){.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:transform:hover{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.hover\:border-red-500:hover{border-color:var(--color-red-500)}.hover\:bg-\[\#d44d0b\]:hover{background-color:#d44d0b}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-slate-600:hover{background-color:var(--color-slate-600)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/5:hover{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.hover\:text-blue-300:hover{color:var(--color-blue-300)}.hover\:text-blue-800:hover{color:var(--color-blue-800)}.hover\:text-emerald-300:hover{color:var(--color-emerald-300)}.hover\:text-gray-400:hover{color:var(--color-gray-400)}.hover\:text-gray-500:hover{color:var(--color-gray-500)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-indigo-300:hover{color:var(--color-indigo-300)}.hover\:text-purple-300:hover{color:var(--color-purple-300)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-slate-200:hover{color:var(--color-slate-200)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:z-10:focus{z-index:10}.focus\:border-blue-300:focus{border-color:var(--color-blue-300)}.focus\:border-red-500:focus{border-color:var(--color-red-500)}.focus\:ring:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:bg-gray-100:active{background-color:var(--color-gray-100)}.active\:text-gray-500:active{color:var(--color-gray-500)}.active\:text-gray-700:active{color:var(--color-gray-700)}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:40rem){.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:flex-1{flex:1}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:px-6{padding-inline:calc(var(--spacing)*6)}.sm\:text-left{text-align:left}}@media (min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:block{display:block}.md\:inline{display:inline}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}}@media (min-width:64rem){.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:mx-0{margin-inline:calc(var(--spacing)*0)}.lg\:mb-0{margin-bottom:calc(var(--spacing)*0)}.lg\:grid{display:grid}.lg\:w-1\/2{width:50%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:justify-start{justify-content:flex-start}.lg\:gap-8{gap:calc(var(--spacing)*8)}.lg\:gap-12{gap:calc(var(--spacing)*12)}.lg\:px-8{padding-inline:calc(var(--spacing)*8)}.lg\:py-32{padding-block:calc(var(--spacing)*32)}.lg\:text-left{text-align:left}.lg\:text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.lg\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}.rtl\:flex-row-reverse:where(:dir(rtl),[dir=rtl],[dir=rtl] *){flex-direction:row-reverse}@media (prefers-color-scheme:dark){:where(.dark\:divide-gray-700>:not(:last-child)){border-color:var(--color-gray-700)}.dark\:border-blue-800{border-color:var(--color-blue-800)}.dark\:border-gray-600{border-color:var(--color-gray-600)}.dark\:border-gray-700{border-color:var(--color-gray-700)}.dark\:border-gray-800{border-color:var(--color-gray-800)}.dark\:border-red-800{border-color:var(--color-red-800)}.dark\:bg-amber-900\/30{background-color:#7b33064d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-900\/30{background-color:color-mix(in oklab,var(--color-amber-900)30%,transparent)}}.dark\:bg-blue-900{background-color:var(--color-blue-900)}.dark\:bg-blue-900\/20{background-color:#1c398e33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-900\/20{background-color:color-mix(in oklab,var(--color-blue-900)20%,transparent)}}.dark\:bg-gray-800{background-color:var(--color-gray-800)}.dark\:bg-gray-800\/50{background-color:#1e293980}@supports (color:color-mix(in lab,red,red)){.dark\:bg-gray-800\/50{background-color:color-mix(in oklab,var(--color-gray-800)50%,transparent)}}.dark\:bg-gray-900{background-color:var(--color-gray-900)}.dark\:bg-gray-900\/75{background-color:#101828bf}@supports (color:color-mix(in lab,red,red)){.dark\:bg-gray-900\/75{background-color:color-mix(in oklab,var(--color-gray-900)75%,transparent)}}.dark\:bg-green-900{background-color:var(--color-green-900)}.dark\:bg-green-900\/30{background-color:#0d542b4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-900\/30{background-color:color-mix(in oklab,var(--color-green-900)30%,transparent)}}.dark\:bg-purple-900{background-color:var(--color-purple-900)}.dark\:bg-red-900{background-color:var(--color-red-900)}.dark\:bg-red-900\/20{background-color:#82181a33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-900\/20{background-color:color-mix(in oklab,var(--color-red-900)20%,transparent)}}.dark\:bg-yellow-900{background-color:var(--color-yellow-900)}.dark\:text-amber-400{color:var(--color-amber-400)}.dark\:text-blue-100{color:var(--color-blue-100)}.dark\:text-blue-200{color:var(--color-blue-200)}.dark\:text-blue-300{color:var(--color-blue-300)}.dark\:text-blue-400{color:var(--color-blue-400)}.dark\:text-gray-100{color:var(--color-gray-100)}.dark\:text-gray-200{color:var(--color-gray-200)}.dark\:text-gray-300{color:var(--color-gray-300)}.dark\:text-gray-400{color:var(--color-gray-400)}.dark\:text-gray-500{color:var(--color-gray-500)}.dark\:text-gray-600{color:var(--color-gray-600)}.dark\:text-green-200{color:var(--color-green-200)}.dark\:text-green-400{color:var(--color-green-400)}.dark\:text-purple-200{color:var(--color-purple-200)}.dark\:text-red-100{color:var(--color-red-100)}.dark\:text-red-200{color:var(--color-red-200)}.dark\:text-red-300{color:var(--color-red-300)}.dark\:text-red-400{color:var(--color-red-400)}.dark\:text-white{color:var(--color-white)}.dark\:text-yellow-200{color:var(--color-yellow-200)}.dark\:ring-gray-700{--tw-ring-color:var(--color-gray-700)}.dark\:ring-gray-800{--tw-ring-color:var(--color-gray-800)}.dark\:ring-white\/10{--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\:ring-white\/10{--tw-ring-color:color-mix(in oklab,var(--color-white)10%,transparent)}}@media (hover:hover){.dark\:hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.dark\:hover\:bg-gray-800:hover{background-color:var(--color-gray-800)}.dark\:hover\:text-blue-300:hover{color:var(--color-blue-300)}.dark\:hover\:text-gray-300:hover{color:var(--color-gray-300)}.dark\:hover\:text-white:hover{color:var(--color-white)}}.dark\:focus\:border-blue-700:focus{border-color:var(--color-blue-700)}.dark\:focus\:border-blue-800:focus{border-color:var(--color-blue-800)}.dark\:active\:bg-gray-700:active{background-color:var(--color-gray-700)}.dark\:active\:text-gray-300:active{color:var(--color-gray-300)}}}.card-hover{transition:all .3s}.card-hover:hover{transform:translateY(-4px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.card-flip{perspective:1000px}.card-flip-inner{transform-style:preserve-3d;width:100%;height:100%;transition:transform .6s;position:relative}.card-flip:hover .card-flip-inner{transform:rotateY(180deg)}.card-flip .card-front,.card-flip .card-back{backface-visibility:hidden;width:100%;height:100%;position:absolute}.card-flip .card-back{transform:rotateY(180deg)}.gradient-bg{background:linear-gradient(135deg,#1e293b,#334155,#475569)}.card-glow{box-shadow:0 0 20px #ef44444d}.pulse-glow{animation:2s infinite pulse-glow}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px #ef44444d}50%{box-shadow:0 0 30px #ef444480}}@media (max-width:640px){h1{font-size:2.5rem}h2{font-size:1.875rem}p{font-size:1rem}}@keyframes float{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-15px)rotate(1deg)}}@keyframes moon-pulse{0%,to{stroke-width:3px;filter:drop-shadow(0 0 5px #ea580c66)}50%{stroke-width:5px;filter:drop-shadow(0 0 20px #ea580ccc)}}@keyframes glow-expand{0%,to{opacity:.2;transform:scale(1)}50%{opacity:.5;transform:scale(1.1)}}.card-animation-container{animation:6s ease-in-out infinite float}.card-base{transition:all .3s}.moon-path{animation:4s ease-in-out infinite moon-pulse}.glow-circle{transform-origin:150px 180px;animation:4s ease-in-out infinite glow-expand}.floating-card-1{animation:5s ease-in-out infinite reverse float}.floating-card-2{animation:7s ease-in-out infinite float}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}} diff --git a/public/build/assets/app-CLpgfa1h.css b/public/build/assets/app-CLpgfa1h.css deleted file mode 100644 index 74efdc2..0000000 --- a/public/build/assets/app-CLpgfa1h.css +++ /dev/null @@ -1 +0,0 @@ -/*! tailwindcss v4.1.13 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--font-sans:"Instrument Sans",ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-800:oklch(47.6% .114 61.907);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-indigo-950:oklch(25.7% .09 281.288);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-gray-950:oklch(13% .028 261.692);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\.5{top:calc(var(--spacing)*1.5)}.top-2{top:calc(var(--spacing)*2)}.top-3{top:calc(var(--spacing)*3)}.top-4{top:calc(var(--spacing)*4)}.top-10{top:calc(var(--spacing)*10)}.top-20{top:calc(var(--spacing)*20)}.top-24{top:calc(var(--spacing)*24)}.right-1\.5{right:calc(var(--spacing)*1.5)}.right-2{right:calc(var(--spacing)*2)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.right-10{right:calc(var(--spacing)*10)}.right-20{right:calc(var(--spacing)*20)}.bottom-10{bottom:calc(var(--spacing)*10)}.bottom-20{bottom:calc(var(--spacing)*20)}.left-1\.5{left:calc(var(--spacing)*1.5)}.left-2{left:calc(var(--spacing)*2)}.left-3{left:calc(var(--spacing)*3)}.left-4{left:calc(var(--spacing)*4)}.left-10{left:calc(var(--spacing)*10)}.left-20{left:calc(var(--spacing)*20)}.left-full{left:100%}.z-0{z-index:0}.z-50{z-index:50}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-auto{margin-inline:auto}.my-auto{margin-block:auto}.ms-3{margin-inline-start:calc(var(--spacing)*3)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-12{margin-top:calc(var(--spacing)*12)}.mt-16{margin-top:calc(var(--spacing)*16)}.mt-20{margin-top:calc(var(--spacing)*20)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-1\.5{margin-right:calc(var(--spacing)*1.5)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-3{margin-right:calc(var(--spacing)*3)}.mr-4{margin-right:calc(var(--spacing)*4)}.mb-0\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.mb-16{margin-bottom:calc(var(--spacing)*16)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.-ml-px{margin-left:-1px}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.inline-table{display:inline-table}.list-item{display:list-item}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row{display:table-row}.table-row-group{display:table-row-group}.aspect-\[3\/4\]{aspect-ratio:3/4}.aspect-\[4\/3\]{aspect-ratio:4/3}.h-0\.5{height:calc(var(--spacing)*.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-16{height:calc(var(--spacing)*16)}.h-20{height:calc(var(--spacing)*20)}.h-24{height:calc(var(--spacing)*24)}.h-32{height:calc(var(--spacing)*32)}.h-auto{height:auto}.h-full{height:100%}.max-h-96{max-height:calc(var(--spacing)*96)}.min-h-screen{min-height:100vh}.w-1\/2{width:50%}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-32{width:calc(var(--spacing)*32)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-7xl{max-width:var(--container-7xl)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.transform\!{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)!important}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.justify-items-center{justify-items:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing)*3)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*3)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-l-md{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-\[\#F59E0B\]{border-color:#f59e0b}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-700\/30{border-color:#1447e64d}@supports (color:color-mix(in lab,red,red)){.border-blue-700\/30{border-color:color-mix(in oklab,var(--color-blue-700)30%,transparent)}}.border-emerald-700\/30{border-color:#0079564d}@supports (color:color-mix(in lab,red,red)){.border-emerald-700\/30{border-color:color-mix(in oklab,var(--color-emerald-700)30%,transparent)}}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-600{border-color:var(--color-gray-600)}.border-indigo-500\/30{border-color:#625fff4d}@supports (color:color-mix(in lab,red,red)){.border-indigo-500\/30{border-color:color-mix(in oklab,var(--color-indigo-500)30%,transparent)}}.border-indigo-700\/30{border-color:#432dd74d}@supports (color:color-mix(in lab,red,red)){.border-indigo-700\/30{border-color:color-mix(in oklab,var(--color-indigo-700)30%,transparent)}}.border-purple-700\/30{border-color:#8200da4d}@supports (color:color-mix(in lab,red,red)){.border-purple-700\/30{border-color:color-mix(in oklab,var(--color-purple-700)30%,transparent)}}.border-red-200{border-color:var(--color-red-200)}.border-slate-600{border-color:var(--color-slate-600)}.border-slate-700{border-color:var(--color-slate-700)}.border-slate-700\/30{border-color:#3141584d}@supports (color:color-mix(in lab,red,red)){.border-slate-700\/30{border-color:color-mix(in oklab,var(--color-slate-700)30%,transparent)}}.border-slate-700\/50{border-color:#31415880}@supports (color:color-mix(in lab,red,red)){.border-slate-700\/50{border-color:color-mix(in oklab,var(--color-slate-700)50%,transparent)}}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-600{background-color:var(--color-amber-600)}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\/40{background-color:color-mix(in oklab,var(--color-black)40%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-500\/75{background-color:#6a7282bf}@supports (color:color-mix(in lab,red,red)){.bg-gray-500\/75{background-color:color-mix(in oklab,var(--color-gray-500)75%,transparent)}}.bg-gray-900\/90{background-color:#101828e6}@supports (color:color-mix(in lab,red,red)){.bg-gray-900\/90{background-color:color-mix(in oklab,var(--color-gray-900)90%,transparent)}}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-600{background-color:var(--color-green-600)}.bg-green-600\/80{background-color:#00a544cc}@supports (color:color-mix(in lab,red,red)){.bg-green-600\/80{background-color:color-mix(in oklab,var(--color-green-600)80%,transparent)}}.bg-green-600\/90{background-color:#00a544e6}@supports (color:color-mix(in lab,red,red)){.bg-green-600\/90{background-color:color-mix(in oklab,var(--color-green-600)90%,transparent)}}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-indigo-600\/20{background-color:#4f39f633}@supports (color:color-mix(in lab,red,red)){.bg-indigo-600\/20{background-color:color-mix(in oklab,var(--color-indigo-600)20%,transparent)}}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-600{background-color:var(--color-purple-600)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-600{background-color:var(--color-red-600)}.bg-slate-600{background-color:var(--color-slate-600)}.bg-slate-700{background-color:var(--color-slate-700)}.bg-slate-800\/30{background-color:#1d293d4d}@supports (color:color-mix(in lab,red,red)){.bg-slate-800\/30{background-color:color-mix(in oklab,var(--color-slate-800)30%,transparent)}}.bg-slate-800\/50{background-color:#1d293d80}@supports (color:color-mix(in lab,red,red)){.bg-slate-800\/50{background-color:color-mix(in oklab,var(--color-slate-800)50%,transparent)}}.bg-slate-900{background-color:var(--color-slate-900)}.bg-slate-900\/40{background-color:#0f172b66}@supports (color:color-mix(in lab,red,red)){.bg-slate-900\/40{background-color:color-mix(in oklab,var(--color-slate-900)40%,transparent)}}.bg-slate-900\/50{background-color:#0f172b80}@supports (color:color-mix(in lab,red,red)){.bg-slate-900\/50{background-color:color-mix(in oklab,var(--color-slate-900)50%,transparent)}}.bg-slate-900\/60{background-color:#0f172b99}@supports (color:color-mix(in lab,red,red)){.bg-slate-900\/60{background-color:color-mix(in oklab,var(--color-slate-900)60%,transparent)}}.bg-slate-900\/80{background-color:#0f172bcc}@supports (color:color-mix(in lab,red,red)){.bg-slate-900\/80{background-color:color-mix(in oklab,var(--color-slate-900)80%,transparent)}}.bg-slate-900\/90{background-color:#0f172be6}@supports (color:color-mix(in lab,red,red)){.bg-slate-900\/90{background-color:color-mix(in oklab,var(--color-slate-900)90%,transparent)}}.bg-white{background-color:var(--color-white)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-amber-500{--tw-gradient-from:var(--color-amber-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-indigo-400{--tw-gradient-from:var(--color-indigo-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-red-500{--tw-gradient-from:var(--color-red-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-red-600{--tw-gradient-from:var(--color-red-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-slate-600{--tw-gradient-from:var(--color-slate-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-slate-700\/50{--tw-gradient-from:#31415880}@supports (color:color-mix(in lab,red,red)){.from-slate-700\/50{--tw-gradient-from:color-mix(in oklab,var(--color-slate-700)50%,transparent)}}.from-slate-700\/50{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-slate-900{--tw-gradient-from:var(--color-slate-900);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.via-slate-800{--tw-gradient-via:var(--color-slate-800);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-amber-500{--tw-gradient-to:var(--color-amber-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-amber-700{--tw-gradient-to:var(--color-amber-700);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-indigo-950{--tw-gradient-to:var(--color-indigo-950);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-orange-600{--tw-gradient-to:var(--color-orange-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-purple-400{--tw-gradient-to:var(--color-purple-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-red-800{--tw-gradient-to:var(--color-red-800);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-slate-800{--tw-gradient-to:var(--color-slate-800);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-slate-800\/50{--tw-gradient-to:#1d293d80}@supports (color:color-mix(in lab,red,red)){.to-slate-800\/50{--tw-gradient-to:color-mix(in oklab,var(--color-slate-800)50%,transparent)}}.to-slate-800\/50{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-slate-900{--tw-gradient-to:var(--color-slate-900);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.mask-repeat{-webkit-mask-repeat:repeat;mask-repeat:repeat}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.p-12{padding:calc(var(--spacing)*12)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.py-20{padding-block:calc(var(--spacing)*20)}.pt-1\.5{padding-top:calc(var(--spacing)*1.5)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-6{padding-top:calc(var(--spacing)*6)}.pt-8{padding-top:calc(var(--spacing)*8)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pl-6{padding-left:calc(var(--spacing)*6)}.text-center{text-align:center}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-wrap{text-wrap:wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-400{color:var(--color-amber-400)}.text-amber-500{color:var(--color-amber-500)}.text-amber-800{color:var(--color-amber-800)}.text-blue-400{color:var(--color-blue-400)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-blue-900{color:var(--color-blue-900)}.text-emerald-400{color:var(--color-emerald-400)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-gray-950{color:var(--color-gray-950)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-800{color:var(--color-green-800)}.text-indigo-300{color:var(--color-indigo-300)}.text-indigo-400{color:var(--color-indigo-400)}.text-orange-500{color:var(--color-orange-500)}.text-purple-400{color:var(--color-purple-400)}.text-purple-500{color:var(--color-purple-500)}.text-purple-800{color:var(--color-purple-800)}.text-red-100{color:var(--color-red-100)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-red-900{color:var(--color-red-900)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.text-yellow-800{color:var(--color-yellow-800)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.placeholder-slate-400::placeholder{color:var(--color-slate-400)}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-orange-500\/50{--tw-shadow-color:#fe6e0080}@supports (color:color-mix(in lab,red,red)){.shadow-orange-500\/50{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-orange-500)50%,transparent)var(--tw-shadow-alpha),transparent)}}.ring-gray-100{--tw-ring-color:var(--color-gray-100)}.ring-gray-200{--tw-ring-color:var(--color-gray-200)}.ring-gray-300{--tw-ring-color:var(--color-gray-300)}.ring-gray-950\/5{--tw-ring-color:#0307120d}@supports (color:color-mix(in lab,red,red)){.ring-gray-950\/5{--tw-ring-color:color-mix(in oklab,var(--color-gray-950)5%,transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a))drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a)drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter\!{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)!important}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.\[program\:cards-api-queue-worker\]{program:cards-api-queue-worker}@media (hover:hover){.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:text-red-400:is(:where(.group):hover *){color:var(--color-red-400)}.group-hover\:opacity-90:is(:where(.group):hover *){opacity:.9}}.last\:mb-0:last-child{margin-bottom:calc(var(--spacing)*0)}@media (hover:hover){.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:transform:hover{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.hover\:border-red-500:hover{border-color:var(--color-red-500)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-slate-600:hover{background-color:var(--color-slate-600)}.hover\:bg-slate-700:hover{background-color:var(--color-slate-700)}.hover\:text-blue-300:hover{color:var(--color-blue-300)}.hover\:text-blue-800:hover{color:var(--color-blue-800)}.hover\:text-emerald-300:hover{color:var(--color-emerald-300)}.hover\:text-gray-400:hover{color:var(--color-gray-400)}.hover\:text-gray-500:hover{color:var(--color-gray-500)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-indigo-300:hover{color:var(--color-indigo-300)}.hover\:text-purple-300:hover{color:var(--color-purple-300)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-slate-200:hover{color:var(--color-slate-200)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:z-10:focus{z-index:10}.focus\:border-blue-300:focus{border-color:var(--color-blue-300)}.focus\:border-red-500:focus{border-color:var(--color-red-500)}.focus\:ring:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:bg-gray-100:active{background-color:var(--color-gray-100)}.active\:text-gray-500:active{color:var(--color-gray-500)}.active\:text-gray-700:active{color:var(--color-gray-700)}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:40rem){.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:flex-1{flex:1}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:px-6{padding-inline:calc(var(--spacing)*6)}.sm\:text-left{text-align:left}}@media (min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:block{display:block}.md\:inline{display:inline}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.md\:text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.md\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.md\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media (min-width:64rem){.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:mb-0{margin-bottom:calc(var(--spacing)*0)}.lg\:grid{display:grid}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:gap-8{gap:calc(var(--spacing)*8)}.lg\:gap-12{gap:calc(var(--spacing)*12)}.lg\:px-8{padding-inline:calc(var(--spacing)*8)}}.rtl\:flex-row-reverse:where(:dir(rtl),[dir=rtl],[dir=rtl] *){flex-direction:row-reverse}@media (prefers-color-scheme:dark){:where(.dark\:divide-gray-700>:not(:last-child)){border-color:var(--color-gray-700)}.dark\:border-blue-800{border-color:var(--color-blue-800)}.dark\:border-gray-600{border-color:var(--color-gray-600)}.dark\:border-gray-700{border-color:var(--color-gray-700)}.dark\:border-gray-800{border-color:var(--color-gray-800)}.dark\:border-red-800{border-color:var(--color-red-800)}.dark\:bg-amber-900\/30{background-color:#7b33064d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-900\/30{background-color:color-mix(in oklab,var(--color-amber-900)30%,transparent)}}.dark\:bg-blue-900{background-color:var(--color-blue-900)}.dark\:bg-blue-900\/20{background-color:#1c398e33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-900\/20{background-color:color-mix(in oklab,var(--color-blue-900)20%,transparent)}}.dark\:bg-gray-800{background-color:var(--color-gray-800)}.dark\:bg-gray-800\/50{background-color:#1e293980}@supports (color:color-mix(in lab,red,red)){.dark\:bg-gray-800\/50{background-color:color-mix(in oklab,var(--color-gray-800)50%,transparent)}}.dark\:bg-gray-900{background-color:var(--color-gray-900)}.dark\:bg-gray-900\/75{background-color:#101828bf}@supports (color:color-mix(in lab,red,red)){.dark\:bg-gray-900\/75{background-color:color-mix(in oklab,var(--color-gray-900)75%,transparent)}}.dark\:bg-green-900{background-color:var(--color-green-900)}.dark\:bg-green-900\/30{background-color:#0d542b4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-900\/30{background-color:color-mix(in oklab,var(--color-green-900)30%,transparent)}}.dark\:bg-purple-900{background-color:var(--color-purple-900)}.dark\:bg-red-900{background-color:var(--color-red-900)}.dark\:bg-red-900\/20{background-color:#82181a33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-900\/20{background-color:color-mix(in oklab,var(--color-red-900)20%,transparent)}}.dark\:bg-yellow-900{background-color:var(--color-yellow-900)}.dark\:text-amber-400{color:var(--color-amber-400)}.dark\:text-blue-100{color:var(--color-blue-100)}.dark\:text-blue-200{color:var(--color-blue-200)}.dark\:text-blue-300{color:var(--color-blue-300)}.dark\:text-blue-400{color:var(--color-blue-400)}.dark\:text-gray-100{color:var(--color-gray-100)}.dark\:text-gray-200{color:var(--color-gray-200)}.dark\:text-gray-300{color:var(--color-gray-300)}.dark\:text-gray-400{color:var(--color-gray-400)}.dark\:text-gray-500{color:var(--color-gray-500)}.dark\:text-gray-600{color:var(--color-gray-600)}.dark\:text-green-200{color:var(--color-green-200)}.dark\:text-green-400{color:var(--color-green-400)}.dark\:text-purple-200{color:var(--color-purple-200)}.dark\:text-red-100{color:var(--color-red-100)}.dark\:text-red-200{color:var(--color-red-200)}.dark\:text-red-300{color:var(--color-red-300)}.dark\:text-red-400{color:var(--color-red-400)}.dark\:text-white{color:var(--color-white)}.dark\:text-yellow-200{color:var(--color-yellow-200)}.dark\:ring-gray-700{--tw-ring-color:var(--color-gray-700)}.dark\:ring-gray-800{--tw-ring-color:var(--color-gray-800)}.dark\:ring-white\/10{--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\:ring-white\/10{--tw-ring-color:color-mix(in oklab,var(--color-white)10%,transparent)}}@media (hover:hover){.dark\:hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.dark\:hover\:bg-gray-800:hover{background-color:var(--color-gray-800)}.dark\:hover\:text-blue-300:hover{color:var(--color-blue-300)}.dark\:hover\:text-gray-300:hover{color:var(--color-gray-300)}.dark\:hover\:text-white:hover{color:var(--color-white)}}.dark\:focus\:border-blue-700:focus{border-color:var(--color-blue-700)}.dark\:focus\:border-blue-800:focus{border-color:var(--color-blue-800)}.dark\:active\:bg-gray-700:active{background-color:var(--color-gray-700)}.dark\:active\:text-gray-300:active{color:var(--color-gray-300)}}}.card-hover{transition:all .3s}.card-hover:hover{transform:translateY(-4px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.card-flip{perspective:1000px}.card-flip-inner{transform-style:preserve-3d;width:100%;height:100%;transition:transform .6s;position:relative}.card-flip:hover .card-flip-inner{transform:rotateY(180deg)}.card-flip .card-front,.card-flip .card-back{backface-visibility:hidden;width:100%;height:100%;position:absolute}.card-flip .card-back{transform:rotateY(180deg)}.gradient-bg{background:linear-gradient(135deg,#1e293b,#334155,#475569)}.card-glow{box-shadow:0 0 20px #ef44444d}.pulse-glow{animation:2s infinite pulse-glow}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px #ef44444d}50%{box-shadow:0 0 30px #ef444480}}@media (max-width:640px){h1{font-size:2.5rem}h2{font-size:1.875rem}p{font-size:1rem}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@keyframes spin{to{transform:rotate(360deg)}} diff --git a/public/build/manifest.json b/public/build/manifest.json index 48f3c4b..2f18916 100644 --- a/public/build/manifest.json +++ b/public/build/manifest.json @@ -1,6 +1,6 @@ { "resources/css/app.css": { - "file": "assets/app-CLpgfa1h.css", + "file": "assets/app-1K7jybbe.css", "src": "resources/css/app.css", "isEntry": true }, diff --git a/public/css/unreality1.css b/public/css/unreality1.css deleted file mode 100644 index 9ed292a..0000000 --- a/public/css/unreality1.css +++ /dev/null @@ -1,837 +0,0 @@ -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --primary: #00aa66; - --primary-dark: #225533; - --secondary: #00aa66; - --dark: #2e2e2e; - --darker: #2f2f2f; - --light: #f8fdf8; - --gray: #8a9a8a; -} - -body { - font-family: 'Space Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; - line-height: 1.6; - color: var(--dark); - background: #f8fdf8; - overflow-x: hidden; -} - -/* Animated Background - Nature & Electric */ -.animated-bg { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 0; - background: linear-gradient(135deg, #f8fdf8 0%, #e8f5e8 100%); -} - -/* Electric Energy Wave */ -.animated-bg::before { - content: ''; - position: absolute; - top: 0; - left: -100%; - width: 300%; - height: 3px; - background: linear-gradient(90deg, - transparent, - rgba(0, 170, 102, 0.3) 20%, - rgba(0, 170, 102, 0.6) 40%, - rgba(0, 170, 102, 0.3) 60%, - transparent); - box-shadow: 0 0 10px rgba(0, 170, 102, 0.5); - animation: electricWave 8s ease-in-out infinite; -} - -/* Nature Organic Flow */ -.animated-bg::after { - content: ''; - position: absolute; - top: 20%; - right: -10%; - width: 600px; - height: 600px; - background: radial-gradient( - ellipse at center, - rgba(0, 170, 102, 0.08) 0%, - rgba(34, 85, 51, 0.05) 50%, - transparent 70% - ); - border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; - animation: organicFlow 20s ease-in-out infinite; -} - -@keyframes electricWave { - 0%, 100% { - transform: translateX(0) translateY(20vh); - opacity: 0.3; - } - 50% { - transform: translateX(33%) translateY(60vh); - opacity: 0.7; - } -} - -@keyframes organicFlow { - 0%, 100% { - transform: rotate(0deg) scale(1); - border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; - } - 33% { - transform: rotate(120deg) scale(1.2); - border-radius: 30% 60% 70% 40% / 50% 60% 40% 50%; - } - 66% { - transform: rotate(240deg) scale(0.9); - border-radius: 50% 50% 40% 60% / 40% 70% 30% 60%; - } -} - -/* Navigation */ -nav { - position: fixed; - top: 0; - width: 100%; - background: rgba(248, 253, 248, 0.95); - backdrop-filter: blur(20px); - border-bottom: 1px solid rgba(0, 170, 102, 0.2); - box-shadow: 0 2px 20px rgba(0, 170, 102, 0.05); - z-index: 1000; - transition: all 0.3s ease; -} - -.nav-container { - max-width: 1400px; - margin: 0 auto; - padding: 1rem 2rem; - display: flex; - justify-content: space-between; - align-items: center; -} - -.logo { - height: 60px; - transition: transform 0.3s ease; -} - -.logo:hover { - transform: scale(1.05); -} - -.nav-links { - display: flex; - gap: 2.5rem; - list-style: none; -} - -.nav-links a { - text-decoration: none; - color: var(--dark); - font-weight: 500; - transition: all 0.3s ease; - position: relative; - padding-bottom: 5px; -} - -.nav-links a::after { - content: ''; - position: absolute; - bottom: 0; - left: 0; - width: 0; - height: 2px; - background: linear-gradient(90deg, var(--primary), var(--secondary)); - transition: width 0.3s ease; -} - -.nav-links a:hover { - color: var(--primary); -} - -.nav-links a:hover::after { - width: 100%; -} - -/* Hero Section */ -.hero { - min-height: 100vh; - display: flex; - align-items: center; - justify-content: center; - position: relative; - z-index: 1; - padding-top: 100px; - overflow: hidden; -} - -/* Data Streams */ -.data-stream { - position: absolute; - width: 4px; - height: 150px; - background: linear-gradient(180deg, - rgba(0, 170, 102, 0) 0%, - rgba(0, 170, 102, 0.9) 20%, - rgba(0, 170, 102, 0.9) 80%, - rgba(0, 170, 102, 0) 100%); - box-shadow: 0 0 20px rgba(0, 170, 102, 0.8), - 0 0 40px rgba(0, 170, 102, 0.5); - animation: dataStream 4s infinite ease-in-out; - z-index: 0; -} - -.data-stream::before { - content: ''; - position: absolute; - width: 100%; - height: 30%; - background: rgba(255, 255, 255, 0.8); - box-shadow: 0 0 10px rgba(255, 255, 255, 0.8); - animation: dataPulse 4s infinite ease-in-out; -} - -.data-stream:nth-child(1) { - left: 15%; - top: -150px; - animation-delay: 0s; -} - -.data-stream:nth-child(2) { - left: 60%; - top: -150px; - animation-delay: 1.5s; - height: 200px; -} - -.data-stream:nth-child(3) { - left: 85%; - top: -150px; - animation-delay: 3s; -} - -@keyframes dataStream { - 0% { - transform: translateY(0); - opacity: 0; - } - 10% { - opacity: 1; - } - 90% { - opacity: 1; - } - 100% { - transform: translateY(120vh); - opacity: 0; - } -} - -@keyframes dataPulse { - 0%, 100% { - transform: translateY(0); - } - 50% { - transform: translateY(300%); - } -} - -/* Holographic Panels */ -.holo-panel { - position: absolute; - width: 200px; - height: 120px; - background: linear-gradient(135deg, - rgba(0, 170, 102, 0.15) 0%, - rgba(0, 170, 102, 0.05) 100%); - border: 2px solid rgba(0, 170, 102, 0.6); - border-radius: 10px; - box-shadow: - 0 0 30px rgba(0, 170, 102, 0.4), - inset 0 0 30px rgba(0, 170, 102, 0.1); - animation: holoFloat 8s infinite ease-in-out; - z-index: 0; - backdrop-filter: blur(5px); -} - -.holo-panel::before { - content: ''; - position: absolute; - top: 10px; - left: 10px; - right: 10px; - height: 2px; - background: linear-gradient(90deg, - transparent, - rgba(0, 170, 102, 0.8), - transparent); - box-shadow: 0 0 10px rgba(0, 170, 102, 0.8); - animation: scanLine 2s infinite ease-in-out; -} - -.holo-panel:nth-child(4) { - left: 10%; - top: 20%; - animation-delay: 0s; - transform: perspective(500px) rotateY(-15deg); -} - -.holo-panel:nth-child(5) { - right: 10%; - top: 50%; - animation-delay: 2s; - transform: perspective(500px) rotateY(15deg); - width: 180px; - height: 100px; -} - -@keyframes holoFloat { - 0%, 100% { - transform: translateY(0) perspective(500px) rotateY(-15deg); - opacity: 0.7; - } - 50% { - transform: translateY(-30px) perspective(500px) rotateY(-15deg); - opacity: 0.9; - } -} - -@keyframes scanLine { - 0%, 100% { - transform: translateY(0); - opacity: 0.3; - } - 50% { - transform: translateY(100px); - opacity: 1; - } -} - -/* Circuit Traces */ -.circuit-trace { - position: absolute; - width: 300px; - height: 3px; - background: linear-gradient(90deg, - rgba(0, 170, 102, 0) 0%, - rgba(0, 170, 102, 0.8) 50%, - rgba(0, 170, 102, 0) 100%); - box-shadow: 0 0 15px rgba(0, 170, 102, 0.8); - animation: circuitPulse 5s infinite ease-in-out; - z-index: 0; -} - -.circuit-trace::after { - content: ''; - position: absolute; - width: 8px; - height: 8px; - background: rgba(0, 170, 102, 1); - border-radius: 50%; - box-shadow: 0 0 15px rgba(0, 170, 102, 1); - left: 0; - top: -2.5px; - animation: circuitNode 5s infinite ease-in-out; -} - -.circuit-trace:nth-child(6) { - left: 5%; - top: 35%; - transform: rotate(-25deg); - animation-delay: 0s; -} - -.circuit-trace:nth-child(7) { - right: 5%; - top: 65%; - transform: rotate(25deg); - animation-delay: 2.5s; -} - -@keyframes circuitPulse { - 0%, 100% { - opacity: 0.5; - } - 50% { - opacity: 1; - } -} - -@keyframes circuitNode { - 0% { - left: 0; - opacity: 1; - } - 50% { - left: calc(100% - 8px); - opacity: 1; - } - 50.1% { - opacity: 0; - } - 100% { - left: 0; - opacity: 0; - } -} - -/* Scanning Beam */ -.scan-beam { - position: absolute; - left: 0; - top: 30%; - width: 100%; - height: 2px; - background: linear-gradient(90deg, - rgba(0, 170, 102, 0) 0%, - rgba(0, 170, 102, 0.9) 50%, - rgba(0, 170, 102, 0) 100%); - box-shadow: 0 0 20px rgba(0, 170, 102, 0.8), - 0 0 40px rgba(0, 170, 102, 0.5); - animation: scanBeam 10s infinite ease-in-out; - z-index: 0; -} - -@keyframes scanBeam { - 0%, 100% { - transform: translateY(0); - opacity: 0; - } - 10% { - opacity: 0.9; - } - 90% { - opacity: 0.9; - } - 100% { - transform: translateY(70vh); - opacity: 0; - } -} - -/* Hexagonal Grid */ -.hex-grid { - position: absolute; - right: 5%; - top: 15%; - width: 250px; - height: 250px; - background-image: - linear-gradient(30deg, rgba(0, 170, 102, 0.4) 12%, transparent 12.5%, transparent 87%, rgba(0, 170, 102, 0.4) 87.5%, rgba(0, 170, 102, 0.4)), - linear-gradient(150deg, rgba(0, 170, 102, 0.4) 12%, transparent 12.5%, transparent 87%, rgba(0, 170, 102, 0.4) 87.5%, rgba(0, 170, 102, 0.4)), - linear-gradient(30deg, rgba(0, 170, 102, 0.4) 12%, transparent 12.5%, transparent 87%, rgba(0, 170, 102, 0.4) 87.5%, rgba(0, 170, 102, 0.4)), - linear-gradient(150deg, rgba(0, 170, 102, 0.4) 12%, transparent 12.5%, transparent 87%, rgba(0, 170, 102, 0.4) 87.5%, rgba(0, 170, 102, 0.4)), - linear-gradient(60deg, rgba(0, 170, 102, 0.2) 25%, transparent 25.5%, transparent 75%, rgba(0, 170, 102, 0.2) 75%, rgba(0, 170, 102, 0.2)), - linear-gradient(60deg, rgba(0, 170, 102, 0.2) 25%, transparent 25.5%, transparent 75%, rgba(0, 170, 102, 0.2) 75%, rgba(0, 170, 102, 0.2)); - background-size: 80px 140px; - background-position: 0 0, 0 0, 40px 70px, 40px 70px, 0 0, 40px 70px; - filter: drop-shadow(0 0 20px rgba(0, 170, 102, 0.5)); - animation: hexPulse 6s infinite ease-in-out; - z-index: 0; - opacity: 0.7; -} - -@keyframes hexPulse { - 0%, 100% { - opacity: 0.5; - transform: scale(1) rotate(0deg); - } - 50% { - opacity: 0.9; - transform: scale(1.1) rotate(5deg); - } -} - -.hero-content { - max-width: 1200px; - margin: 0 auto; - padding: 0 2rem; - text-align: center; -} - -.hero h1 { - font-size: 5rem; - font-weight: 700; - margin-bottom: 1.5rem; - background: linear-gradient(135deg, var(--primary), var(--primary-dark)); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - animation: fadeInUp 0.8s ease; - line-height: 1.1; -} - -.hero p { - font-size: 1.5rem; - color: #5a6a5a; - margin-bottom: 3rem; - max-width: 800px; - margin-left: auto; - margin-right: auto; - animation: fadeInUp 0.8s ease 0.2s backwards; -} - -.cta-buttons { - display: flex; - gap: 1.5rem; - justify-content: center; - animation: fadeInUp 0.8s ease 0.4s backwards; -} - -.btn { - padding: 1.25rem 3rem; - border-radius: 50px; - font-weight: 600; - text-decoration: none; - display: inline-block; - transition: all 0.3s ease; - font-size: 1.1rem; - position: relative; - overflow: hidden; -} - -.btn-primary { - background: linear-gradient(135deg, var(--primary), var(--primary-dark)); - color: white; - box-shadow: 0 20px 40px rgba(0, 170, 102, 0.3); -} - -.btn-primary::before { - content: ''; - position: absolute; - top: 0; - left: -100%; - width: 100%; - height: 100%; - background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent); - transition: left 0.5s ease; -} - -.btn-primary:hover::before { - left: 100%; -} - -.btn-primary:hover { - transform: translateY(-3px); - box-shadow: 0 25px 50px rgba(0, 170, 102, 0.4); -} - -.btn-secondary { - background: transparent; - color: var(--primary); - border: 2px solid var(--primary); -} - -.btn-secondary:hover { - background: var(--primary); - color: white; - transform: translateY(-3px); -} - -@keyframes fadeInUp { - from { - opacity: 0; - transform: translateY(30px); - } - to { - opacity: 1; - transform: translateY(0); - } -} - -/* Values Section */ -.values { - padding: 8rem 2rem; - position: relative; - z-index: 1; -} - -.section-title { - text-align: center; - font-size: 3.5rem; - font-weight: 700; - margin-bottom: 1rem; - background: linear-gradient(135deg, var(--primary), var(--primary-dark)); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; -} - -.section-subtitle { - text-align: center; - font-size: 1.3rem; - color: #5a6a5a; - margin-bottom: 5rem; - max-width: 700px; - margin-left: auto; - margin-right: auto; -} - -.values-grid { - max-width: 1200px; - margin: 0 auto; - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 2.5rem; -} - -.value-card { - background: white; - backdrop-filter: blur(10px); - border: 1px solid rgba(0, 170, 102, 0.15); - padding: 2.5rem; - border-radius: 20px; - transition: all 0.3s ease; - position: relative; - overflow: hidden; - box-shadow: 0 4px 20px rgba(0, 170, 102, 0.08); -} - -.value-card::before { - content: ''; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 3px; - background: linear-gradient(90deg, var(--primary), var(--primary-dark)); - transform: scaleX(0); - transform-origin: left; - transition: transform 0.3s ease; -} - -.value-card:hover { - transform: translateY(-10px); - border-color: var(--primary); - box-shadow: 0 20px 50px rgba(0, 170, 102, 0.2); -} - -.value-card:hover::before { - transform: scaleX(1); -} - -.value-card h3 { - font-size: 1.75rem; - margin-bottom: 1rem; - color: var(--dark); -} - -.value-card p { - color: #5a6a5a; - line-height: 1.8; -} - -/* Mission Section */ -.mission { - padding: 8rem 2rem; - position: relative; - z-index: 1; - background: linear-gradient(135deg, rgba(0, 170, 102, 0.03), rgba(34, 85, 51, 0.03)); -} - -.mission-content { - max-width: 1000px; - margin: 0 auto; - text-align: center; -} - -.mission h2 { - font-size: 3rem; - margin-bottom: 2rem; - color: var(--dark); -} - -.mission p { - font-size: 1.3rem; - color: #5a6a5a; - line-height: 2; - margin-bottom: 2rem; -} - -/* Foresight Knowledge Section */ -.knowledge { - padding: 8rem 2rem; - position: relative; - z-index: 1; - background: white; -} - -.knowledge-grid { - max-width: 1200px; - margin: 0 auto; - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 2.5rem; -} - -.knowledge-card { - background: white; - border: 1px solid rgba(0, 170, 102, 0.15); - border-radius: 20px; - overflow: hidden; - transition: all 0.3s ease; - box-shadow: 0 4px 20px rgba(0, 170, 102, 0.08); -} - -.knowledge-card:hover { - transform: translateY(-10px); - box-shadow: 0 20px 50px rgba(0, 170, 102, 0.15); -} - -.knowledge-card img { - width: 100%; - height: 250px; - object-fit: cover; -} - -.knowledge-content { - padding: 2rem; -} - -.knowledge-card h3 { - font-size: 1.5rem; - margin-bottom: 1rem; - color: var(--dark); - text-align: center; -} - -.knowledge-card p { - color: #5a6a5a; - margin-bottom: 1rem; - font-style: italic; -} - -.knowledge-card ul { - list-style: none; - padding: 0; - margin: 0; -} - -.knowledge-card ul li { - padding: 0.5rem 0; - color: #5a6a5a; - position: relative; - padding-left: 1.5rem; -} - -.knowledge-card ul li::before { - content: '→'; - position: absolute; - left: 0; - color: var(--primary); - font-weight: bold; -} - -/* Footer */ -footer { - background: white; - border-top: 1px solid rgba(0, 170, 102, 0.2); - color: #5a6a5a; - padding: 4rem 2rem 2rem; - position: relative; - z-index: 1; -} - -.footer-content { - max-width: 1200px; - margin: 0 auto; - display: grid; - grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); - gap: 3rem; - margin-bottom: 3rem; -} - -.footer-section h3 { - color: var(--dark); - margin-bottom: 1.5rem; - font-size: 1.3rem; -} - -.footer-section ul { - list-style: none; -} - -.footer-section ul li { - margin-bottom: 0.75rem; -} - -.footer-section a { - color: #5a6a5a; - text-decoration: none; - transition: color 0.3s ease; -} - -.footer-section a:hover { - color: var(--primary); -} - -.footer-bottom { - text-align: center; - padding-top: 2rem; - border-top: 1px solid rgba(0, 170, 102, 0.1); - font-size: 0.9rem; -} - -/* Mobile Menu */ -.mobile-menu-btn { - display: none; - background: none; - border: none; - font-size: 1.5rem; - color: var(--dark); - cursor: pointer; -} - -/* Responsive */ -@media (max-width: 768px) { - .hero h1 { - font-size: 3rem; - } - - .hero p { - font-size: 1.2rem; - } - - .section-title { - font-size: 2.5rem; - } - - .nav-links { - display: none; - } - - .mobile-menu-btn { - display: block; - } - - .cta-buttons { - flex-direction: column; - } - - .values { - padding: 4rem 1rem; - } - - .values-grid { - grid-template-columns: 1fr; - } - - .mission { - padding: 4rem 1rem; - } - - .knowledge { - padding: 4rem 1rem; - } - - .knowledge-grid { - grid-template-columns: 1fr; - } -} diff --git a/public/css/webtech-solutions.css b/public/css/webtech-solutions.css deleted file mode 100644 index 7904fa7..0000000 --- a/public/css/webtech-solutions.css +++ /dev/null @@ -1,1611 +0,0 @@ -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -:root { - --primary: #7C3AED; - --primary-dark: #6D28D9; - --secondary: #FFFFFF; - --secondary-dark: #F3F4F6; - --dark: #1F2937; - --light: #F9FAFB; - --gray: #6B7280; -} - -body { - font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; - line-height: 1.6; - color: var(--dark); - overflow-x: hidden; -} - -/* Navigation */ -nav { - position: fixed; - top: 0; - width: 100%; - background: rgba(255, 255, 255, 0.95); - backdrop-filter: blur(10px); - box-shadow: 0 2px 20px rgba(0, 0, 0, 0.05); - z-index: 1000; - transition: all 0.3s ease; -} - -nav.scrolled { - box-shadow: 0 2px 30px rgba(0, 0, 0, 0.1); -} - -.nav-container { - max-width: 1200px; - margin: 0 auto; - padding: 1rem 2rem; - display: flex; - justify-content: space-between; - align-items: center; -} - -.logo { - height: 50px; - transition: transform 0.3s ease; -} - -.logo:hover { - transform: scale(1.05); -} - -.nav-links { - display: flex; - gap: 2rem; - list-style: none; -} - -.nav-links a { - text-decoration: none; - color: var(--dark); - font-weight: 600; - transition: color 0.3s ease; - position: relative; -} - -.nav-links a::after { - content: ''; - position: absolute; - bottom: -5px; - left: 0; - width: 0; - height: 2px; - background: var(--primary); - transition: width 0.3s ease; -} - -.nav-links a:hover { - color: var(--primary); -} - -.nav-links a:hover::after { - width: 100%; -} - -/* Hero Section */ -.hero { - min-height: 100vh; - display: flex; - align-items: center; - background: linear-gradient(135deg, #7C3AED 0%, #8B5CF6 50%, #A78BFA 100%); - position: relative; - overflow: hidden; - padding-top: 80px; -} - -/* Digital Circuit Pattern */ -.hero::before { - content: ''; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-image: - linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px), - linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px); - background-size: 50px 50px; - animation: moveCircuit 30s linear infinite; -} - -/* AI Neural Network Effect */ -.hero::after { - content: ''; - position: absolute; - width: 700px; - height: 700px; - background: radial-gradient(circle, rgba(139, 92, 246, 0.35) 0%, rgba(167, 139, 250, 0.15) 40%, transparent 70%); - top: -200px; - right: -200px; - animation: pulseAI 6s ease-in-out infinite; - filter: blur(30px); -} - -@keyframes moveCircuit { - 0% { transform: translate(0, 0); } - 100% { transform: translate(50px, 50px); } -} - -@keyframes pulseAI { - 0%, 100% { - transform: scale(1); - opacity: 0.5; - } - 50% { - transform: scale(1.4); - opacity: 0.9; - } -} - -/* Digital Particles - Hexagons and Nodes */ -.particle { - position: absolute; - animation: floatDigital 20s infinite ease-in-out; -} - -.particle:nth-child(1) { - width: 0; - height: 0; - border-left: 10px solid transparent; - border-right: 10px solid transparent; - border-bottom: 16px solid rgba(255, 255, 255, 0.7); - left: 10%; - top: 20%; - animation-delay: 0s; - animation-duration: 12s; - filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.5)); -} - -.particle:nth-child(2) { - width: 20px; - height: 20px; - background: rgba(255, 255, 255, 0.5); - clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%); - left: 75%; - top: 15%; - animation-delay: 2s; - animation-duration: 14s; - box-shadow: 0 0 20px rgba(255, 255, 255, 0.4); -} - -.particle:nth-child(3) { - width: 16px; - height: 16px; - background: rgba(139, 92, 246, 0.8); - border-radius: 50%; - box-shadow: 0 0 25px rgba(139, 92, 246, 1), 0 0 50px rgba(139, 92, 246, 0.5); - left: 25%; - top: 60%; - animation-delay: 4s; - animation-duration: 16s; -} - -.particle:nth-child(4) { - width: 3px; - height: 60px; - background: linear-gradient(180deg, transparent, rgba(255, 255, 255, 0.8), transparent); - left: 60%; - top: 30%; - animation-delay: 1s; - animation-duration: 10s; - box-shadow: 0 0 15px rgba(255, 255, 255, 0.5); -} - -.particle:nth-child(5) { - width: 16px; - height: 16px; - background: rgba(167, 139, 250, 0.6); - border: 2px solid rgba(255, 255, 255, 0.7); - transform: rotate(45deg); - left: 85%; - top: 70%; - animation-delay: 3s; - animation-duration: 15s; - box-shadow: 0 0 20px rgba(167, 139, 250, 0.6); -} - -@keyframes floatDigital { - 0%, 100% { - transform: translate(0, 0) rotate(0deg); - opacity: 0.5; - } - 25% { - opacity: 1; - } - 50% { - transform: translate(100px, -150px) rotate(180deg); - opacity: 0.8; - } - 75% { - opacity: 1; - } -} - -/* Binary Code Stream */ -.binary-stream { - position: absolute; - font-family: 'Courier New', monospace; - font-size: 14px; - color: rgba(255, 255, 255, 0.5); - white-space: nowrap; - animation: streamDown 12s linear infinite; - text-shadow: 0 0 10px rgba(139, 92, 246, 0.8); - letter-spacing: 2px; -} - -.binary-stream:nth-child(6) { - left: 20%; - top: -50px; - animation-delay: 0s; -} - -.binary-stream:nth-child(7) { - left: 50%; - top: -50px; - animation-delay: 3s; -} - -.binary-stream:nth-child(8) { - left: 80%; - top: -50px; - animation-delay: 6s; -} - -@keyframes streamDown { - 0% { - transform: translateY(0); - opacity: 0; - } - 10% { - opacity: 0.6; - } - 90% { - opacity: 0.6; - } - 100% { - transform: translateY(100vh); - opacity: 0; - } -} - -/* AI Neural Connection Lines */ -.neural-line { - position: absolute; - height: 3px; - background: linear-gradient(90deg, transparent, rgba(139, 92, 246, 0.9), rgba(167, 139, 250, 0.9), transparent); - transform-origin: left center; - animation: drawLine 6s ease-in-out infinite; - border-radius: 2px; - box-shadow: 0 0 15px rgba(139, 92, 246, 0.8); -} - -.neural-line:nth-child(9) { - width: 250px; - left: 15%; - top: 25%; - animation-delay: 0s; -} - -.neural-line:nth-child(10) { - width: 200px; - left: 65%; - top: 55%; - animation-delay: 2s; -} - -@keyframes drawLine { - 0%, 100% { - transform: scaleX(0); - opacity: 0; - } - 50% { - transform: scaleX(1); - opacity: 1; - } -} - -/* Floating Orbs - More Visible Animation */ -.floating-orb { - position: absolute; - border-radius: 50%; - pointer-events: none; -} - -.orb-1 { - width: 120px; - height: 120px; - background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.4), rgba(139, 92, 246, 0.6) 50%, rgba(124, 58, 237, 0.3)); - left: 5%; - top: 40%; - animation: floatOrb1 8s ease-in-out infinite; - box-shadow: 0 0 60px rgba(139, 92, 246, 0.8), inset 0 0 30px rgba(255, 255, 255, 0.3); -} - -.orb-2 { - width: 80px; - height: 80px; - background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.5), rgba(167, 139, 250, 0.7) 50%, rgba(139, 92, 246, 0.4)); - right: 10%; - top: 30%; - animation: floatOrb2 10s ease-in-out infinite; - box-shadow: 0 0 50px rgba(167, 139, 250, 0.9), inset 0 0 25px rgba(255, 255, 255, 0.4); -} - -.orb-3 { - width: 60px; - height: 60px; - background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.6), rgba(196, 181, 253, 0.8) 50%, rgba(167, 139, 250, 0.5)); - left: 40%; - bottom: 15%; - animation: floatOrb3 12s ease-in-out infinite; - box-shadow: 0 0 40px rgba(196, 181, 253, 1), inset 0 0 20px rgba(255, 255, 255, 0.5); -} - -@keyframes floatOrb1 { - 0%, 100% { - transform: translate(0, 0) scale(1); - } - 25% { - transform: translate(30px, -40px) scale(1.1); - } - 50% { - transform: translate(60px, 20px) scale(0.95); - } - 75% { - transform: translate(20px, 40px) scale(1.05); - } -} - -@keyframes floatOrb2 { - 0%, 100% { - transform: translate(0, 0) scale(1); - } - 33% { - transform: translate(-50px, 30px) scale(1.15); - } - 66% { - transform: translate(-20px, -50px) scale(0.9); - } -} - -@keyframes floatOrb3 { - 0%, 100% { - transform: translate(0, 0) scale(1); - } - 25% { - transform: translate(-40px, -30px) scale(1.2); - } - 50% { - transform: translate(40px, -60px) scale(0.85); - } - 75% { - transform: translate(20px, 20px) scale(1.1); - } -} - -.hero-content { - max-width: 1200px; - margin: 0 auto; - padding: 0 2rem; - position: relative; - z-index: 1; -} - -.hero h1 { - font-size: 4rem; - font-weight: 800; - color: white; - margin-bottom: 1.5rem; - line-height: 1.2; - animation: fadeInUp 0.8s ease; -} - -.hero p { - font-size: 1.5rem; - color: rgba(255, 255, 255, 0.95); - margin-bottom: 2.5rem; - max-width: 700px; - animation: fadeInUp 0.8s ease 0.2s backwards; -} - -@keyframes fadeInUp { - from { - opacity: 0; - transform: translateY(30px); - } - to { - opacity: 1; - transform: translateY(0); - } -} - -.cta-buttons { - display: flex; - gap: 1.5rem; - flex-wrap: wrap; - animation: fadeInUp 0.8s ease 0.4s backwards; -} - -.btn { - padding: 1rem 2.5rem; - border-radius: 50px; - font-weight: 700; - text-decoration: none; - display: inline-block; - transition: all 0.3s ease; - font-size: 1.1rem; -} - -.btn-primary { - background: var(--primary); - color: white; - box-shadow: 0 10px 30px rgba(124, 58, 237, 0.3); -} - -.btn-primary:hover { - background: var(--primary-dark); - transform: translateY(-2px); - box-shadow: 0 15px 40px rgba(124, 58, 237, 0.4); -} - -.btn-secondary { - background: white; - color: var(--dark); - box-shadow: 0 10px 30px rgba(255, 255, 255, 0.2); -} - -.btn-secondary:hover { - background: var(--secondary-dark); - transform: translateY(-2px); - box-shadow: 0 15px 40px rgba(255, 255, 255, 0.3); -} - -/* Services Section */ -.services { - padding: 6rem 2rem; - background: var(--light); -} - -.section-title { - text-align: center; - font-size: 3rem; - font-weight: 800; - margin-bottom: 1rem; - color: var(--dark); -} - -.section-subtitle { - text-align: center; - font-size: 1.2rem; - color: var(--gray); - margin-bottom: 4rem; - max-width: 700px; - margin-left: auto; - margin-right: auto; -} - -.services-grid { - max-width: 1200px; - margin: 0 auto; - display: grid; - grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); - gap: 2rem; -} - -.service-card { - background: white; - padding: 2.5rem; - border-radius: 20px; - box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); - transition: all 0.3s ease; - position: relative; - overflow: hidden; -} - -.service-card::before { - content: ''; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 4px; - background: linear-gradient(90deg, var(--primary), var(--primary-dark)); - transform: scaleX(0); - transform-origin: left; - transition: transform 0.3s ease; -} - -.service-card:hover { - transform: translateY(-10px); - box-shadow: 0 20px 50px rgba(0, 0, 0, 0.1); -} - -.service-card:hover::before { - transform: scaleX(1); -} - -.service-icon { - width: 70px; - height: 70px; - background: linear-gradient(135deg, var(--primary), var(--primary-dark)); - border-radius: 15px; - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 1.5rem; - font-size: 2rem; -} - -.service-card h3 { - font-size: 1.5rem; - font-weight: 700; - margin-bottom: 1rem; - color: var(--dark); -} - -.service-card p { - color: var(--gray); - line-height: 1.8; -} - -/* About Section */ -.about { - padding: 6rem 2rem; - background: white; -} - -.about-content { - max-width: 1200px; - margin: 0 auto; - display: grid; - grid-template-columns: 1fr 1fr; - gap: 4rem; - align-items: center; -} - -.about-text h2 { - font-size: 2.5rem; - font-weight: 800; - margin-bottom: 1.5rem; - color: var(--dark); -} - -.about-text p { - color: var(--gray); - font-size: 1.1rem; - margin-bottom: 1.5rem; - line-height: 1.8; -} - -.about-image { - position: relative; - height: 500px; - border-radius: 20px; - overflow: hidden; - box-shadow: 0 20px 60px rgba(0, 0, 0, 0.1); -} - -.about-image::before { - content: ''; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: linear-gradient(135deg, rgba(124, 58, 237, 0.2), rgba(139, 92, 246, 0.3)); -} - -/* CTA Section */ -.cta-section { - padding: 6rem 2rem; - background: linear-gradient(135deg, var(--primary), var(--primary-dark)); - text-align: center; -} - -.cta-section h2 { - font-size: 3rem; - font-weight: 800; - color: white; - margin-bottom: 1.5rem; -} - -.cta-section p { - font-size: 1.3rem; - color: rgba(255, 255, 255, 0.9); - margin-bottom: 2.5rem; - max-width: 700px; - margin-left: auto; - margin-right: auto; -} - -/* Footer */ -footer { - background: var(--dark); - color: white; - padding: 3rem 2rem 1.5rem; -} - -.footer-content { - max-width: 1200px; - margin: 0 auto; - text-align: center; -} - -.footer-links { - display: flex; - justify-content: center; - gap: 2rem; - margin-bottom: 2rem; - flex-wrap: wrap; -} - -.footer-links a { - color: rgba(255, 255, 255, 0.8); - text-decoration: none; - transition: color 0.3s ease; -} - -.footer-links a:hover { - color: var(--primary); -} - -.copyright { - color: rgba(255, 255, 255, 0.6); - font-size: 0.9rem; - padding-top: 2rem; - border-top: 1px solid rgba(255, 255, 255, 0.1); -} - -/* Mobile Menu */ -.mobile-menu-btn { - display: none; - background: none; - border: none; - font-size: 1.5rem; - cursor: pointer; - color: var(--dark); -} - -/* Responsive */ -@media (max-width: 768px) { - .hero h1 { - font-size: 2.5rem; - } - - .hero p { - font-size: 1.2rem; - } - - .section-title { - font-size: 2rem; - } - - .about-content { - grid-template-columns: 1fr; - } - - .about-image { - height: 300px; - } - - .nav-links { - display: none; - } - - .mobile-menu-btn { - display: block; - } - - .cta-section h2 { - font-size: 2rem; - } - - .services-grid { - grid-template-columns: 1fr; - } -} - -/* =================================== - AI SOLUTIONS PAGE STYLES - =================================== */ - -/* AI Hero Section */ -.ai-hero { - min-height: 90vh; - display: flex; - align-items: center; - justify-content: center; - background: linear-gradient(135deg, #1e1b4b 0%, #312e81 25%, #4c1d95 50%, #6d28d9 75%, #7c3aed 100%); - position: relative; - overflow: hidden; - padding: 120px 2rem 4rem; -} - -.ai-hero-bg { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: - radial-gradient(circle at 20% 50%, rgba(124, 58, 237, 0.2) 0%, transparent 50%), - radial-gradient(circle at 80% 80%, rgba(139, 92, 246, 0.2) 0%, transparent 50%), - radial-gradient(circle at 40% 20%, rgba(167, 139, 250, 0.1) 0%, transparent 50%); - animation: gradientShift 15s ease infinite; -} - -@keyframes gradientShift { - 0%, 100% { opacity: 1; } - 50% { opacity: 0.7; } -} - -.ai-hero-content { - position: relative; - z-index: 2; - text-align: center; - max-width: 900px; - margin: 0 auto; - color: white; -} - -.ai-hero-content h1 { - font-size: 3.5rem; - font-weight: 800; - margin-bottom: 1.5rem; - line-height: 1.2; - background: linear-gradient(to right, #ffffff 0%, #e0d4ff 100%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; -} - -.ai-hero-subtitle { - font-size: 1.25rem; - margin-bottom: 2.5rem; - line-height: 1.8; - color: rgba(255, 255, 255, 0.9); -} - -/* AI Intro Section */ -.ai-intro { - padding: 5rem 2rem; - background: var(--light); -} - -.ai-intro-content { - max-width: 800px; - margin: 0 auto 3rem; - text-align: center; -} - -.ai-intro-content p { - font-size: 1.1rem; - color: var(--gray); - margin-bottom: 1.5rem; -} - -.ai-stats { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); - gap: 2rem; - max-width: 1200px; - margin: 0 auto; -} - -.stat-card { - background: white; - padding: 2.5rem 2rem; - border-radius: 15px; - box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); - text-align: center; - transition: transform 0.3s ease, box-shadow 0.3s ease; -} - -.stat-card:hover { - transform: translateY(-5px); - box-shadow: 0 15px 40px rgba(124, 58, 237, 0.15); -} - -.stat-number { - font-size: 3rem; - font-weight: 800; - color: var(--primary); - margin-bottom: 0.5rem; -} - -.stat-label { - font-size: 1.1rem; - font-weight: 700; - color: var(--dark); - margin-bottom: 0.75rem; -} - -.stat-card p { - font-size: 0.95rem; - color: var(--gray); - line-height: 1.6; -} - -/* AI Services Pillars */ -.ai-services { - padding: 5rem 2rem; - background: white; -} - -.ai-service-pillar { - background: linear-gradient(135deg, #faf5ff 0%, #f3e8ff 100%); - border-radius: 20px; - padding: 3rem; - margin-bottom: 3rem; - border: 2px solid rgba(124, 58, 237, 0.1); - transition: transform 0.3s ease, box-shadow 0.3s ease; -} - -.ai-service-pillar:hover { - transform: translateY(-5px); - box-shadow: 0 20px 50px rgba(124, 58, 237, 0.15); -} - -.pillar-icon { - width: 80px; - height: 80px; - background: linear-gradient(135deg, var(--primary) 0%, #8B5CF6 100%); - border-radius: 20px; - display: flex; - align-items: center; - justify-content: center; - color: white; - margin-bottom: 1.5rem; -} - -.ai-service-pillar h3 { - font-size: 2rem; - color: var(--dark); - margin-bottom: 1rem; -} - -.pillar-description { - font-size: 1.1rem; - color: var(--gray); - margin-bottom: 2rem; - line-height: 1.8; -} - -.ai-service-pillar h4 { - font-size: 1.25rem; - color: var(--dark); - margin-top: 2rem; - margin-bottom: 1rem; -} - -.pillar-applications { - list-style: none; - margin-bottom: 2rem; -} - -.pillar-applications li { - padding: 0.75rem 0; - border-bottom: 1px solid rgba(124, 58, 237, 0.1); - color: var(--gray); - line-height: 1.6; -} - -.pillar-applications li strong { - color: var(--primary); - font-weight: 600; -} - -.benefits-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); - gap: 1rem; - margin: 1.5rem 0; -} - -.benefit-item { - background: white; - padding: 1rem 1.5rem; - border-radius: 10px; - font-weight: 600; - color: var(--dark); - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05); -} - -.tech-stack, .use-cases, .quality-note { - background: white; - padding: 1.5rem; - border-radius: 10px; - margin-top: 1.5rem; - border-left: 4px solid var(--primary); -} - -.tech-stack strong, .use-cases strong, .quality-note strong { - color: var(--primary); - display: block; - margin-bottom: 0.5rem; -} - -/* Process Timeline */ -.ai-process { - padding: 5rem 2rem; - background: var(--light); -} - -.process-timeline { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); - gap: 2rem; - max-width: 1200px; - margin: 3rem auto 0; -} - -.process-step { - background: white; - padding: 2.5rem 2rem; - border-radius: 15px; - box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); - position: relative; -} - -.step-number { - width: 60px; - height: 60px; - background: linear-gradient(135deg, var(--primary) 0%, #8B5CF6 100%); - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - font-size: 1.75rem; - font-weight: 800; - color: white; - margin-bottom: 1.5rem; -} - -.process-step h3 { - font-size: 1.5rem; - color: var(--dark); - margin-bottom: 1rem; -} - -.process-step p { - color: var(--gray); - margin-bottom: 1.5rem; - line-height: 1.8; -} - -.process-step ul { - list-style: none; - padding-left: 0; -} - -.process-step li { - padding: 0.5rem 0; - color: var(--gray); - position: relative; - padding-left: 1.5rem; -} - -.process-step li::before { - content: '→'; - position: absolute; - left: 0; - color: var(--primary); - font-weight: bold; -} - -/* Applications Grid */ -.ai-applications { - padding: 5rem 2rem; - background: white; -} - -.applications-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); - gap: 2rem; - max-width: 1200px; - margin: 3rem auto 0; -} - -.application-card { - background: linear-gradient(135deg, #faf5ff 0%, white 100%); - padding: 2.5rem; - border-radius: 15px; - border: 2px solid rgba(124, 58, 237, 0.1); - transition: all 0.3s ease; -} - -.application-card:hover { - transform: translateY(-5px); - box-shadow: 0 15px 40px rgba(124, 58, 237, 0.15); - border-color: var(--primary); -} - -.application-card h3 { - font-size: 1.5rem; - color: var(--dark); - margin-bottom: 1rem; -} - -.application-card p { - color: var(--gray); - margin-bottom: 1.5rem; - line-height: 1.7; -} - -.app-features { - display: flex; - flex-wrap: wrap; - gap: 0.5rem; -} - -.app-features span { - background: var(--primary); - color: white; - padding: 0.5rem 1rem; - border-radius: 20px; - font-size: 0.85rem; - font-weight: 600; -} - -/* Tech Stack */ -.ai-tech-stack { - padding: 5rem 2rem; - background: var(--light); -} - -.tech-category { - margin-bottom: 3rem; -} - -.tech-category h3 { - font-size: 1.5rem; - color: var(--dark); - margin-bottom: 1.5rem; - text-align: center; -} - -.tech-logos { - display: flex; - flex-wrap: wrap; - justify-content: center; - gap: 1rem; - max-width: 900px; - margin: 0 auto; -} - -.tech-badge { - background: white; - color: var(--dark); - padding: 0.75rem 1.5rem; - border-radius: 10px; - font-weight: 600; - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05); - transition: all 0.3s ease; -} - -.tech-badge:hover { - background: var(--primary); - color: white; - transform: translateY(-3px); - box-shadow: 0 10px 25px rgba(124, 58, 237, 0.2); -} - -/* Comparison Table */ -.ai-comparison { - padding: 5rem 2rem; - background: white; -} - -.comparison-table { - max-width: 1000px; - margin: 3rem auto 0; - background: white; - border-radius: 15px; - overflow: hidden; - box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); -} - -.comparison-row { - display: grid; - grid-template-columns: 1fr 1fr 1fr; - gap: 1px; - background: rgba(124, 58, 237, 0.1); -} - -.comparison-row.header { - background: var(--primary); -} - -.comparison-row.header .comparison-item { - background: var(--primary); - color: white; - font-weight: 700; - font-size: 1.1rem; -} - -.comparison-item { - background: white; - padding: 1.5rem; - text-align: center; -} - -.comparison-item.highlight { - background: linear-gradient(135deg, #faf5ff 0%, #f3e8ff 100%); - font-weight: 600; - color: var(--primary); -} - -/* Case Studies */ -.ai-case-studies { - padding: 5rem 2rem; - background: var(--light); -} - -.case-studies-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); - gap: 2.5rem; - max-width: 1200px; - margin: 3rem auto 0; -} - -.case-study-card { - background: white; - padding: 2.5rem; - border-radius: 15px; - box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); - border-top: 5px solid var(--primary); -} - -.case-badge { - display: inline-block; - background: var(--primary); - color: white; - padding: 0.5rem 1rem; - border-radius: 20px; - font-size: 0.85rem; - font-weight: 600; - margin-bottom: 1rem; -} - -.case-study-card h3 { - font-size: 1.75rem; - color: var(--dark); - margin-bottom: 1.5rem; -} - -.case-study-card .challenge, -.case-study-card .solution, -.case-study-card .results { - margin-bottom: 1.5rem; -} - -.case-study-card strong { - color: var(--primary); - display: block; - margin-bottom: 0.5rem; -} - -.results-list { - list-style: none; - padding-left: 0; - margin-top: 0.75rem; -} - -.results-list li { - padding: 0.5rem 0; - padding-left: 1.5rem; - position: relative; - color: var(--gray); -} - -.results-list li::before { - content: '✓'; - position: absolute; - left: 0; - color: #10b981; - font-weight: bold; -} - -.testimonial { - background: var(--light); - padding: 1.5rem; - border-radius: 10px; - font-style: italic; - color: var(--dark); - margin: 1.5rem 0 0.5rem; - border-left: 4px solid var(--primary); -} - -.testimonial-author { - text-align: right; - color: var(--gray); - font-size: 0.95rem; - margin-top: 0.5rem; -} - -/* AI Ethics */ -.ai-ethics { - padding: 5rem 2rem; - background: white; -} - -.ethics-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); - gap: 2rem; - max-width: 1200px; - margin: 3rem auto 0; -} - -.ethics-card { - background: linear-gradient(135deg, #faf5ff 0%, white 100%); - padding: 2.5rem; - border-radius: 15px; - border: 2px solid rgba(124, 58, 237, 0.1); - transition: all 0.3s ease; -} - -.ethics-card:hover { - transform: translateY(-5px); - box-shadow: 0 15px 40px rgba(124, 58, 237, 0.15); -} - -.ethics-card h3 { - font-size: 1.5rem; - color: var(--dark); - margin-bottom: 1rem; -} - -.ethics-card p { - color: var(--gray); - line-height: 1.7; -} - -/* FAQ Section */ -.ai-faq { - padding: 5rem 2rem; - background: var(--light); -} - -.faq-list { - max-width: 900px; - margin: 3rem auto 0; -} - -.faq-item { - background: white; - border-radius: 10px; - margin-bottom: 1.5rem; - overflow: hidden; - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05); -} - -.faq-question { - display: flex; - justify-content: space-between; - align-items: center; - padding: 1.5rem 2rem; - cursor: pointer; - transition: background 0.3s ease; -} - -.faq-question:hover { - background: var(--light); -} - -.faq-question h3 { - font-size: 1.15rem; - color: var(--dark); - margin: 0; - flex: 1; -} - -.faq-toggle { - font-size: 2rem; - color: var(--primary); - font-weight: 300; - line-height: 1; - transition: transform 0.3s ease; -} - -.faq-item.active .faq-toggle { - transform: rotate(45deg); -} - -.faq-answer { - max-height: 0; - overflow: hidden; - transition: max-height 0.3s ease; -} - -.faq-item.active .faq-answer { - max-height: 500px; -} - -.faq-answer p { - padding: 0 2rem 1.5rem; - color: var(--gray); - line-height: 1.8; -} - -/* Pricing Section */ -.ai-pricing { - padding: 5rem 2rem; - background: white; -} - -.pricing-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); - gap: 2rem; - max-width: 1200px; - margin: 3rem auto 0; -} - -.pricing-card { - background: white; - border-radius: 20px; - box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); - border: 2px solid rgba(124, 58, 237, 0.1); - transition: all 0.3s ease; - display: flex; - flex-direction: column; - position: relative; - overflow: hidden; -} - -.pricing-card:hover { - transform: translateY(-10px); - box-shadow: 0 20px 50px rgba(124, 58, 237, 0.15); -} - -.pricing-card.featured { - border-color: var(--primary); - border-width: 3px; -} - -.badge-popular { - position: absolute; - top: 20px; - right: -35px; - background: linear-gradient(135deg, #10b981 0%, #059669 100%); - color: white; - padding: 0.5rem 3rem; - font-weight: 700; - font-size: 0.85rem; - transform: rotate(45deg); - box-shadow: 0 5px 15px rgba(16, 185, 129, 0.3); -} - -.pricing-header { - background: linear-gradient(135deg, #faf5ff 0%, #f3e8ff 100%); - padding: 2.5rem 2rem; - text-align: center; -} - -.pricing-header h3 { - font-size: 1.75rem; - color: var(--dark); - margin-bottom: 0.5rem; -} - -.pricing-subtitle { - color: var(--gray); - font-size: 0.95rem; -} - -.pricing-body { - padding: 2rem; - flex: 1; -} - -.price { - text-align: center; - margin-bottom: 1rem; -} - -.currency { - font-size: 1.5rem; - color: var(--primary); - font-weight: 700; - vertical-align: top; -} - -.amount { - font-size: 3.5rem; - color: var(--primary); - font-weight: 800; -} - -.period { - font-size: 1.25rem; - color: var(--gray); - font-weight: 500; -} - -.price-custom { - font-size: 2rem; - color: var(--primary); - font-weight: 800; -} - -.pricing-note { - text-align: center; - color: var(--gray); - font-size: 0.9rem; - margin-bottom: 2rem; -} - -.pricing-body h4 { - font-size: 1.1rem; - color: var(--dark); - margin: 1.5rem 0 1rem; -} - -.pricing-features { - list-style: none; - padding-left: 0; - margin-bottom: 1.5rem; -} - -.pricing-features li { - padding: 0.75rem 0; - color: var(--gray); - border-bottom: 1px solid rgba(0, 0, 0, 0.05); -} - -.ideal-for { - background: var(--light); - padding: 1rem; - border-radius: 10px; - font-size: 0.95rem; - color: var(--gray); - margin-top: 1.5rem; -} - -.pricing-card .btn { - margin: 0 2rem 2rem; -} - -/* CTA Section */ -.ai-cta { - padding: 5rem 2rem; - background: linear-gradient(135deg, #7C3AED 0%, #8B5CF6 50%, #A78BFA 100%); - text-align: center; - color: white; -} - -.ai-cta h2 { - font-size: 2.5rem; - margin-bottom: 1rem; -} - -.ai-cta > p { - font-size: 1.25rem; - margin-bottom: 2.5rem; - opacity: 0.95; -} - -.ai-cta .cta-buttons { - margin-bottom: 1.5rem; -} - -.cta-note { - font-size: 0.95rem; - opacity: 0.9; -} - -/* Resources */ -.ai-resources { - padding: 5rem 2rem; - background: var(--light); -} - -.resources-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); - gap: 2rem; - max-width: 1200px; - margin: 3rem auto 0; -} - -.resource-card { - background: white; - padding: 2.5rem; - border-radius: 15px; - box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); - text-align: center; - transition: all 0.3s ease; -} - -.resource-card:hover { - transform: translateY(-5px); - box-shadow: 0 15px 40px rgba(124, 58, 237, 0.15); -} - -.resource-icon { - font-size: 3rem; - margin-bottom: 1rem; -} - -.resource-card h3 { - font-size: 1.25rem; - color: var(--dark); - margin-bottom: 1rem; -} - -.resource-card p { - color: var(--gray); - margin-bottom: 1.5rem; - line-height: 1.7; -} - -.resource-link { - color: var(--primary); - font-weight: 600; - text-decoration: none; - transition: color 0.3s ease; -} - -.resource-link:hover { - color: var(--primary-dark); -} - -/* Responsive Adjustments for AI Page */ -@media (max-width: 768px) { - .ai-hero-content h1 { - font-size: 2.25rem; - } - - .ai-hero-subtitle { - font-size: 1.1rem; - } - - .ai-stats { - grid-template-columns: 1fr; - } - - .ai-service-pillar { - padding: 2rem 1.5rem; - } - - .benefits-grid { - grid-template-columns: 1fr; - } - - .process-timeline { - grid-template-columns: 1fr; - } - - .applications-grid { - grid-template-columns: 1fr; - } - - .case-studies-grid { - grid-template-columns: 1fr; - } - - .comparison-row { - grid-template-columns: 1fr; - } - - .comparison-item { - padding: 1rem; - } - - .pricing-grid { - grid-template-columns: 1fr; - } - - .ai-cta h2 { - font-size: 1.75rem; - } -} diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png new file mode 100644 index 0000000..45f5a8a Binary files /dev/null and b/public/favicon-16x16.png differ diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png new file mode 100644 index 0000000..83b76e0 Binary files /dev/null and b/public/favicon-32x32.png differ diff --git a/public/favicon.ico b/public/favicon.ico index e69de29..2c84acd 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ diff --git a/public/images/logo.svg b/public/images/logo.svg new file mode 100644 index 0000000..92e427c --- /dev/null +++ b/public/images/logo.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/js/unreality1.js b/public/js/unreality1.js deleted file mode 100644 index 1b8baae..0000000 --- a/public/js/unreality1.js +++ /dev/null @@ -1,35 +0,0 @@ -// Smooth scroll -document.querySelectorAll('a[href^="#"]').forEach(anchor => { - anchor.addEventListener('click', function (e) { - e.preventDefault(); - const target = document.querySelector(this.getAttribute('href')); - if (target) { - target.scrollIntoView({ - behavior: 'smooth', - block: 'start' - }); - } - }); -}); - -// Intersection Observer for animations -const observerOptions = { - threshold: 0.1, - rootMargin: '0px 0px -100px 0px' -}; - -const observer = new IntersectionObserver((entries) => { - entries.forEach(entry => { - if (entry.isIntersecting) { - entry.target.style.opacity = '1'; - entry.target.style.transform = 'translateY(0)'; - } - }); -}, observerOptions); - -document.querySelectorAll('.value-card').forEach(card => { - card.style.opacity = '0'; - card.style.transform = 'translateY(30px)'; - card.style.transition = 'opacity 0.6s ease, transform 0.6s ease'; - observer.observe(card); -}); diff --git a/public/js/webtech-solutions.js b/public/js/webtech-solutions.js deleted file mode 100644 index 8c2f509..0000000 --- a/public/js/webtech-solutions.js +++ /dev/null @@ -1,44 +0,0 @@ -// Navbar scroll effect -window.addEventListener('scroll', function() { - const navbar = document.getElementById('navbar'); - if (window.scrollY > 50) { - navbar.classList.add('scrolled'); - } else { - navbar.classList.remove('scrolled'); - } -}); - -// Smooth scroll -document.querySelectorAll('a[href^="#"]').forEach(anchor => { - anchor.addEventListener('click', function (e) { - e.preventDefault(); - const target = document.querySelector(this.getAttribute('href')); - if (target) { - target.scrollIntoView({ - behavior: 'smooth', - block: 'start' - }); - } - }); -}); - -// FAQ Accordion functionality -document.addEventListener('DOMContentLoaded', function() { - const faqItems = document.querySelectorAll('.faq-item'); - - faqItems.forEach(item => { - const question = item.querySelector('.faq-question'); - - question.addEventListener('click', function() { - // Close other open items - faqItems.forEach(otherItem => { - if (otherItem !== item && otherItem.classList.contains('active')) { - otherItem.classList.remove('active'); - } - }); - - // Toggle current item - item.classList.toggle('active'); - }); - }); -}); diff --git a/public/site.webmanifest b/public/site.webmanifest new file mode 100644 index 0000000..c19aad0 --- /dev/null +++ b/public/site.webmanifest @@ -0,0 +1,12 @@ +{ + "name": "Cards Forge", + "short_name": "Cards Forge", + "icons": [ + { "src": "/favicon-16x16.png", "sizes": "16x16", "type": "image/png" }, + { "src": "/favicon-32x32.png", "sizes": "32x32", "type": "image/png" }, + { "src": "/apple-touch-icon.png", "sizes": "180x180", "type": "image/png" } + ], + "theme_color": "#EA580C", + "background_color": "#1e293b", + "display": "standalone" +} diff --git a/resources/css/app.css b/resources/css/app.css index 557ddd7..319f271 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -80,3 +80,49 @@ font-size: 1rem; } } + +@keyframes float { + 0%, 100% { transform: translateY(0px) rotate(0deg); } + 50% { transform: translateY(-15px) rotate(1deg); } +} + +@keyframes moon-pulse { + 0%, 100% { + stroke-width: 3; + filter: drop-shadow(0 0 5px rgba(234, 88, 12, 0.4)); + } + 50% { + stroke-width: 5; + filter: drop-shadow(0 0 20px rgba(234, 88, 12, 0.8)); + } +} + +@keyframes glow-expand { + 0%, 100% { opacity: 0.2; transform: scale(1); } + 50% { opacity: 0.5; transform: scale(1.1); } +} + +.card-animation-container { + animation: float 6s ease-in-out infinite; +} + +.card-base { + transition: all 0.3s ease; +} + +.moon-path { + animation: moon-pulse 4s ease-in-out infinite; +} + +.glow-circle { + transform-origin: 150px 180px; + animation: glow-expand 4s ease-in-out infinite; +} + +.floating-card-1 { + animation: float 5s ease-in-out infinite reverse; +} + +.floating-card-2 { + animation: float 7s ease-in-out infinite; +} diff --git a/resources/svg/clubs.svg b/resources/svg/clubs.svg deleted file mode 100644 index 798c9ad..0000000 --- a/resources/svg/clubs.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/resources/svg/diamonds.svg b/resources/svg/diamonds.svg deleted file mode 100644 index 4687ac9..0000000 --- a/resources/svg/diamonds.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/resources/svg/hearts.svg b/resources/svg/hearts.svg deleted file mode 100644 index 7c55a31..0000000 --- a/resources/svg/hearts.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/resources/svg/spades.svg b/resources/svg/spades.svg deleted file mode 100644 index 682b1a8..0000000 --- a/resources/svg/spades.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/resources/views/layouts/webtech.blade.php b/resources/views/layouts/webtech.blade.php deleted file mode 100644 index 6f9bbd0..0000000 --- a/resources/views/layouts/webtech.blade.php +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - @yield('title', 'Webtech Solutions') - - - - - - - - - - - - - - - - - - - - - - - @yield('styles') - - - - - - @yield('content') - - - - - - - - - - - @yield('scripts') - - diff --git a/resources/views/unreality1.blade.php b/resources/views/unreality1.blade.php deleted file mode 100644 index ab7a091..0000000 --- a/resources/views/unreality1.blade.php +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - Shaping One Future Together - unreality.one - - - - - - - - - - - - - - - - - - -
- - - - - -
- -
-
-
- -
-
- -
-
- -
- -
-
-

Shaping One Future
Together

-

We are at the gateway to endless possibilities. unreality.one is a platform where thinking about the future becomes a collective goal, where technology meets humanity, and where imagination shapes tomorrow.

- -
-
- - -
-

What We Represent

-

Our core principles guide us toward a future where technology serves humanity

- -
-
-

Global Awareness

-

Technological progress cannot be an end in itself, but a catalyst for human cooperation and understanding across all boundaries.

-
- -
-

Collective Responsibility

-

The future does not belong to "some" - it belongs to all. Our choices today shape the world of tomorrow.

-
- -
-

Ethical Technology

-

Artificial intelligence, quantum networks, space exploration - but always with human values at the core.

-
- -
-

Forward-Thinking

-

We don't just want to survive, we want to evolve consciously, guided by values and collective wisdom.

-
-
-
- - -
-
-

One Future. One Humanity.

-

The mission of unreality.one is to create a new basis for thinking together about the future. We don't make predictions, we explore possibilities - how humanity can become one and how we can shape a common future together, across political, economic and cultural boundaries.

-

Because the reality we know today is only one of the possible. Unreality is a space of future possibilities - where imagination meets responsibility, and where dreams can become guidelines and then action.

-
-
- - -
-

Foresight Knowledge Space

-

Knowledge. Inspiration. Dialogue. Thinking about the future never stops.

- -
-
- Future Research -
-

Future Research

-

We explore future scenarios - scientifically and speculatively.

-
    -
  • Scenario-based thinking
  • -
  • Trends, social and technological forecasts
  • -
  • Modelling alternative futures
  • -
-
-
- -
- Evolving Technologies -
-

Evolving Technologies

-

The technologies that are transforming human existence - opportunities and threats.

-
    -
  • Artificial intelligence and machine learning
  • -
  • Quantum computing
  • -
  • Bio- and neurotechnology
  • -
  • Space technology and terraforming
  • -
-
-
- -
- Ethics and Humanity -
-

Ethics and Humanity

-

The human dimension of future technologies: choices, responsibilities and values.

-
    -
  • Technoethics and AI morality
  • -
  • Human rights in the digital age
  • -
  • Collective decision-making vs. algorithmic control
  • -
-
-
- -
- Ideas from the Future -
-

Ideas from the Future

-

Inspiring, even speculative concepts - thought-provoking alternatives and future models.

-
    -
  • Systems of imaginary civilisations
  • -
  • Sci-fi based social and technological models
  • -
  • What can we learn from imagination?
  • -
-
-
- -
- Related Disciplines -
-

Related Disciplines

-

Economics, philosophy, ecology, geopolitics - the web of interconnections of the future.

-
    -
  • Interdisciplinary thinking
  • -
  • Holistic vision
  • -
  • Man and Earth in 2100
  • -
-
-
-
-
- - - - - - - - - - - diff --git a/resources/views/webtech-ai-solutions.blade.php b/resources/views/webtech-ai-solutions.blade.php deleted file mode 100644 index 41c0ad3..0000000 --- a/resources/views/webtech-ai-solutions.blade.php +++ /dev/null @@ -1,575 +0,0 @@ -@extends('layouts.webtech') - -@section('title', 'AI-Powered Solutions for Modern Business - Webtech Solutions') -@section('keywords', 'AI solutions, artificial intelligence, AI development, AI analytics, AI content creation, machine learning, automation, business intelligence, AI transformation') -@section('description', 'Transform your business with AI-powered solutions. From AI-enhanced development to content creation and analytics - practical AI implementation for real results.') -@section('og_title', 'AI-Powered Solutions for Modern Business') -@section('og_url', 'https://webtech-solutions.hu/ai-solutions') - -@section('content') - -
-
-
-

AI-Powered Solutions for Modern Business

-

Transform your business operations and development processes with practical AI implementation. We leverage cutting-edge AI tools to deliver real, measurable results - not just hype.

- -
-
- - -
-
-

Why AI Matters for Your Business

-
-

Artificial Intelligence is transforming how businesses operate, develop software, and engage with customers. At Webtech Solutions, we don't chase AI hype - we implement proven AI tools that deliver tangible value.

-

Our approach is pragmatic: AI as a powerful tool to augment human expertise, not replace it. We help you leverage AI to accelerate development, gain deeper insights, and scale content production while maintaining quality and control.

-
-
-
-
60%
-
Time Savings
-

Average reduction in development time using AI-assisted tools

-
-
-
45%
-
Cost Reduction
-

Lower operational costs through intelligent automation

-
-
-
3x
-
Productivity Boost
-

Increased team output with AI-enhanced workflows

-
-
-
10+
-
Projects Completed
-

Successful AI-assisted implementations delivered

-
-
-
-
- - -
-
-

Our AI Solutions

-

Three core pillars of AI implementation for maximum business impact

- - -
-
- -
-

AI-Enhanced Software Development

-

Accelerate your development cycles with AI-powered coding assistants, automated testing, and intelligent code review. We leverage the latest AI tools to build better software faster.

- -

Specific Applications:

-
    -
  • Code Generation & Optimization: AI-assisted coding with GitHub Copilot and Claude Code for faster implementation
  • -
  • Automated Testing & Debugging: AI-powered test generation and intelligent bug detection
  • -
  • Architecture Planning: AI-assisted system design and code review for better structure
  • -
  • Documentation Generation: Automatic creation of comprehensive technical documentation
  • -
  • API Development: Rapid API design and implementation with AI assistance
  • -
- -

Key Benefits:

-
-
✓ 50-70% faster time-to-market
-
✓ Reduced development costs
-
✓ Higher code quality & consistency
-
✓ Better, auto-generated documentation
-
- -
- Technologies: GitHub Copilot, Claude Code, ChatGPT -
-
- - -
-
- -
-

Data-Driven Insights with AI Analytics

-

Transform raw data into actionable intelligence. Our AI-powered analytics solutions help you understand customer behavior, predict trends, and make data-driven decisions with confidence.

- -

Specific Applications:

-
    -
  • Customer Behavior Analysis: Deep insights into user patterns and preferences
  • -
  • Sales Forecasting: Predictive models for accurate revenue projections
  • -
  • Performance Monitoring: Real-time anomaly detection and alerting
  • -
  • Automated Reporting: Dynamic dashboards and scheduled insights delivery
  • -
  • Predictive Analytics: E-commerce optimization and trend prediction
  • -
- -

Key Benefits:

-
-
✓ Better decision making with data
-
✓ Identify trends before competitors
-
✓ Optimize marketing spend & ROI
-
✓ Reduce customer churn rates
-
- -
- Use Cases: E-commerce analytics, website traffic analysis, inventory optimization, customer segmentation, conversion rate optimization -
-
- - -
-
- -
-

AI-Powered Content Solutions

-

Create engaging, high-quality content at scale. From blog posts to product images and videos, our AI content solutions maintain your brand voice while dramatically increasing production capacity.

- -

Specific Applications:

-
    -
  • Blog Writing: SEO-optimized articles, technical documentation, and long-form content
  • -
  • Image Generation: Product visuals, marketing graphics, hero images, and social media assets
  • -
  • Video Content: Automated video editing, subtitle generation, and promotional videos
  • -
  • Multilingual Content: Professional translation and localization across languages
  • -
  • Social Media: Automated post generation and scheduling with brand consistency
  • -
- -

Key Benefits:

-
-
✓ Maintain consistent content calendar
-
✓ Reach multilingual audiences
-
✓ Cost-effective content production
-
✓ Built-in SEO optimization
-
- -
- Quality Assurance: All AI-generated content undergoes human review and editing to ensure brand voice accuracy and quality standards. -
- -
- Technologies: Claude AI, ChatGPT, DALL-E -
-
-
-
- - -
-
-

Our AI Implementation Process

-

A proven 4-step methodology for successful AI integration

- -
-
-
1
-

Discovery & Analysis

-

We start by understanding your current workflows, pain points, and business objectives. Our team conducts a thorough analysis to identify the best AI opportunities for your specific use case.

-
    -
  • Current workflow assessment
  • -
  • Pain point identification
  • -
  • ROI opportunity analysis
  • -
  • Technical feasibility review
  • -
-
- -
-
2
-

Strategy Development

-

Based on our findings, we develop a comprehensive AI strategy tailored to your needs. This includes tool selection, integration planning, and clear success metrics.

-
    -
  • AI tool selection & evaluation
  • -
  • Integration roadmap creation
  • -
  • Success metrics definition
  • -
  • Budget & timeline planning
  • -
-
- -
-
3
-

Implementation & Integration

-

Our team deploys AI solutions into your existing systems with minimal disruption. We ensure seamless integration and thorough testing before full rollout.

-
    -
  • AI tool deployment
  • -
  • System integration
  • -
  • Workflow automation setup
  • -
  • Testing & validation
  • -
-
- -
-
4
-

Training & Optimization

-

We train your team to effectively use AI tools and continuously optimize performance. Ongoing support ensures you get maximum value from your AI investment.

-
    -
  • Team training sessions
  • -
  • Best practices documentation
  • -
  • Performance monitoring
  • -
  • Continuous improvement
  • -
-
-
-
-
- - -
-
-

AI Solutions in Action

-

Real-world applications delivering measurable results

- -
-
-

E-commerce Optimization

-

AI-powered product recommendations, dynamic pricing strategies, and intelligent inventory management that increase conversion rates and revenue.

-
- Product Recommendations - Dynamic Pricing - Inventory Optimization -
-
- -
-

Customer Support Automation

-

Intelligent chatbots and automated response systems that handle common inquiries 24/7, freeing your team for complex issues.

-
- 24/7 Chatbots - Automated Responses - Ticket Routing -
-
- -
-

Marketing Automation

-

Personalized campaign generation, content creation, and performance optimization powered by AI for better engagement and conversions.

-
- Personalized Campaigns - A/B Testing - Content Generation -
-
- -
-

Accelerated Development

-

Faster MVP delivery with AI-assisted coding, automated testing, and intelligent code review reducing time-to-market significantly.

-
- Rapid Prototyping - Auto Testing - Code Review -
-
- -
-

Business Intelligence

-

Automated reports, predictive analytics, and insights dashboards that turn your data into actionable business intelligence.

-
- Auto Reports - Predictive Analytics - Live Dashboards -
-
- -
-

Multilingual Websites

-

AI-powered translation with human review enabling you to reach global markets with accurate, culturally appropriate content.

-
- AI Translation - Human Review - Cultural Adaptation -
-
-
-
-
- - -
-
-

Our AI Technology Stack

-

Industry-leading tools and platforms we leverage for your success

- -
-

Development AI

-
- GitHub Copilot - Claude Code - ChatGPT -
-
- -
-

Content Creation

-
- Claude AI - DALL-E - Stable Diffusion - ChatGPT -
-
- -
-

Analytics & Automation

-
- Custom AI Models - Make.com AI - Zapier AI -
-
-
-
- - -
-
-

Traditional vs. AI-Enhanced Approach

-

See the difference AI implementation makes

- -
-
-
Metric
-
Traditional Approach
-
AI-Enhanced Approach
-
- -
-
Development Speed
-
Standard timeline
-
50-70% faster
-
- -
-
Content Production Time
-
Days per piece
-
Hours per piece
-
- -
-
Cost Efficiency
-
Baseline costs
-
30-50% cost reduction
-
- -
-
Scalability
-
Linear with headcount
-
Exponential scaling
-
- -
-
Quality Consistency
-
Varies by person
-
Standardized + human review
-
- -
-
Resource Requirements
-
Large teams needed
-
Smaller teams, higher output
-
-
-
-
- - -
-
-

Client Success with AI

-

Real results from AI implementation

- -
-
-
E-commerce
-

Online Retailer Transformation

-

Challenge: Slow content creation and poor product recommendations limiting growth and conversion rates.

-

AI Solution: Implemented AI-powered product descriptions, image generation for missing visuals, and intelligent recommendation engine.

-

Results:

-
    -
  • 65% reduction in content production time
  • -
  • 28% increase in conversion rate
  • -
  • €45K annual cost savings
  • -
  • 3x faster product onboarding
  • -
-

"The AI tools Webtech implemented have transformed our operations. We're now publishing content 10x faster while maintaining quality."

-

- E-commerce Director, Retail Company

-
- -
-
SaaS Development
-

SaaS Platform Acceleration

-

Challenge: Need to accelerate development of new features while reducing bugs and technical debt.

-

AI Solution: Integrated AI-assisted coding, automated testing, and intelligent code review into development workflow.

-

Results:

-
    -
  • 55% faster feature delivery
  • -
  • 40% reduction in bugs
  • -
  • 90% documentation coverage (automated)
  • -
  • €80K saved in development costs
  • -
-

"AI-assisted development has been a game-changer. Our team is more productive and code quality has never been better."

-

- CTO, SaaS Startup

-
- -
-
Marketing Agency
-

Agency Content Scaling

-

Challenge: Managing multiple client campaigns with limited resources and tight deadlines for content delivery.

-

AI Solution: AI content generation for blogs, social media, and ad copy with human editing and brand voice customization.

-

Results:

-
    -
  • 200% increase in content output
  • -
  • 35% more clients serviced
  • -
  • 60% faster campaign launches
  • -
  • €120K revenue increase
  • -
-

"We've doubled our client capacity without hiring more writers. The AI tools handle the heavy lifting while our team adds the creative touch."

-

- Creative Director, Marketing Agency

-
-
-
-
- - -
-
-

Our AI Principles

-

Responsible AI implementation you can trust

- -
-
-

🔍 Transparency

-

We always disclose when content is AI-generated and maintain clear communication about AI usage in your projects.

-
- -
-

🧑‍💼 Human Oversight

-

AI assists, humans decide. All AI outputs undergo human review and final approval. We augment teams, not replace them.

-
- -
-

🔒 Data Privacy

-

Your data stays your data. We implement strict data protection and never use client data to train public AI models.

-
- -
-

✅ Quality Assurance

-

Rigorous human review of all AI outputs ensures accuracy, brand consistency, and quality standards are maintained.

-
- -
-

📚 Continuous Learning

-

We stay updated with the latest AI developments, best practices, and emerging technologies to serve you better.

-
- -
-

⚖️ Responsible Use

-

AI is a tool for augmentation, not replacement. We focus on empowering your team to do their best work, faster.

-
-
-
-
- - -
-
-

Common Questions About AI Solutions

-

Everything you need to know about AI implementation

- -
-
-
-

Will AI replace my development team or employees?

- + -
-
-

Absolutely not. AI is a tool that augments and empowers your team, making them more productive and effective. Think of AI as a very smart assistant that handles repetitive tasks, generates first drafts, and provides suggestions - your team makes the final decisions, adds creativity, and ensures quality. Companies using our AI solutions typically see their teams accomplish more, not fewer people doing the work.

-
-
- -
-
-

How much can I realistically save with AI implementation?

- + -
-
-

Savings vary by use case, but our clients typically see 30-50% cost reduction in areas where AI is implemented. For development projects, we see 50-70% time savings. For content production, costs can drop by 60% or more. The ROI typically becomes positive within 3-6 months. We provide detailed ROI projections during our discovery phase based on your specific situation.

-
-
- -
-
-

Is AI-generated content good for SEO?

- + -
-
-

Yes, when done correctly. Google doesn't penalize AI content - they penalize low-quality content. Our approach combines AI generation with human review, editing, and optimization. We ensure content is accurate, valuable, and aligned with SEO best practices. Many of our clients have seen improved search rankings thanks to the consistency and volume of high-quality content AI enables.

-
-
- -
-
-

How do you ensure quality with AI-generated outputs?

- + -
-
-

Quality assurance is built into every step of our process. All AI outputs undergo human review and editing. We customize AI prompts and fine-tune models to match your brand voice and quality standards. We also implement feedback loops - reviewing results and continuously improving the AI configuration. Our principle is simple: AI creates the first draft, humans perfect it.

-
-
- -
-
-

What's the ROI timeline for AI integration?

- + -
-
-

Most clients see positive ROI within 3-6 months. Quick wins like content generation and development acceleration show results immediately. More complex implementations like predictive analytics may take 6-12 months to show full value. We focus on quick wins first to demonstrate value early, then expand to more complex use cases. Every implementation includes clear metrics to track ROI from day one.

-
-
- -
-
-

Do I need technical knowledge to use AI solutions?

- + -
-
-

No technical expertise required. We handle all the technical implementation and integration. Our solutions are designed to be user-friendly, and we provide comprehensive training for your team. Most users can become productive with AI tools within a few days of training. We also provide ongoing support to ensure your team gets maximum value from the AI tools.

-
-
- -
-
-

How do you handle data security with AI tools?

- + -
-
-

Data security is our top priority. We only use enterprise-grade AI tools with strong security guarantees. Your data is never used to train public AI models. We can implement on-premise AI solutions for sensitive data, use encrypted connections, and follow GDPR compliance. We conduct security assessments of all AI tools before recommendation and can provide detailed security documentation for your compliance needs.

-
-
- -
-
-

Can AI work with my existing systems and workflows?

- + -
-
-

Yes. Our AI solutions are designed to integrate seamlessly with your existing tech stack and workflows. Whether you use specific CMS, e-commerce platforms, development tools, or custom systems, we can integrate AI capabilities. We don't require a complete overhaul - we enhance what you already have. During the discovery phase, we map out all integration points and ensure smooth implementation.

-
-
-
-
-
- - -
-
-

Ready to Transform Your Business with AI?

-

Join dozens of companies already leveraging AI to work smarter, faster, and more efficiently.

- -

Free 30-minute consultation to discuss your AI opportunities

-
-
- -@endsection diff --git a/resources/views/webtech-privacy.blade.php b/resources/views/webtech-privacy.blade.php deleted file mode 100644 index d2c8abd..0000000 --- a/resources/views/webtech-privacy.blade.php +++ /dev/null @@ -1,200 +0,0 @@ -@extends('layouts.webtech') - -@section('title', 'Privacy Policy - Webtech Solutions') -@section('description', 'Privacy Policy for Webtech Solutions IT services') - -@section('styles') - -@endsection - -@section('content') -
- ← Back to Home - -

Privacy Policy

-

Last updated: January 2025

- -

1. Introduction

-

Webtech Solutions ("Service Provider") is committed to protecting your personal data. The purpose of this statement is to inform you in a transparent manner about our data management practices, in particular with regard to the requirements of the GDPR (Regulation EU 2016/679).

- -

2. Data Controller's Information

-
    -
  • Name: Zoltán Németh EV
  • -
  • Registered Office: 1163 Budapest, Veres Péter út 51., Hungary
  • -
  • Email: info@webtech-solutions.hu
  • -
  • Phone: +36 20 280 2024
  • -
- -

3. Scope of Personal Data Processed

-

We process the following data when you contact us on this website:

-
    -
  • Name
  • -
  • Email address
  • -
  • Phone number (optional)
  • -
  • Message content
  • -
  • IP address, technical data (e.g. browser, operating system)
  • -
  • Company information
  • -
  • Project requirements and technical specifications
  • -
- -

4. Purpose and Legal Basis for Processing

-

We process your personal data for the following purposes:

-
    -
  • Contact and offer creation - Legal basis: Consent (Article 6(1)(a) GDPR)
  • -
  • System security and statistical analysis - Legal basis: Legitimate interest (Article 6(1)(f) GDPR)
  • -
  • Providing and maintaining our IT services - Legal basis: Contract performance (Article 6(1)(b) GDPR)
  • -
  • Processing transactions and sending invoices - Legal basis: Contract performance and legal obligation
  • -
  • Communicating with you about services and support - Legal basis: Contract performance and legitimate interest
  • -
  • Improving our services and developing new features - Legal basis: Legitimate interest
  • -
  • Complying with legal obligations - Legal basis: Legal compliance (Article 6(1)(c) GDPR)
  • -
- -

5. Duration of Data Processing

-

Your data will be stored for the following periods:

-
    -
  • Contact data: Maximum of 12 months after contact or until you request deletion
  • -
  • Client data: Duration of service agreement plus 6 years for legal/tax purposes (as required by Hungarian law)
  • -
  • Marketing data: Until you withdraw consent or request deletion
  • -
  • Technical logs: Typically 90 days unless required for security investigations
  • -
- -

6. Data Transfers and Data Processors

-

Webtech Solutions does not transfer data to third parties, except:

-
    -
  • Hosting providers (technical access only)
  • -
  • Third-party service providers (only necessary access for service delivery)
  • -
  • Payment processors (for handling invoices and transactions)
  • -
-

All data processors have a written data processing agreement with us ensuring GDPR compliance.

- -

7. Your Rights (GDPR)

-

Under GDPR, you have the following rights:

-
    -
  • Access to the data processed: Request a copy of your personal data
  • -
  • Rectification: Correct inaccurate or incomplete personal data
  • -
  • Erasure: Request deletion of your data ("right to be forgotten")
  • -
  • Restriction of processing: Limit how we process your data
  • -
  • Right to data portability: Receive your data in a structured, commonly used format
  • -
  • Right to object to data processing: Object to processing based on legitimate interests
  • -
  • Withdraw consent: Withdraw consent at any time where processing is based on consent
  • -
  • Submit a complaint to NAIH: Lodge a complaint with the Hungarian National Authority for Data Protection and Freedom of Information at www.naih.hu
  • -
-

To exercise these rights, contact us at info@webtech-solutions.hu or +36 20 280 2024

- -

8. Use of Cookies

-

When you visit this website, we may use cookies to improve your user experience, statistical analysis and to ensure the functionality of the website. We use cookies and similar technologies to:

-
    -
  • Ensure proper website functionality
  • -
  • Analyze site usage through Google Analytics (G-4TFP8M0NH7)
  • -
  • Remember your preferences
  • -
  • Statistical analysis and user behavior tracking
  • -
-

You can control cookies through your browser settings. Note that disabling cookies may affect site functionality. We provide separate information on the use of cookies.

- -

9. Data Security

-

We implement appropriate technical and organizational measures to protect your data:

-
    -
  • Encryption of data in transit (SSL/TLS)
  • -
  • Secure data storage with access controls
  • -
  • Regular security assessments and updates
  • -
  • Employee training on data protection
  • -
  • Incident response procedures
  • -
  • Firewall protection and intrusion detection systems
  • -
- -

10. International Data Transfers

-

Your data may be transferred and processed in countries outside the European Economic Area (EEA). We ensure appropriate safeguards are in place, such as:

-
    -
  • EU Standard Contractual Clauses
  • -
  • Adequacy decisions by the European Commission
  • -
  • Processor commitments to GDPR-equivalent protections
  • -
- -

11. Children's Privacy

-

Our services are not directed to individuals under 16. We do not knowingly collect personal data from children. If we become aware of such collection, we will delete the information promptly.

- -

12. Changes to This Policy

-

We may update this Privacy Policy from time to time. We will notify you of significant changes by email or through our website. Continued use of our services after changes constitutes acceptance of the updated policy.

- -

13. Contact Us

-

If you have any questions or requests regarding data management, please contact us:

-

- Zoltán Németh EV (Webtech Solutions)
- 📧 Email: info@webtech-solutions.hu
- 📞 Phone: +36 20 280 2024
- 📍 Address: 1163 Budapest, Veres Péter út 51., Hungary -

- -

14. Supervisory Authority

-

If you believe we have not addressed your concerns adequately, you have the right to lodge a complaint with the Hungarian National Authority for Data Protection and Freedom of Information (NAIH):

-

- Website: www.naih.hu -

-
-@endsection diff --git a/resources/views/webtech-solutions.blade.php b/resources/views/webtech-solutions.blade.php deleted file mode 100644 index 7ae1393..0000000 --- a/resources/views/webtech-solutions.blade.php +++ /dev/null @@ -1,107 +0,0 @@ -@extends('layouts.webtech') - -@section('title', 'Tailored IT Solutions for SMEs - Webtech Solutions') -@section('keywords', 'IT solutions, web hosting, e-commerce maintenance, no-code automation, application security, data protection compliance, cloud infrastructure, DevOps, GDPR compliance, AI solutions') -@section('description', 'Enhance your business with Webtech Solutions tailored IT services. From hosting to security, we optimize your digital operations!') -@section('og_title', 'Tailored IT Solutions for SMEs') -@section('og_url', 'https://webtech-solutions.hu/en') - -@section('content') - -
-
-
-
-
-
-
01001001 01010100 00100000 01010011 01101111 01101100 01110101 01110100 01101001 01101111 01101110 01110011
-
01000001 01001001 00100000 01010000 01101111 01110111 01100101 01110010 01100101 01100100
-
01000100 01101001 01100111 01101001 01110100 01100001 01101100
-
-
- -
-
-
-
-

Trusted IT Solutions
for Modern Businesses

-

Enhance your business with tailored IT services. From web hosting to security, we optimize your digital operations for sustainable growth.

- -
-
- - -
-

Our Services

-

Comprehensive IT solutions tailored to your business needs

-
-
-
- -
-

Web Hosting

-

Reliable, high-performance hosting solutions with 99.9% uptime. Scalable infrastructure that grows with your business.

-
-
-
- -
-

24/7 Support

-

Round-the-clock technical support from our expert team. We're here when you need us most.

-
-
-
- -
-

E-commerce Solutions

-

Custom webshop development and maintenance. Magento, WooCommerce, and more - optimized for conversions.

-
-
-
- -
-

No-Code Automation & AI

-

Streamline your workflows with Make.com and Zapier integrations. Automate repetitive tasks without coding. Explore AI Solutions →

-
-
-
- -
-

Security & Compliance

-

Comprehensive security audits and GDPR compliance consulting. Protect your business and customer data.

-
-
-
- -
-

DevOps & Cloud

-

Cloud infrastructure management and DevOps best practices. Automated deployments and monitoring.

-
-
-
- - -
-
-
-

Why Choose Webtech Solutions?

-

With years of experience serving SMEs across Europe, we understand the unique challenges small and medium businesses face in the digital world.

-

Our team combines technical expertise with business acumen to deliver solutions that truly make a difference. We don't just solve problems – we help you grow.

- Start Your Project -
-
- Team collaboration -
-
-
- - -
-

Ready to Transform Your Business?

-

Let's discuss how we can help you achieve your digital goals

- Contact Us Today -
-@endsection diff --git a/resources/views/webtech-solutions.blade.php.tmp b/resources/views/webtech-solutions.blade.php.tmp deleted file mode 100644 index e69de29..0000000 diff --git a/resources/views/webtech-terms.blade.php b/resources/views/webtech-terms.blade.php deleted file mode 100644 index d1c778a..0000000 --- a/resources/views/webtech-terms.blade.php +++ /dev/null @@ -1,150 +0,0 @@ -@extends('layouts.webtech') - -@section('title', 'Terms and Conditions - Webtech Solutions') -@section('description', 'Terms and Conditions for Webtech Solutions IT services') - -@section('styles') - -@endsection - -@section('content') -
- ← Back to Home - -

General Terms and Conditions (GTC)

-

Effective from: April 2, 2025

- -

1. Service Provider Details

-
    -
  • Name: Zoltán Németh Sole Proprietor (EV)
  • -
  • Registered Office: Veres Péter út 51., 1163 Budapest, Hungary
  • -
  • Email: info@webtech-solutions.hu
  • -
  • Phone: +36 20 280 2024
  • -
  • Tax Number: 90946080-1-42
  • -
  • Registration Number: 60302250
  • -
- -

2. General Provisions

-

These General Terms and Conditions apply to the IT services provided by Webtech Solutions, specifically including:

-
    -
  • Web development and operation
  • -
  • Web hosting services
  • -
  • DevOps, cybersecurity, system optimization
  • -
  • Legacy system maintenance
  • -
  • Webshop maintenance (Magento, WooCommerce)
  • -
  • ISO consulting and implementation
  • -
-

By using our services, the client accepts the terms outlined in this GTC.

- -

3. Ordering and Fulfilment Process

-
    -
  • Services are ordered via email or formal contract.
  • -
  • Fulfilment is based on a custom offer or framework agreement.
  • -
  • Invoicing occurs after delivery, with a specified payment deadline.
  • -
  • The client is required to provide all necessary data and access credentials for proper fulfilment.
  • -
- -

4. Fees and Payment Terms

-
    -
  • Service fees are always determined on a case-by-case basis.
  • -
  • Payment is made via bank transfer within the due date stated on the invoice.
  • -
  • In case of late payment, statutory interest may apply as per Hungarian Civil Code.
  • -
- -

5. Limitation of Liability

-
    -
  • The Provider acts with due care but is not liable for damages arising from incorrect information provided by the client, denial of access, or third-party interference.
  • -
  • The Provider's liability is limited to the value of the relevant contract.
  • -
- -

6. Withdrawal and Termination

-
    -
  • For custom projects, termination is governed by the specific contract terms.
  • -
  • For ongoing services (e.g., hosting, maintenance), a 30-day notice period applies.
  • -
  • Termination must be submitted in writing, via email or postal mail.
  • -
- -

7. Complaint Handling

-

Complaints can be submitted through the following contact channels:

-
    -
  • 📧 Email: info@webtech-solutions.hu
  • -
  • 📞 Phone: +36 20 280 2024
  • -
-

All complaints will be investigated and responded to within 5 business days.

- -

8. Data Protection

-

Data is processed in accordance with our Privacy Policy, available on our website.

- -

9. Dispute Resolution

-

The parties will strive to resolve disputes amicably. If this fails, jurisdiction is assigned to the Metropolitan Court of Budapest.

- -

10. Final Provisions

-

The Provider reserves the right to unilaterally modify the GTC. The latest version is always available on the website.

-
-@endsection diff --git a/resources/views/welcome.blade.php b/resources/views/welcome.blade.php index 215c69d..70ec106 100644 --- a/resources/views/welcome.blade.php +++ b/resources/views/welcome.blade.php @@ -135,8 +135,13 @@ function gtag(){dataLayer.push(arguments);}
@@ -188,51 +193,64 @@ function gtag(){dataLayer.push(arguments);} @endif -
-
-
-
-

- - Cards Forge - -

-

- Forge Your Own Trading Card Games -

-

- Create custom cards, design unique card games, and build complete decks with our powerful card creation platform. Plus, buy and sell physical collectible cards in our marketplace. -

- -
+
+
+
+
- -
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ +
+

+ Forge Your Legacy in Every Card +

+

+ Create, manage, and trade unique cards with our AI-powered TCG ecosystem. No boundaries, just pure imagination. +

+
-
-
-
-
+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+
+
@@ -704,19 +722,18 @@ class="group-hover:scale-105 transition-transform duration-200 bg-slate-900">
-

- Cards Forge +

+ + + + + + Cards Forge

Buy, sell, and trade physical collectible cards with verified sellers worldwide. Secure transactions, automated reviews, and a thriving collector community.

-
- - - - -
diff --git a/routes/web.php b/routes/web.php index 0be8540..5180289 100644 --- a/routes/web.php +++ b/routes/web.php @@ -69,18 +69,3 @@ return back()->with('message', 'Verification link sent!'); })->middleware(['auth', 'throttle:6,1'])->name('verification.send'); }); - -// Webtech Solutions domain -Route::domain(env('DOMAIN_WEBTECH', 'webtech-solutions.test'))->group(function () { - Route::get('/', [App\Http\Controllers\WebtechController::class, 'index'])->name('webtech.home'); - Route::get('/ai-solutions', [App\Http\Controllers\WebtechController::class, 'aiSolutions'])->name('webtech.ai'); - Route::get('/terms-and-conditions', [App\Http\Controllers\WebtechController::class, 'terms'])->name('webtech.terms'); - Route::get('/privacy-policy', [App\Http\Controllers\WebtechController::class, 'privacy'])->name('webtech.privacy'); -}); - -// Unreality1 domain -Route::domain(env('DOMAIN_UNREALITY', 'unreality1.test'))->group(function () { - Route::get('/', function () { - return view('unreality1'); - }); -});