100 / SQUADRONGRITFIRSTPROJECT.HTML
Squadrongrit's picture
Upload SQUADRONGRITFIRSTPROJECT.HTML
f122bdf verified
Raw
History Blame Contribute Delete
32.5 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Squadron Grit Search Engine Hub</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700&family=Rajdhani:wght@500;700&display=swap" rel="stylesheet">
<style>
:root {
--primary-military: #2a3a1f;
--secondary-black: #121a0f;
--accent-beige: #c2b280;
--highlight-gold: #d4af37;
--panel-dark: #1e2615;
--tactical-red: #a52a2a;
--text-light: #e0e0e0;
}
body {
font-family: 'Rajdhani', sans-serif;
margin: 0;
padding: 0;
background: linear-gradient(135deg, var(--secondary-black), var(--primary-military));
color: var(--text-light);
min-height: 100vh;
transition: all 0.3s ease;
}
/* Tactical Header */
.tactical-header {
background: rgba(42, 58, 31, 0.9);
padding: 15px 0;
border-bottom: 2px solid var(--highlight-gold);
position: relative;
z-index: 100;
}
.header-container {
display: flex;
justify-content: space-between;
align-items: center;
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
.logo-container {
display: flex;
align-items: center;
gap: 15px;
}
.logo-icon {
width: 50px;
height: 50px;
background: radial-gradient(circle, var(--highlight-gold), var(--primary-military));
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
border: 2px solid var(--accent-beige);
box-shadow: 0 0 15px rgba(212, 175, 55, 0.3);
animation: pulse 2s infinite alternate;
}
@keyframes pulse {
0% { transform: scale(1); box-shadow: 0 0 15px rgba(212, 175, 55, 0.3); }
100% { transform: scale(1.05); box-shadow: 0 0 25px rgba(212, 175, 55, 0.5); }
}
.logo-text {
font-family: 'Orbitron', sans-serif;
font-size: 1.8rem;
font-weight: 700;
color: var(--highlight-gold);
text-shadow: 0 0 10px rgba(212, 175, 55, 0.3);
letter-spacing: 1px;
}
.logo-text span {
color: var(--accent-beige);
font-weight: 400;
}
.header-controls {
display: flex;
gap: 15px;
align-items: center;
}
.tactical-btn {
background: rgba(42, 58, 31, 0.7);
color: var(--accent-beige);
border: 1px solid var(--highlight-gold);
border-radius: 4px;
padding: 8px 15px;
font-family: 'Rajdhani', sans-serif;
font-weight: 700;
cursor: pointer;
transition: all 0.3s ease;
display: flex;
align-items: center;
gap: 8px;
}
.tactical-btn:hover {
background: var(--highlight-gold);
color: var(--primary-military);
transform: translateY(-2px);
}
/* Main Content */
.main-container {
max-width: 1200px;
margin: 30px auto;
padding: 0 20px;
display: grid;
grid-template-columns: 300px 1fr;
gap: 20px;
}
/* Engines Panel */
.engines-panel {
background: var(--panel-dark);
border-radius: 8px;
border: 1px solid var(--highlight-gold);
box-shadow: 0 5px 15px rgba(0,0,0,0.3);
padding: 15px;
height: fit-content;
}
.panel-header {
display: flex;
justify-content: space-between;
align-items: center;
padding-bottom: 15px;
border-bottom: 1px solid rgba(194, 178, 128, 0.3);
margin-bottom: 15px;
}
.panel-header h2 {
margin: 0;
font-family: 'Orbitron', sans-serif;
font-size: 1.4rem;
color: var(--highlight-gold);
}
.search-engine-input {
width: 100%;
padding: 10px 15px;
background: rgba(30, 40, 20, 0.5);
border: 1px solid var(--accent-beige);
border-radius: 4px;
color: var(--accent-beige);
font-size: 0.9rem;
margin-bottom: 15px;
outline: none;
transition: all 0.3s ease;
}
.search-engine-input:focus {
border-color: var(--highlight-gold);
box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.2);
}
.engine-categories {
display: flex;
gap: 5px;
margin-bottom: 15px;
flex-wrap: wrap;
}
.category-btn {
padding: 5px 12px;
background: rgba(42, 58, 31, 0.5);
border: 1px solid var(--accent-beige);
border-radius: 4px;
font-size: 0.8rem;
cursor: pointer;
transition: all 0.2s ease;
color: var(--accent-beige);
}
.category-btn.active {
background: var(--highlight-gold);
color: var(--primary-military);
border-color: var(--highlight-gold);
}
.category-btn:hover {
background: rgba(212, 175, 55, 0.3);
}
.engine-list {
display: grid;
grid-template-columns: 1fr;
gap: 10px;
max-height: 500px;
overflow-y: auto;
padding-right: 5px;
}
/* Custom scrollbar */
.engine-list::-webkit-scrollbar {
width: 6px;
}
.engine-list::-webkit-scrollbar-track {
background: rgba(30, 40, 20, 0.3);
border-radius: 3px;
}
.engine-list::-webkit-scrollbar-thumb {
background: var(--highlight-gold);
border-radius: 3px;
}
.engine-item {
padding: 12px 15px;
border-radius: 4px;
background: rgba(30, 40, 20, 0.3);
cursor: pointer;
transition: all 0.2s ease;
display: flex;
align-items: center;
gap: 12px;
border: 1px solid rgba(194, 178, 128, 0.2);
}
.engine-item:hover {
background: rgba(212, 175, 55, 0.1);
border-color: var(--highlight-gold);
}
.engine-item.active {
background: rgba(212, 175, 55, 0.2);
border-left: 3px solid var(--highlight-gold);
}
.engine-icon {
width: 20px;
height: 20px;
object-fit: contain;
border-radius: 2px;
}
.engine-name {
font-weight: 500;
font-size: 0.95rem;
color: var(--accent-beige);
}
/* Search Container */
.search-container {
background: var(--panel-dark);
border-radius: 8px;
border: 1px solid var(--highlight-gold);
box-shadow: 0 5px 15px rgba(0,0,0,0.3);
padding: 25px;
}
.search-header {
text-align: center;
margin-bottom: 30px;
position: relative;
}
.search-header h1 {
font-family: 'Orbitron', sans-serif;
font-size: 2.2rem;
margin-bottom: 10px;
color: var(--highlight-gold);
text-shadow: 0 0 10px rgba(212, 175, 55, 0.2);
}
.search-header p {
color: var(--accent-beige);
margin-top: 0;
font-size: 1.1rem;
}
.current-engine {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 6px 15px;
background: rgba(212, 175, 55, 0.1);
border-radius: 20px;
font-size: 0.9rem;
margin-top: 15px;
color: var(--highlight-gold);
border: 1px solid rgba(212, 175, 55, 0.3);
}
.search-box {
display: flex;
gap: 15px;
margin-bottom: 25px;
}
#searchInput {
flex: 1;
padding: 15px;
background: rgba(30, 40, 20, 0.5);
border: 2px solid var(--accent-beige);
border-radius: 6px;
font-size: 1rem;
color: var(--accent-beige);
transition: all 0.3s ease;
}
#searchInput:focus {
border-color: var(--highlight-gold);
box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.2);
outline: none;
}
#searchInput::placeholder {
color: rgba(194, 178, 128, 0.6);
}
.search-button {
padding: 0 25px;
background: var(--highlight-gold);
color: var(--primary-military);
border: none;
border-radius: 6px;
cursor: pointer;
transition: all 0.3s ease;
font-weight: 700;
font-family: 'Rajdhani', sans-serif;
display: flex;
align-items: center;
gap: 10px;
font-size: 1rem;
}
.search-button:hover {
background: #e5c04d;
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(212, 175, 55, 0.3);
}
.search-button:active {
transform: translateY(0);
}
/* Tactical Features */
.tactical-features {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 15px;
margin-top: 30px;
}
.feature-card {
background: rgba(30, 40, 20, 0.3);
border-radius: 6px;
padding: 20px;
border: 1px solid rgba(194, 178, 128, 0.2);
transition: all 0.3s ease;
}
.feature-card:hover {
border-color: var(--highlight-gold);
transform: translateY(-3px);
box-shadow: 0 5px 15px rgba(0,0,0,0.2);
}
.feature-icon {
font-size: 1.8rem;
color: var(--highlight-gold);
margin-bottom: 10px;
}
.feature-title {
font-family: 'Orbitron', sans-serif;
font-size: 1.1rem;
color: var(--highlight-gold);
margin-bottom: 10px;
}
.feature-desc {
font-size: 0.9rem;
color: var(--accent-beige);
line-height: 1.5;
}
/* Tactical Loading */
.tactical-loading {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(20, 30, 15, 0.9);
z-index: 9999;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
display: none;
}
.loading-spinner {
width: 80px;
height: 80px;
border: 8px solid rgba(194, 178, 128, 0.3);
border-top: 8px solid var(--highlight-gold);
border-radius: 50%;
animation: spin 1.5s linear infinite;
margin-bottom: 20px;
}
.loading-text {
font-family: 'Orbitron', sans-serif;
font-size: 1.5rem;
color: var(--highlight-gold);
text-shadow: 0 0 10px rgba(212, 175, 55, 0.5);
margin-top: 20px;
}
.loading-percentage {
font-family: 'Orbitron', sans-serif;
font-size: 2rem;
color: var(--accent-beige);
margin-top: 10px;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
/* Responsive Design */
@media (max-width: 992px) {
.main-container {
grid-template-columns: 1fr;
}
.engines-panel {
order: 2;
}
}
@media (max-width: 768px) {
.header-container {
flex-direction: column;
gap: 15px;
}
.search-box {
flex-direction: column;
}
.search-button {
width: 100%;
justify-content: center;
padding: 15px;
}
.tactical-features {
grid-template-columns: 1fr;
}
}
</style>
</head>
<body>
<!-- Tactical Loading Overlay -->
<div class="tactical-loading" id="loadingOverlay">
<div class="loading-spinner"></div>
<div class="loading-text">ENGAGING SYSTEMS</div>
<div class="loading-percentage" id="loadingPercentage">0%</div>
</div>
<!-- Tactical Header -->
<header class="tactical-header">
<div class="header-container">
<div class="logo-container">
<div class="logo-icon">
<i class="fas fa-crosshairs" style="color: var(--accent-beige); font-size: 1.5rem;"></i>
</div>
<div class="logo-text">SQUADRON <span>GRIT</span></div>
</div>
<div class="header-controls">
<button class="tactical-btn" onclick="showLoading('SYSTEM DIAGNOSTICS')">
<i class="fas fa-cog"></i> Settings
</button>
<button class="tactical-btn" onclick="showLoading('USER PROFILE')">
<i class="fas fa-user"></i> Profile
</button>
</div>
</div>
</header>
<!-- Main Content -->
<div class="main-container">
<!-- Engines Panel -->
<aside class="engines-panel">
<div class="panel-header">
<h2><i class="fas fa-search" style="margin-right: 10px;"></i> Search Engines</h2>
</div>
<input type="text" class="search-engine-input" placeholder="Search for engines..." id="engineSearch">
<div class="engine-categories" id="engineCategories">
<button class="category-btn active" data-category="all">All</button>
<button class="category-btn" data-category="general">General</button>
<button class="category-btn" data-category="privacy">Privacy</button>
<button class="category-btn" data-category="academic">Academic</button>
<button class="category-btn" data-category="multimedia">Multimedia</button>
<button class="category-btn" data-category="regional">Regional</button>
</div>
<div class="engine-list" id="engineList"></div>
</aside>
<!-- Search Container -->
<main class="search-container">
<div class="search-header">
<h1>Search Engine Hub</h1>
<p>Deploy tactical searches across 100+ specialized engines</p>
<div class="current-engine" id="currentEngine">
<i class="fas fa-check-circle"></i> Google
</div>
</div>
<div class="search-box">
<input type="text" id="searchInput" placeholder="Enter mission parameters...">
<button class="search-button" onclick="activateSearch()">
<i class="fas fa-bullseye"></i> Execute Search
</button>
</div>
<div class="tactical-features">
<div class="feature-card">
<div class="feature-icon">
<i class="fas fa-bolt"></i>
</div>
<h3 class="feature-title">Rapid Deployment</h3>
<p class="feature-desc">Instant access to multiple search engines with single query execution across all platforms.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<i class="fas fa-shield-alt"></i>
</div>
<h3 class="feature-title">Tactical Privacy</h3>
<p class="feature-desc">Built-in privacy protections and anonymous search options for covert operations.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<i class="fas fa-chess"></i>
</div>
<h3 class="feature-title">Strategic Analysis</h3>
<p class="feature-desc">Cross-reference results from multiple sources for comprehensive intelligence.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<i class="fas fa-random"></i>
</div>
<h3 class="feature-title">Dynamic Rotation</h3>
<p class="feature-desc">Automatically rotate search engines to avoid detection and rate limiting.</p>
</div>
</div>
</main>
</div>
<script>
// Complete Search Engines Data
const searchEngines = [
{ name: "All the Internet", url: "https://www.alltheinternet.com/search?q=", category: "general" },
{ name: "AltaVista", url: "https://www.altavistasearchengine.com/search?q=", category: "general" },
{ name: "Andi", url: "https://andisearch.com/?q=", category: "privacy" },
{ name: "AOL Search", url: "https://search.aol.com/aol/search?q=", category: "general" },
{ name: "Archive", url: "https://archive.org/search?query=", category: "academic" },
{ name: "Ask", url: "https://www.ask.com/web?q=", category: "general" },
{ name: "Baidu", url: "https://www.baidu.com/s?wd=", category: "regional" },
{ name: "Biznar", url: "https://biznar.com/biznar/desktop/en/search.html?q=", category: "business" },
{ name: "Brave", url: "https://search.brave.com/search?q=", category: "privacy" },
{ name: "Carrot2", url: "https://search.carrot2.org/#/search/web/", category: "general" },
{ name: "Choosito", url: "https://www.choosito.com/search?q=", category: "academic" },
{ name: "Dogpile", url: "https://www.dogpile.com/serp?q=", category: "general" },
{ name: "DuckDuckGo", url: "https://duckduckgo.com/?q=", category: "privacy" },
{ name: "Easy Seek", url: "https://www.easyseek.com/search.php?q=", category: "general" },
{ name: "Ecosia", url: "https://www.ecosia.org/search?q=", category: "general" },
{ name: "eFind", url: "https://www.efind.com/search/?q=", category: "general" },
{ name: "Ekoru", url: "https://www.ekoru.org/?q=", category: "general" },
{ name: "Entireweb", url: "https://www.entireweb.com/search/?q=", category: "general" },
{ name: "eTools", url: "https://www.etools.ch/search.do?q=", category: "general" },
{ name: "Excite", url: "https://results.excite.com/serp?q=", category: "general" },
{ name: "Find Software", url: "https://www.findsoftware.com/search/?q=", category: "tech" },
{ name: "Fireball", url: "https://www.fireball.de/suche?q=", category: "regional" },
{ name: "Freespoke", url: "https://www.freespoke.com/search?q=", category: "general" },
{ name: "Ghostery", url: "https://ghosterysearch.com/search?q=", category: "privacy" },
{ name: "Gibiru", url: "https://gibiru.com/results.html?q=", category: "privacy" },
{ name: "Gigablast", url: "https://www.gigablast.com/search?q=", category: "general" },
{ name: "Givero", url: "https://www.givero.com/search?q=", category: "general" },
{ name: "GoGoPrivate", url: "https://www.gogoprivate.com/search?q=", category: "privacy" },
{ name: "Goo", url: "https://search.goo.ne.jp/web.jsp?q=", category: "regional" },
{ name: "Good", url: "https://www.good-search.org/search?q=", category: "general" },
{ name: "Goodsearch", url: "https://www.goodsearch.com/search-web?q=", category: "general" },
{ name: "Google", url: "https://www.google.com/search?q=", category: "general" },
{ name: "iSeek", url: "https://www.iseek.com/#/search?q=", category: "academic" },
{ name: "iZito", url: "https://www.izito.com/?q=", category: "general" },
{ name: "Jeeves", url: "https://www.ask.com/web?q=", category: "general" },
{ name: "Kiddle", url: "https://www.kiddle.co/s.php?q=", category: "kids" },
{ name: "LibreX", url: "https://librex.beparanoid.de/search?q=", category: "privacy" },
{ name: "Lilo", url: "https://search.lilo.org/results.php?q=", category: "general" },
{ name: "Lukol", url: "https://www.lukol.com/search?q=", category: "privacy" },
{ name: "Lycos", url: "https://search.lycos.com/web/?q=", category: "general" },
{ name: "MetaCrawler", url: "https://www.metacrawler.com/serp?q=", category: "general" },
{ name: "MetaGer", url: "https://metager.org/meta/meta.ger3?eingabe=", category: "privacy" },
{ name: "Bing", url: "https://www.bing.com/search?q=", category: "general" },
{ name: "Mojeek", url: "https://www.mojeek.com/search?q=", category: "privacy" },
{ name: "Monster Crawler", url: "https://www.monstercrawler.com/search?q=", category: "general" },
{ name: "MyAllSearch", url: "https://www.myallsearch.com/search?q=", category: "general" },
{ name: "Naver", url: "https://search.naver.com/search.naver?query=", category: "regional" },
{ name: "Neeva", url: "https://neeva.com/search?q=", category: "general" },
{ name: "OpenMD", url: "https://openmd.com/search?q=", category: "medical" },
{ name: "Openverse", url: "https://wordpress.org/openverse/search/?q=", category: "multimedia" },
{ name: "Petal Search", url: "https://petalsearch.com/search?query=", category: "general" },
{ name: "Police Buddy", url: "https://www.policebuddy.com/search?q=", category: "specialized" },
{ name: "Popular Search Engines", url: "https://www.popularsearchengines.com/search?q=", category: "meta" },
{ name: "Presearch", url: "https://presearch.com/search?q=", category: "privacy" },
{ name: "Qmamu", url: "https://www.qmamu.com/search?q=", category: "general" },
{ name: "Qwant", url: "https://www.qwant.com/?q=", category: "privacy" },
{ name: "Result Hunter", url: "https://www.resulthunter.com/search?q=", category: "general" },
{ name: "Right Dao", url: "https://www.rightdao.com/search?q=", category: "general" },
{ name: "SearchBuddy", url: "https://www.searchbuddy.com/search?q=", category: "general" },
{ name: "Search Encrypt", url: "https://www.searchencrypt.com/search?q=", category: "privacy" },
{ name: "Search Geek", url: "https://www.searchgeek.com/search?q=", category: "general" },
{ name: "Search Raven", url: "https://www.searchraven.com/search?q=", category: "general" },
{ name: "Search Haven", url: "https://www.searchhaven.com/search?q=", category: "general" },
{ name: "Search Here", url: "https://www.search-here.net/search?q=", category: "general" },
{ name: "Search Thing", url: "https://www.searchthing.com/search?q=", category: "general" },
{ name: "Search Tool", url: "https://www.searchtool.com/search?q=", category: "general" },
{ name: "Searchalot", url: "https://www.searchalot.com/search?q=", category: "general" },
{ name: "SearchCode", url: "https://searchcode.com/?q=", category: "tech" },
{ name: "Startpage", url: "https://www.startpage.com/do/search?q=", category: "privacy" },
{ name: "StartSiden", url: "https://www.startsiden.no/sok?q=", category: "regional" },
{ name: "Swisscows", url: "https://swisscows.com/web?query=", category: "privacy" },
{ name: "Torry", url: "https://www.torry.io/search?q=", category: "general" },
{ name: "Wiki Buddy", url: "https://www.wikibuddy.com/search?q=", category: "reference" },
{ name: "WolframAlpha", url: "https://www.wolframalpha.com/input/?i=", category: "academic" },
{ name: "Yahoo", url: "https://search.yahoo.com/search?p=", category: "general" },
{ name: "Yandex", url: "https://yandex.com/search/?text=", category: "regional" },
{ name: "Yelliot", url: "https://www.yelliot.com/search?q=", category: "general" },
{ name: "Yippy", url: "https://www.yippy.com/search?query=", category: "general" },
{ name: "YouCare", url: "https://youcare.world/search?q=", category: "general" },
{ name: "ZapMeta", url: "https://www.zapmeta.com/search?q=", category: "general" },
{ name: "4Search", url: "https://www.4search.com/search?q=", category: "general" },
{ name: "99 Search Engines", url: "https://www.99searchengines.com/search?q=", category: "meta" }
];
// Current active engine
let activeEngine = searchEngines.find(engine => engine.name === "Google");
let currentCategory = "all";
// Initialize the engine list
function initEngineList() {
const list = document.getElementById('engineList');
list.innerHTML = '';
const filteredEngines = currentCategory === "all"
? searchEngines
: searchEngines.filter(engine => engine.category === currentCategory);
filteredEngines.forEach(engine => {
const div = document.createElement('div');
div.className = `engine-item ${engine.name === activeEngine.name ? 'active' : ''}`;
div.innerHTML = `
<img src="https://www.google.com/s2/favicons?domain=${engine.url.split('/')[2]}" class="engine-icon" alt="${engine.name}">
<span class="engine-name">${engine.name}</span>
`;
div.onclick = () => selectEngine(engine);
list.appendChild(div);
});
}
// Select a search engine
function selectEngine(engine) {
showLoading(`ACTIVATING ${engine.name.toUpperCase()}`);
setTimeout(() => {
activeEngine = engine;
updateActiveEngineDisplay();
initEngineList();
localStorage.setItem('lastUsedEngine', JSON.stringify(engine));
}, 1500);
}
// Update the current engine display
function updateActiveEngineDisplay() {
document.getElementById('currentEngine').innerHTML = `
<i class="fas fa-check-circle"></i> ${activeEngine.name}
`;
}
// Handle search
function activateSearch() {
const query = document.getElementById('searchInput').value.trim();
if (!query) return;
showLoading(`EXECUTING ${activeEngine.name.toUpperCase()} SEARCH`);
setTimeout(() => {
const searchUrl = `${activeEngine.url}${encodeURIComponent(query)}`;
window.open(searchUrl, '_blank');
}, 1500);
}
// Filter engines by search
document.getElementById('engineSearch').addEventListener('input', (e) => {
const searchTerm = e.target.value.toLowerCase();
const items = document.querySelectorAll('.engine-item');
items.forEach(item => {
const name = item.querySelector('.engine-name').textContent.toLowerCase();
item.style.display = name.includes(searchTerm) ? 'flex' : 'none';
});
});
// Filter by category
document.querySelectorAll('.category-btn').forEach(btn => {
btn.addEventListener('click', () => {
showLoading('LOADING CATEGORY');
setTimeout(() => {
document.querySelectorAll('.category-btn').forEach(b => b.classList.remove('active'));
btn.classList.add('active');
currentCategory = btn.dataset.category;
initEngineList();
}, 800);
});
});
// Handle Enter key
document.getElementById('searchInput').addEventListener('keypress', (e) => {
if (e.key === 'Enter') activateSearch();
});
// Tactical Loading System
function showLoading(operationName) {
const overlay = document.getElementById('loadingOverlay');
const percentage = document.getElementById('loadingPercentage');
overlay.style.display = 'flex';
overlay.querySelector('.loading-text').textContent = operationName;
let progress = 0;
const interval = setInterval(() => {
progress += Math.floor(Math.random() * 10) + 1;
if (progress > 100) progress = 100;
percentage.textContent = progress + '%';
if (progress === 100) {
clearInterval(interval);
setTimeout(() => {
overlay.style.display = 'none';
}, 500);
}
}, 100);
}
// Initialize on load
window.addEventListener('load', () => {
// Load last used engine from localStorage
const lastUsed = localStorage.getItem('lastUsedEngine');
if (lastUsed) {
try {
activeEngine = JSON.parse(lastUsed);
} catch (e) {
console.error("Error loading last used engine", e);
}
}
initEngineList();
updateActiveEngineDisplay();
// Add animation to feature cards
const cards = document.querySelectorAll('.feature-card');
cards.forEach((card, index) => {
card.style.animationDelay = `${index * 0.1}s`;
card.style.opacity = '0';
card.style.animation = 'fadeInUp 0.5s forwards';
});
});
// Add CSS animation
const style = document.createElement('style');
style.textContent = `
@keyframes fadeInUp {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
`;
document.head.appendChild(style);
</script>
</body>
</html>