/* @font-face { font-family: font; src: url('/fonts/font.ttf'); } html { font-family: font; } */ /* Grid layout for get-started hardware section */ .grid { display: grid; } .grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .gap-4 { gap: 1rem; } /* Responsive: stack on mobile */ @media (max-width: 768px) { .grid-cols-3 { grid-template-columns: 1fr; } } /* App directory - filter buttons */ .app-filters { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; margin: 1.5rem 0; padding: 1rem; background: var(--color-neutral-100); border-radius: 0.75rem; } .dark .app-filters { background: var(--color-neutral-800); } .filter-btn { padding: 0.4rem 0.75rem; font-size: 0.75rem; font-weight: 500; border: 1px solid var(--color-neutral-300); border-radius: 1rem; background: white; color: var(--color-neutral-700); cursor: pointer; transition: all 0.15s ease; } .dark .filter-btn { border-color: var(--color-neutral-600); background: var(--color-neutral-700); color: var(--color-neutral-300); } .filter-btn:hover { background: var(--color-neutral-100); border-color: var(--color-neutral-400); } .dark .filter-btn:hover { background: var(--color-neutral-600); border-color: var(--color-neutral-500); } .filter-btn.active { background: #2563eb !important; border-color: #2563eb !important; color: #ffffff !important; text-decoration: none !important; border-bottom: none !important; box-shadow: none !important; } .dark .filter-btn.active { background: #3b82f6 !important; border-color: #3b82f6 !important; color: #ffffff !important; text-decoration: none !important; border-bottom: none !important; box-shadow: none !important; } .filter-divider { width: 1px; height: 1.5rem; background: var(--color-neutral-300); margin: 0 0.25rem; align-self: center; } .dark .filter-divider { background: var(--color-neutral-600); } .app-count { text-align: center; font-size: 0.8rem; color: var(--color-neutral-500); margin-top: 1rem; } /* App directory - icon grid */ .app-showcase { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; padding: 1.5rem; background: var(--color-neutral-50); border-radius: 0.75rem; margin: 1rem 0; /* Scrollable container - shows ~3 rows */ max-height: 420px; overflow-y: auto; align-content: flex-start; } /* Custom scrollbar styling */ .app-showcase::-webkit-scrollbar { width: 8px; } .app-showcase::-webkit-scrollbar-track { background: var(--color-neutral-200); border-radius: 4px; } .app-showcase::-webkit-scrollbar-thumb { background: var(--color-neutral-400); border-radius: 4px; } .app-showcase::-webkit-scrollbar-thumb:hover { background: var(--color-neutral-500); } .dark .app-showcase::-webkit-scrollbar-track { background: var(--color-neutral-700); } .dark .app-showcase::-webkit-scrollbar-thumb { background: var(--color-neutral-500); } .dark .app-showcase::-webkit-scrollbar-thumb:hover { background: var(--color-neutral-400); } .dark .app-showcase { background: var(--color-neutral-800); } .app-icon { display: flex; flex-direction: column; align-items: center; width: 110px; padding: 1rem 0.75rem; border-radius: 0.75rem; text-decoration: none; transition: all 0.15s ease; background: white; border: 1px solid #e5e7eb; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1); } .dark .app-icon { background: #374151; border-color: #4b5563; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4); } .app-icon:hover { transform: translateY(-3px); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18); border-color: #93c5fd; } .dark .app-icon:hover { box-shadow: 0 6px 16px rgba(0, 0, 0, 0.5); border-color: #3b82f6; } .app-icon img { width: 56px; height: 56px; object-fit: contain; margin-bottom: 0.5rem; } .app-icon span { font-size: 0.7rem; font-weight: 500; text-align: center; color: #374151; line-height: 1.2; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .dark .app-icon span { color: #d1d5db; } /* Infrastructure icons - slightly smaller */ .app-showcase-infra { gap: 0.75rem; padding: 1rem; } .app-showcase-infra .app-icon { width: 75px; padding: 0.5rem; } .app-showcase-infra .app-icon img { width: 32px; height: 32px; } .app-showcase-infra .app-icon span { font-size: 0.6rem; } /* Coming Soon diagonal corner ribbon */ .app-icon.coming-soon { position: relative; overflow: hidden; } .app-icon.coming-soon::before { content: 'SOON'; position: absolute; top: 8px; right: -32px; width: 100px; padding: 4px 0; background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%); color: white; font-size: 0.5rem; font-weight: 800; text-align: center; letter-spacing: 0.1em; text-transform: uppercase; transform: rotate(45deg); box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3); z-index: 10; } .dark .app-icon.coming-soon::before { background: linear-gradient(135deg, #f87171 0%, #ef4444 100%); } .app-icon.coming-soon img { opacity: 0.6; filter: grayscale(20%); } .app-icon.coming-soon:hover img { opacity: 1; filter: grayscale(0%); }