/* GraphicsLab - High‑End Graphics Testing Styles */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap'); * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; background: linear-gradient(135deg, #f5f7fa 0%, #e4e8f0 100%); color: #1a202c; min-height: 100dvh; overflow-x: hidden; } .container { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; } /* Typography */ h1, h2, h3, h4, h5, h6 { font-weight: 700; line-height: 1.2; } /* Buttons */ .btn-primary, .btn-secondary, .btn-outline, .btn-small { display: inline-flex; align-items: center; justify-content: center; padding: 0.75rem 1.5rem; border-radius: 0.5rem; font-weight: 600; font-size: 1rem; text-decoration: none; cursor: pointer; transition: all 0.3s ease; border: 2px solid transparent; outline: none; } .btn-primary { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4); } .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(102, 126, 234, 0.6); } .btn-secondary { background: linear-gradient(135deg, #10b981 0%, #059669 100%); color: white; box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4); } .btn-secondary:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(16, 185, 129, 0.6); } .btn-outline { background: transparent; color: #667eea; border-color: #667eea; } .btn-outline:hover { background: #667eea; color: white; } .btn-large { padding: 1rem 2.5rem; font-size: 1.125rem; } .btn-small { padding: 0.5rem 1rem; font-size: 0.875rem; background: #4f46e5; color: white; border-radius: 0.375rem; } .btn-small:hover { background: #4338ca; } /* Cards */ .card { background: white; border-radius: 1rem; padding: 2rem; box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05); transition: transform 0.3s ease, box-shadow 0.3s ease; border: 1px solid #e5e7eb; } .card:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); } .hover-lift:hover { transform: translateY(-8px); } .icon-circle { width: 64px; height: 64px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.8rem; margin-bottom: 1.5rem; } /* Badges */ .badge { display: inline-block; padding: 0.25rem 0.75rem; border-radius: 9999px; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; } .badge-webgl { background: #c7d2fe; color: #3730a3; } .badge-canvas { background: #bbf7d0; color: #166534; } .badge-webgpu { background: #fbcfe8; color: #831843; } .badge-easy { background: #d1fae5; color: #065f46; } .badge-medium { background: #fef3c7; color: #92400e; } .badge-hard { background: #fee2e2; color: #991b1b; } .badge-extreme { background: linear-gradient(135deg, #831843, #500724); color: #fbcfe8; font-weight: 800; text-shadow: 0 1px 2px rgba(0,0,0,0.3); } /* Table */ table { width: 100%; border-collapse: collapse; border-radius: 0.75rem; overflow: hidden; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); } th, td { padding: 1rem; text-align: left; border-bottom: 1px solid #e5e7eb; } thead { background: #1f2937; color: white; } tbody tr:last-child td { border-bottom: none; } /* Utility */ .text-gradient { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } /* Responsive */ @media (max-width: 768px) { .container { padding: 0 1rem; } h1 { font-size: 2.5rem; } .card { padding: 1.5rem; } }