* { margin: 0; padding: 0; box-sizing: border-box; } :root { --primary-blue: #2563eb; --primary-orange: #ea580c; --light-blue: #dbeafe; --light-orange: #fed7aa; --white: #ffffff; --gray-100: #f3f4f6; --gray-200: #e5e7eb; --gray-600: #4b5563; --gray-900: #111827; --success-green: #10b981; --warning-yellow: #f59e0b; } body { font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif; line-height: 1.6; color: var(--gray-900); background-color: var(--gray-100); } .header { background: var(--white); box-shadow: 0 2px 20px rgba(0, 0, 0, 0.1); position: fixed; width: 100%; top: 0; z-index: 1000; } .nav-container { max-width: 1200px; margin: 0 auto; padding: 0 2rem; display: flex; justify-content: space-between; align-items: center; height: 80px; } .logo { font-size: 1.8rem; font-weight: 800; color: var(--primary-blue); text-decoration: none; display: flex; align-items: center; gap: 0.5rem; } .logo::before { content: "🎮"; font-size: 1.5rem; } .nav-menu { display: flex; list-style: none; gap: 2rem; } .nav-link { text-decoration: none; color: var(--gray-600); font-weight: 500; position: relative; transition: all 0.3s ease; } .nav-link:hover, .nav-link.active { color: var(--primary-blue); } .nav-link.active::after { content: ''; position: absolute; bottom: -5px; left: 0; width: 100%; height: 2px; background: var(--primary-orange); } .nav-icons { display: flex; gap: 1rem; } .icon-btn { width: 40px; height: 40px; border: none; border-radius: 50%; background: var(--light-blue); color: var(--primary-blue); cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; transition: all 0.3s ease; } .icon-btn:hover { background: var(--primary-blue); color: var(--white); transform: scale(1.1); } .main-content { padding-top: calc(80px + 80px); min-height: 100vh; } .page-hero { background: linear-gradient(135deg, var(--primary-blue), var(--primary-orange)); color: var(--white); padding: 4rem 0; text-align: center; position: relative; overflow: hidden; } .page-hero::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="20" cy="20" r="2" fill="white" opacity="0.1"/><circle cx="80" cy="40" r="1" fill="white" opacity="0.2"/><circle cx="40" cy="80" r="1.5" fill="white" opacity="0.15"/></svg>') repeat; } .hero-container { max-width: 1200px; margin: 0 auto; padding: 0 2rem; position: relative; z-index: 2; } .hero-title { font-size: 3rem; font-weight: 800; margin-bottom: 1rem; } .hero-subtitle { font-size: 1.3rem; opacity: 0.9; max-width: 600px; margin: 0 auto; } .filters-section { background: var(--white); padding: 2rem 0; border-bottom: 1px solid var(--gray-200); position: relative; top: 80px; left: 0; width: 100%; z-index: 999; box-shadow: 0 2px 8px rgba(0,0,0,0.04); } .filters-container { max-width: 1200px; margin: 0 auto; padding: 0 2rem; } .filters-wrapper { display: flex; flex-wrap: wrap; gap: 2rem; align-items: center; justify-content: space-between; } .search-box { position: relative; flex: 1; max-width: 400px; } .search-input { width: 100%; padding: 0.8rem 1rem 0.8rem 3rem; border: 2px solid var(--gray-200); border-radius: 50px; font-size: 1rem; transition: all 0.3s ease; } .search-input:focus { outline: none; border-color: var(--primary-blue); box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1); } .search-icon { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--gray-600); } .filter-buttons { display: flex; gap: 1rem; flex-wrap: wrap; } .filter-btn { padding: 0.6rem 1.2rem; border: 2px solid var(--gray-200); background: var(--white); color: var(--gray-600); border-radius: 50px; cursor: pointer; font-weight: 500; transition: all 0.3s ease; display: flex; align-items: center; gap: 0.5rem; } .filter-btn:hover { border-color: var(--primary-blue); color: var(--primary-blue); } .filter-btn.active { background: var(--primary-blue); color: var(--white); border-color: var(--primary-blue); } .filter-btn.math.active { background: var(--primary-blue); } .filter-btn.music.active { background: var(--primary-orange); border-color: var(--primary-orange); } .filter-btn.english.active { background: var(--success-green); border-color: var(--success-green); } .filter-btn.portugues.active { background: var(--success-green); border-color: var(--success-green); } .games-section { padding: 3rem 0; background: var(--gray-100); } .games-container { max-width: 1200px; margin: 0 auto; padding: 0 2rem; } .section-info { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; } .games-count { color: var(--gray-600); font-size: 1.1rem; } .sort-select { padding: 0.5rem 1rem; border: 2px solid var(--gray-200); border-radius: 10px; background: var(--white); color: var(--gray-600); cursor: pointer; } .games-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 2rem; } .game-card { background: var(--white); border-radius: 20px; overflow: hidden; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); transition: all 0.3s ease; cursor: pointer; position: relative; } .game-card:hover { transform: translateY(-8px); box-shadow: 0 12px 35px rgba(0, 0, 0, 0.15); } .game-image { width: 100%; height: 180px; background: linear-gradient(135deg, var(--light-blue), var(--light-orange)); display: flex; align-items: center; justify-content: center; font-size: 3.5rem; position: relative; overflow: hidden; } .game-image.math { background: linear-gradient(135deg, var(--light-blue), #bfdbfe); } .game-image.music { background: linear-gradient(135deg, var(--light-orange), #fde68a); } .game-image.english { background: linear-gradient(135deg, #d1fae5, #a7f3d0); } .game-badge { position: absolute; top: 1rem; right: 1rem; background: rgba(255, 255, 255, 0.9); padding: 0.3rem 0.8rem; border-radius: 20px; font-size: 0.8rem; font-weight: 600; color: var(--gray-900); } .game-content { padding: 1.5rem; } .game-title { font-size: 1.3rem; font-weight: 700; color: var(--gray-900); margin-bottom: 0.5rem; } .game-description { color: var(--gray-600); margin-bottom: 1rem; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .game-meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; } .game-category { display: inline-flex; align-items: center; gap: 0.3rem; background: var(--light-blue); color: var(--primary-blue); padding: 0.3rem 0.8rem; border-radius: 20px; font-size: 0.9rem; font-weight: 600; } .game-category.music { background: var(--light-orange); color: var(--primary-orange); } .game-category.english { background: #d1fae5; color: var(--success-green); } .game-rating { display: flex; align-items: center; gap: 0.3rem; color: var(--warning-yellow); } .play-button { width: 100%; padding: 0.8rem; background: linear-gradient(135deg, var(--primary-blue), var(--primary-orange)); color: var(--white); border: none; border-radius: 10px; font-weight: 600; cursor: pointer; transition: all 0.3s ease; display: flex; align-items: center; justify-content: center; gap: 0.5rem; } .play-button:hover { transform: translateY(-2px); box-shadow: 0 4px 15px rgba(37, 99, 235, 0.3); } .play-button::before { content: "▶️"; } .loading-spinner { display: none; text-align: center; padding: 3rem; } .spinner { width: 50px; height: 50px; border: 4px solid var(--gray-200); border-top: 4px solid var(--primary-blue); border-radius: 50%; animation: spin 1s linear infinite; margin: 0 auto 1rem; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .no-results { text-align: center; padding: 4rem 2rem; display: none; } .no-results img { width: 200px; opacity: 0.5; margin-bottom: 2rem; } .no-results h3 { font-size: 1.5rem; color: var(--gray-600); margin-bottom: 1rem; } .no-results p { color: var(--gray-600); } @media (max-width: 768px) { .nav-menu { display: none; } .hero-title { font-size: 2.2rem; } .hero-subtitle { font-size: 1.1rem; } .filters-wrapper { flex-direction: column; gap: 1rem; } .search-box { max-width: 100%; } .filter-buttons { justify-content: center; } .section-info { flex-direction: column; gap: 1rem; align-items: stretch; } .games-grid { grid-template-columns: 1fr; gap: 1.5rem; } } @media (max-width: 480px) { .nav-container { padding: 0 1rem; } .hero-container { padding: 0 1rem; } .games-container { padding: 0 1rem; } .filters-container { padding: 0 1rem; } } .fade-in { animation: fadeIn 0.5s ease-in; } @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }