@import url('https://fonts.googleapis.com/css2?family=Inter:wght@200;300;400;500;600;700&display=swap'); * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; } :root { --bg-dark: #0a0a0f; --bg-darker: #050509; --bg-card: #16161f; --text-primary: #ffffff; --text-body: #b4b4c8; --text-muted: #7a7a8c; --coral: #FF6B4A; --coral-dark: #E85A3A; --coral-light: #FF8A6E; --sunshine: #FFD93D; --mint: #6BCB77; --lavender: #9B7EE8; --sky: #4ECDC4; --border-soft: rgba(255, 255, 255, 0.08); --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.2); --shadow-md: 0 8px 32px rgba(0, 0, 0, 0.3); --shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.4); --radius-sm: 12px; --radius-md: 20px; --radius-lg: 28px; } body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; background: var(--bg-dark); color: var(--text-primary); line-height: 1.6; -webkit-font-smoothing: antialiased; min-height: 100vh; overflow-x: hidden; } .container { max-width: 1200px; margin: 0 auto; padding: 0 1rem; } /* Decorative Background */ body::before { content: ''; position: fixed; top: -50%; right: -20%; width: 80%; height: 100%; background: radial-gradient(circle, rgba(255, 107, 74, 0.12) 0%, transparent 60%); pointer-events: none; z-index: -1; } body::after { content: ''; position: fixed; bottom: -30%; left: -20%; width: 60%; height: 80%; background: radial-gradient(circle, rgba(155, 126, 232, 0.1) 0%, transparent 50%); pointer-events: none; z-index: -1; } /* Header */ .header { padding: 1.25rem 0; position: sticky; top: 0; z-index: 100; background: rgba(10, 10, 15, 0.85); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-bottom: 1px solid var(--border-soft); } .header-content { max-width: 1200px; margin: 0 auto; padding: 0 2rem; display: flex; justify-content: space-between; align-items: center; } .logo { display: flex; align-items: center; gap: 0.75rem; font-family: 'Inter', sans-serif; font-weight: 700; font-size: 1.15rem; color: var(--text-primary); } .logo-icon { font-size: 1.6rem; display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; background: linear-gradient(135deg, var(--coral) 0%, var(--coral-light) 100%); border-radius: var(--radius-sm); box-shadow: 0 4px 12px rgba(255, 107, 74, 0.3); } .nav { display: flex; gap: 0.5rem; align-items: center; } .nav-link { padding: 0.5rem 1rem; color: var(--text-body); text-decoration: none; font-size: 0.9rem; font-weight: 500; border-radius: 8px; transition: all 0.3s ease; } .nav-link:hover { color: var(--text-primary); background: var(--bg-card); } .github-btn { display: flex; align-items: center; gap: 0.6rem; padding: 0.65rem 1.25rem; background: var(--bg-card); border: 2px solid var(--border-soft); border-radius: 100px; color: var(--text-primary); text-decoration: none; font-size: 0.9rem; font-weight: 600; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: var(--shadow-sm); } .github-btn:hover { border-color: var(--coral); box-shadow: 0 4px 16px rgba(255, 107, 74, 0.2); transform: translateY(-2px); } /* Hero Section */ .hero-section { padding: 3rem 0 3rem; position: relative; } .hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; } .hero-left { text-align: left; } .hero-right { display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem; } .hero-label { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem 0.5rem 0.65rem; background: var(--bg-card); border: 2px solid var(--border-soft); border-radius: 100px; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--coral); margin-bottom: 2rem; box-shadow: var(--shadow-sm); } .hero-label::before { content: '🤖'; font-size: 1.1rem; } .hero-title { font-family: 'Inter', sans-serif; font-size: clamp(3rem, 7vw, 4.5rem); font-weight: 700; line-height: 1.1; margin-bottom: 1.5rem; color: var(--text-primary); letter-spacing: -0.03em; } .hero-title span { display: inline-block; background: linear-gradient(135deg, var(--coral) 0%, var(--coral-dark) 50%, var(--lavender) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .hero-description { font-size: 1.1rem; line-height: 1.7; color: var(--text-body); max-width: 600px; margin-bottom: 2rem; } .hero-tags { display: flex; gap: 0.75rem; justify-content: flex-start; flex-wrap: wrap; } .tag { padding: 0.5rem 0.5rem; background: var(--bg-card); border: 2px solid var(--border-soft); border-radius: 100px; font-size: 0.9rem; font-weight: 500; color: var(--text-body); transition: all 0.3s ease; } .tag:hover { border-color: var(--coral); transform: translateY(-2px); } .hero-tech { margin-top: 2.5rem; display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; } .hero-tech-label { font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-muted); } .hero-tech-stack { display: flex; gap: 0.75rem; flex-wrap: wrap; justify-content: flex-start; } .tech-pill { padding: 0.4rem 0.75rem; background: linear-gradient(135deg, rgba(255, 107, 74, 0.08), rgba(155, 126, 232, 0.05)); border: 1px solid rgba(255, 107, 74, 0.2); border-radius: 100px; font-size: 0.75rem; font-weight: 500; color: rgba(255, 138, 110, 0.8); transition: all 0.3s ease; } .tech-pill:hover { background: linear-gradient(135deg, rgba(255, 107, 74, 0.15), rgba(155, 126, 232, 0.12)); border-color: var(--coral); transform: translateY(-2px); } /* Section Styles */ section { padding: 3rem 0; } .section-label { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.4rem 0.9rem; background: linear-gradient(135deg, var(--coral) 0%, var(--coral-light) 100%); border-radius: 100px; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: white; margin-bottom: 1rem; } .section-title { font-family: 'Inter', sans-serif; font-size: clamp(2rem, 5vw, 3rem); font-weight: 700; text-align: center; margin-bottom: 1rem; color: var(--text-primary); letter-spacing: -0.02em; } .section-subtitle { font-size: 1.1rem; text-align: center; color: var(--text-muted); margin-bottom: 2rem; max-width: 600px; margin-left: auto; margin-right: auto; } /* Configuration Section */ .config-section { text-align: center; } .config-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 1.5rem; max-width: 800px; margin: 0 auto; } .config-card { background: var(--bg-card); border: 2px solid var(--border-soft); border-radius: var(--radius-lg); padding: 2.5rem; text-align: left; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: var(--shadow-sm); position: relative; overflow: hidden; } .config-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--coral), var(--sunshine)); opacity: 0; transition: opacity 0.3s ease; } .config-card:hover { border-color: transparent; box-shadow: var(--shadow-lg); transform: translateY(-4px); } .config-card:hover::before { opacity: 1; } .config-card.highlight { border-color: var(--coral); background: linear-gradient(135deg, rgba(255, 107, 74, 0.04), rgba(255, 107, 74, 0.01)); } .config-card.highlight::before { opacity: 1; } .config-card h3 { font-family: 'Inter', sans-serif; font-size: 1.5rem; font-weight: 700; margin-bottom: 0.75rem; color: var(--text-primary); } .config-card p { color: var(--text-body); margin-bottom: 1.5rem; line-height: 1.7; } .config-list { list-style: none; padding: 0; } .config-list li { padding: 0.6rem 0; color: var(--text-body); font-size: 0.95rem; display: flex; align-items: center; gap: 0.75rem; } .config-list li::before { content: "✓"; display: flex; align-items: center; justify-content: center; width: 22px; height: 22px; background: linear-gradient(135deg, var(--mint), #5AB868); color: white; font-size: 0.7rem; font-weight: 700; border-radius: 50%; flex-shrink: 0; } .config-note { max-width: 800px; margin: 2rem auto 0; padding: 1.25rem 1.5rem; background: rgba(99, 102, 241, 0.08); border: 1px solid rgba(99, 102, 241, 0.2); border-radius: var(--radius-md); text-align: left; } .config-note p { color: var(--text-body); font-size: 0.9rem; line-height: 1.7; margin: 0; } .config-note strong { color: var(--text-primary); } /* Personalities Section */ .personalities-section { text-align: center; } .personalities-grid { display: grid; grid-template-columns: repeat(3, 1fr); /* Fixed 3 columns */ gap: 1.5rem; } .personality-card { background: var(--bg-card); border: 2px solid var(--border-soft); border-radius: var(--radius-md); padding: 1.5rem; text-align: center; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: var(--shadow-sm); } .personality-card:hover { border-color: var(--coral); box-shadow: var(--shadow-md); transform: translateY(-4px) scale(1.01); } .personality-emoji { font-size: 2.5rem; margin-bottom: 0.75rem; display: inline-block; animation: float 3s ease-in-out infinite; } @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } } .personality-card:nth-child(2) .personality-emoji { animation-delay: 0.2s; } .personality-card:nth-child(3) .personality-emoji { animation-delay: 0.4s; } .personality-card:nth-child(4) .personality-emoji { animation-delay: 0.6s; } .personality-card:nth-child(5) .personality-emoji { animation-delay: 0.8s; } .personality-card:nth-child(6) .personality-emoji { animation-delay: 1s; } .personality-card:nth-child(7) .personality-emoji { animation-delay: 1.2s; } .personality-card:nth-child(8) .personality-emoji { animation-delay: 1.4s; } .personality-card:nth-child(9) .personality-emoji { animation-delay: 1.6s; } .personality-card h3 { font-family: 'Inter', sans-serif; font-size: 1.1rem; font-weight: 700; margin-bottom: 0.5rem; color: var(--text-primary); } .personality-card p { color: var(--text-body); line-height: 1.6; font-size: 0.85rem; margin-bottom: 1rem; } .personality-tags { display: flex; gap: 0.5rem; justify-content: center; flex-wrap: wrap; } .personality-tag { padding: 0.3rem 0.65rem; background: linear-gradient(135deg, rgba(255, 107, 74, 0.1), rgba(155, 126, 232, 0.1)); border-radius: 100px; font-size: 0.7rem; color: var(--coral-dark); font-weight: 600; } /* Features Grid */ .features-section { text-align: center; } .features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 1.5rem; } .feature-item { background: var(--bg-card); border: 2px solid var(--border-soft); border-radius: var(--radius-lg); padding: 2.25rem; text-align: left; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: var(--shadow-sm); } .feature-item:hover { border-color: var(--coral); box-shadow: var(--shadow-md); transform: translateY(-4px); } .feature-icon-badge { width: 56px; height: 56px; background: linear-gradient(135deg, var(--coral) 0%, var(--coral-light) 100%); border-radius: var(--radius-md); display: flex; align-items: center; justify-content: center; margin-bottom: 1.5rem; color: white; box-shadow: 0 6px 16px rgba(255, 107, 74, 0.3); } .feature-item:nth-child(2) .feature-icon-badge { background: linear-gradient(135deg, var(--lavender), #8B6BD8); box-shadow: 0 6px 16px rgba(155, 126, 232, 0.3); } .feature-item:nth-child(3) .feature-icon-badge { background: linear-gradient(135deg, var(--sky), #3EBDB4); box-shadow: 0 6px 16px rgba(78, 205, 196, 0.3); } .feature-item:nth-child(4) .feature-icon-badge { background: linear-gradient(135deg, var(--sunshine), #F0C41E); box-shadow: 0 6px 16px rgba(255, 217, 61, 0.3); } .feature-item:nth-child(5) .feature-icon-badge { background: linear-gradient(135deg, var(--mint), #5AB868); box-shadow: 0 6px 16px rgba(107, 203, 119, 0.3); } .feature-item:nth-child(6) .feature-icon-badge { background: linear-gradient(135deg, #FF8A6E, var(--coral)); box-shadow: 0 6px 16px rgba(255, 138, 110, 0.3); } .feature-item h3 { font-family: 'Inter', sans-serif; font-size: 1.25rem; font-weight: 700; margin-bottom: 0.75rem; color: var(--text-primary); } .feature-item p { color: var(--text-body); line-height: 1.7; font-size: 0.95rem; } /* Getting Started Section */ .getting-started-section { text-align: center; } .guide-card { max-width: 1000px; margin: 0 auto; background: var(--bg-card); border: 2px solid var(--border-soft); border-radius: var(--radius-lg); padding: 3rem; text-align: left; box-shadow: var(--shadow-md); } .guide-list { list-style: none; counter-reset: step-counter; padding: 0; display: flex; flex-direction: column; gap: 1.5rem; } .guide-list li { counter-increment: step-counter; display: flex; gap: 1.5rem; align-items: flex-start; color: var(--text-body); line-height: 1.7; font-size: 1rem; } .guide-list li::before { content: counter(step-counter); width: 32px; height: 32px; background: linear-gradient(135deg, var(--coral), var(--coral-light)); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: 'Inter', sans-serif; font-weight: 700; font-size: 1rem; color: white; flex-shrink: 0; margin-top: 0.1rem; } .guide-list li:nth-child(2)::before { background: linear-gradient(135deg, var(--lavender), #8B6BD8); } .guide-list li:nth-child(3)::before { background: linear-gradient(135deg, var(--sky), #3EBDB4); } .guide-list li:nth-child(4)::before { background: linear-gradient(135deg, var(--mint), #5AB868); } .guide-list strong { color: var(--text-primary); font-weight: 600; } .api-link-inline { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.75rem; background: linear-gradient(135deg, rgba(99, 102, 241, 0.15), rgba(99, 102, 241, 0.08)); border: 1px solid rgba(99, 102, 241, 0.4); border-radius: 6px; text-decoration: none; color: var(--coral-light); font-size: 0.95rem; font-weight: 600; transition: all 0.3s ease; margin: 0 0.25rem; } .api-link-inline:hover { border-color: var(--coral); background: linear-gradient(135deg, rgba(255, 107, 74, 0.2), rgba(255, 107, 74, 0.1)); transform: translateY(-1px); color: var(--coral); } /* Footer */ .footer { background: var(--bg-card); border-top: 2px solid var(--border-soft); padding: 3.5rem 0; margin-top: 3rem; text-align: center; } .footer-links { display: flex; justify-content: center; align-items: center; gap: 1.25rem; flex-wrap: wrap; margin-bottom: 1.25rem; } .footer-links a { color: var(--text-body); text-decoration: none; font-size: 0.95rem; font-weight: 500; transition: all 0.3s ease; padding: 0.5rem 1rem; border-radius: 100px; } .footer-links a:hover { color: var(--coral); background: rgba(255, 107, 74, 0.08); } .footer-links span { color: var(--border-soft); font-size: 0.6rem; } .footer-text { color: var(--text-muted); font-size: 0.9rem; } /* Mobile Alternative View */ .mobile-alternative { display: none; /* Hidden on desktop */ max-width: 600px; margin: 0 auto 2rem; padding: 2rem; text-align: center; } .mobile-hero-icon { font-size: 4rem; margin-bottom: 1rem; } .mobile-hero-title { font-size: 1.75rem; font-weight: 700; color: var(--text-primary); margin-bottom: 1rem; } .mobile-hero-text { font-size: 1.1rem; color: var(--text-body); line-height: 1.7; margin-bottom: 1rem; } .mobile-hero-subtext { font-size: 0.95rem; color: var(--text-muted); line-height: 1.6; margin-bottom: 2rem; } .demo-preview-box { background: var(--bg-card); border: 2px solid var(--border-soft); border-radius: var(--radius-lg); padding: 1.5rem; margin-bottom: 2rem; } .preview-label { font-size: 0.9rem; font-weight: 600; color: var(--coral); text-transform: uppercase; letter-spacing: 0.05em; } .mobile-cta-buttons { display: flex; flex-direction: column; gap: 1rem; align-items: center; } .btn-mobile-github { display: inline-flex; align-items: center; gap: 0.5rem; padding: 1rem 2rem; background: linear-gradient(135deg, var(--coral), var(--coral-light)); color: white; text-decoration: none; border-radius: 12px; font-weight: 700; font-size: 1.1rem; box-shadow: 0 4px 15px rgba(255, 107, 74, 0.3); transition: all 0.3s ease; } .btn-mobile-github:hover { transform: translateY(-3px); box-shadow: 0 8px 25px rgba(255, 107, 74, 0.5); } .cta-hint { font-size: 0.9rem; color: var(--text-body); font-style: italic; } /* Mobile Alternative View */ .mobile-alternative { display: none; /* Hidden on desktop */ max-width: 600px; margin: 0 auto 2rem; padding: 2rem; text-align: center; } .mobile-hero-icon { font-size: 4rem; margin-bottom: 1rem; } .mobile-hero-title { font-size: 1.75rem; font-weight: 700; color: var(--text-primary); margin-bottom: 1rem; } .mobile-hero-text { font-size: 1.1rem; color: var(--text-body); line-height: 1.7; margin-bottom: 1rem; } .mobile-hero-subtext { font-size: 0.95rem; color: var(--text-muted); line-height: 1.6; margin-bottom: 2rem; } .demo-preview-box { background: var(--bg-card); border: 2px solid var(--border-soft); border-radius: var(--radius-lg); padding: 1.5rem; margin-bottom: 2rem; } .preview-label { font-size: 0.9rem; font-weight: 600; color: var(--coral); text-transform: uppercase; letter-spacing: 0.05em; } .mobile-cta-buttons { display: flex; flex-direction: column; gap: 1rem; align-items: center; } .btn-mobile-github { display: inline-flex; align-items: center; gap: 0.5rem; padding: 1rem 2rem; background: linear-gradient(135deg, var(--coral), var(--coral-light)); color: white; text-decoration: none; border-radius: 12px; font-weight: 700; font-size: 1.1rem; box-shadow: 0 4px 15px rgba(255, 107, 74, 0.3); transition: all 0.3s ease; } .btn-mobile-github:hover { transform: translateY(-3px); box-shadow: 0 8px 25px rgba(255, 107, 74, 0.5); } .cta-hint { font-size: 0.9rem; color: var(--text-body); font-style: italic; } .scroll-hint { display: inline-block; font-size: 0.95rem; color: var(--coral-light); font-weight: 600; padding: 0.75rem 1.25rem; background: rgba(255, 107, 74, 0.1); border-radius: 100px; border: 2px solid rgba(255, 107, 74, 0.3); text-decoration: none; transition: all 0.3s ease; cursor: pointer; } .scroll-hint:hover { background: rgba(255, 107, 74, 0.2); border-color: var(--coral); transform: translateY(-2px); } /* Like Reminder (Contest CTA) */ .like-reminder { display: flex; align-items: center; gap: 1rem; margin: 2rem auto 1.5rem; padding: 1.25rem 1.5rem; background: linear-gradient(135deg, rgba(255, 107, 74, 0.15), rgba(255, 107, 74, 0.08)); border: 2px solid var(--coral); border-radius: var(--radius-md); max-width: 500px; animation: pulse-border 2s ease-in-out infinite; } .like-icon { font-size: 2.5rem; animation: heartbeat 1.5s ease-in-out infinite; } @keyframes heartbeat { 0%, 100% { transform: scale(1); } 25% { transform: scale(1.1); } 50% { transform: scale(1); } } @keyframes pulse-border { 0%, 100% { border-color: var(--coral); } 50% { border-color: var(--coral-light); } } .like-text { flex: 1; text-align: left; font-size: 0.95rem; color: var(--text-body); line-height: 1.5; } .like-text strong { color: var(--text-primary); font-size: 1.05rem; display: block; margin-bottom: 0.25rem; } .laptop-hint { font-size: 0.9rem; color: var(--text-muted); font-style: italic; margin-top: 1rem; } /* Responsive Design */ @media (max-width: 768px) { /* Show mobile alternative, hide live demo (prevents flicker) */ .mobile-alternative { display: block !important; } #demo-grid { display: none !important; } /* Hide "Download for Robot" button on mobile */ #download-btn { display: none !important; } .hero-grid { grid-template-columns: 1fr; gap: 2.5rem; } .hero-left { text-align: center; } .hero-tags { justify-content: center; } .hero-tech { align-items: center; } .hero-tech-stack { justify-content: center; } .hero-section { padding: 4rem 0 3rem; } .hero-description { font-size: 1.1rem; margin-left: auto; margin-right: auto; } section { padding: 3.5rem 0; } .container { padding: 0 1.25rem; } .header-content { padding: 0 1.25rem; } .nav { display: none; } .config-grid, .features-grid, .personalities-grid { grid-template-columns: 1fr; } .api-link-inline { display: none; } } @media (max-width: 480px) { .hero-title { font-size: 2.5rem; } .section-title { font-size: 1.75rem; } .logo-text { font-size: 0.9rem; } .github-btn { font-size: 0.8rem; padding: 0.5rem 0.9rem; } .hero-tags { gap: 0.5rem; } .tag { padding: 0.5rem 1rem; font-size: 0.8rem; } } /* ============================================ Demo Section Styles ============================================ */ .demo-section { padding: 5rem 2rem; /* Background inherits from body for seamless blend */ } .demo-grid { display: flex; justify-content: center; align-items: center; margin-top: 3rem; } @media (max-width: 968px) { .demo-grid { flex-direction: column; align-items: center; gap: 2rem; } .robot-column, .camera-column { width: 100% !important; max-width: 100% !important; min-width: 0 !important; /* Remove min-width constraint */ } .video-wrapper { width: 100%; height: auto; } .robot-bg { width: 260px; height: 380px; } .demo-controls { flex-direction: row; flex-wrap: nowrap; } .btn-demo { min-width: 0; width: auto; } } @media (max-width: 640px) { .demo-section .section-subtitle { font-size: 0.95rem; max-width: 100%; } .robot-bg { width: 220px; height: 320px; } .demo-section .section-title { font-size: 1.5rem; } } /* Video Container */ .demo-video-container { display: flex; flex-direction: column; gap: 1.5rem; flex: 1; /* Take available space */ max-width: 700px; /* Limit maximum width */ } .video-wrapper { position: relative; width: 100%; background: #1c0f2a; border-radius: 16px; overflow: hidden; aspect-ratio: 4/3; } #webcam, #canvas, #rv-video, #rv-canvas { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; } #rv-canvas { z-index: 2; background: transparent; } #canvas { z-index: 2; background: transparent; /* Don't block background color */ } .demo-status { position: absolute; top: 1rem; left: 1rem; background: rgba(0, 0, 0, 0.7); backdrop-filter: blur(8px); padding: 0.75rem 1.25rem; border-radius: 24px; display: flex; align-items: center; gap: 0.75rem; z-index: 3; color: #fff; font-weight: 600; font-size: 0.9rem; } .status-dot { width: 10px; height: 10px; border-radius: 50%; background: #64748b; animation: pulse 2s ease-in-out infinite; } .status-dot.ready { background: #22c55e; } .status-dot.monitoring { background: #3b82f6; } .status-dot.detected { background: #ef4444; } .status-dot.loading { background: #f59e0b; } .status-dot.error { background: #dc2626; } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .fps-counter { position: absolute; top: 1rem; right: 1rem; background: rgba(0, 0, 0, 0.7); backdrop-filter: blur(8px); padding: 0.5rem 1rem; border-radius: 16px; z-index: 3; color: #22c55e; font-weight: 700; font-size: 0.85rem; } /* Controls */ .demo-controls { display: flex; gap: 1rem; flex-wrap: wrap; } .btn-demo { flex: 1; min-width: 150px; padding: 1rem 1.5rem; border: none; border-radius: 12px; font-weight: 600; font-size: 1rem; cursor: pointer; transition: all 0.2s ease; display: flex; align-items: center; justify-content: center; gap: 0.5rem; } .btn-demo:disabled { opacity: 0.5; cursor: not-allowed; } .btn-primary { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; } .btn-primary:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(102, 126, 234, 0.4); } .btn-secondary { background: #1e293b; color: #f1f5f9; border: 2px solid #475569; } .btn-secondary:hover:not(:disabled) { background: #334155; border-color: #64748b; } .btn-ghost { background: transparent; color: #94a3b8; border: 2px solid #334155; } .btn-ghost:hover:not(:disabled) { background: #1e293b; color: #f1f5f9; } /* Response Box */ .response-box { background: linear-gradient(135deg, #1e293b 0%, #334155 100%); border: 2px solid #475569; border-radius: 16px; padding: 1rem; min-height: 100px; } .response-label { color: #94a3b8; font-size: 0.9rem; font-weight: 600; margin-bottom: 0.75rem; } .response-text { color: #f1f5f9; font-size: 1.1rem; line-height: 1; font-style: italic; } .demo-section .section-subtitle { max-width: 1500px; line-height: 1.8; } .demo-section .section-title { background: linear-gradient(135deg, var(--coral) 0%, var(--coral-light) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; margin-top: -4rem; } /* Hero CTA Buttons */ .hero-cta { display: flex; gap: 1rem; margin-top: 2rem; flex-wrap: nowrap; } .cta-button { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; background: linear-gradient(135deg, var(--coral) 0%, var(--coral-light) 100%); color: white; text-decoration: none; border-radius: 12px; font-weight: 700; font-size: 0.9rem; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(255, 107, 74, 0.3); } .cta-button:hover { transform: translateY(-3px); box-shadow: 0 8px 25px rgba(255, 107, 74, 0.5); } .cta-button-secondary { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; background: rgba(255, 255, 255, 0.1); border: 2px solid rgba(255, 255, 255, 0.3); color: white; text-decoration: none; border-radius: 12px; font-weight: 700; font-size: 0.9rem; transition: all 0.3s ease; } .cta-button-secondary:hover { background: rgba(255, 255, 255, 0.15); border-color: rgba(255, 255, 255, 0.5); transform: translateY(-3px); } /* Make hero section position relative for scroll indicator */ .hero-section { position: relative; } /* Wider container for hero section */ .hero-section .container { max-width: 1450px; /* Wider for more spread out content */ } /* Green background container (stationary, vertical rectangle) */ .robot-bg { background: #3DDE99; /* Reachy green */ border-radius: 20px; box-shadow: 0 4px 15px rgba(61, 222, 153, 0.2); display: flex; align-items: center; justify-content: center; width: 250px; height: 300px; } /* Robot SVG (animates inside bg) */ .robot-svg { width: 150%; height: 150%; display: block; object-fit: cover; /* Fill the container */ transform-origin: center center; margin: -25%; /* Re-center after zoom */ animation: robot-idle 3s ease-in-out infinite; } .robot-label { display: none; /* Hidden on desktop */ color: #cbd5e1; font-size: 0.85rem; font-weight: 500; text-align: center; line-height: 1.5; margin-bottom: 2rem; } @media (max-width: 640px) { .robot-label { display: block; /* Show on mobile only */ } } /* Robot Animations */ @keyframes robot-idle { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-8px) scale(1.02); } } @keyframes robot-shame { 0%, 100% { transform: rotate(0deg) scale(1); } 15% { transform: rotate(-15deg) scale(0.95); } 30% { transform: rotate(15deg) scale(0.95); } 45% { transform: rotate(-15deg) scale(0.95); } 60% { transform: rotate(15deg) scale(0.95); } 75% { transform: rotate(-8deg) scale(0.95); } } @keyframes robot-praise { 0%, 100% { transform: translateY(0) rotate(0deg) scale(1); } 25% { transform: translateY(-15px) rotate(0deg) scale(1.1); } 50% { transform: translateY(0) rotate(0deg) scale(1); } 75% { transform: translateY(-10px) rotate(0deg) scale(1.05); } } /* Animation states */ .robot-svg.shaking { animation: robot-shame 0.6s ease-in-out; } .robot-svg.nodding { animation: robot-praise 0.8s ease-in-out; } /* Two-column layout with equal heights */ .robot-column, .camera-column { display: flex; flex-direction: column; gap: 1.5rem; } .robot-column { flex: 0 0 auto; /* Fixed width based on content */ } .camera-column { flex: 1; /* Takes remaining space */ max-width: 700px; min-width: 500px; } /* Make columns match height */ .demo-grid { align-items: stretch; /* Stretch to match height */ } /* Loader Overlay */ .loader-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.9); backdrop-filter: blur(8px); display: flex; flex-direction: column; align-items: center; justify-content: center; z-index: 10; opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease; } .loader-overlay.visible { opacity: 1; visibility: visible; } #loader-text { color: #f1f5f9; font-size: 1rem; font-weight: 600; margin-top: 1.5rem; text-align: center; } /* Spinner Animation */ .spinner { width: 50px; height: 50px; border: 4px solid rgba(255, 255, 255, 0.1); border-top-color: #667eea; border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } /* Additional mobile fixes */ @media (max-width: 768px) { .demo-section { padding: 3rem 1rem; } .hero-section { padding: 3rem 1.5rem; } .hero-cta { flex-direction: column; width: 100%; margin-bottom: 0.5rem; margin-top: 2rem; /* Space above buttons */ } .hero-tech { margin-bottom: 1rem; /* Space after tech pills */ } .cta-button, .cta-button-secondary { width: 100%; justify-content: center; } .hero-grid { gap: 1rem; /* Reduce gap between hero sections */ } } /* Robot Picture-in-Picture Overlay */ .robot-pip { position: absolute; bottom: 1rem; right: 1rem; z-index: 5; pointer-events: none; /* Don't block clicks */ } .robot-bg-pip { background: transparent; /* No background */ width: 180px; height: 240px; display: flex; align-items: center; justify-content: center; filter: drop-shadow(0 4px 15px rgba(0, 0, 0, 0.5)); /* Shadow for visibility */ } .robot-svg-pip { width: 150%; height: 150%; display: block; object-fit: cover; margin: -25%; animation: robot-idle 3s ease-in-out infinite; } /* Robot PiP animations */ .robot-svg-pip.shaking { animation: robot-shame 0.6s ease-in-out; } .robot-svg-pip.nodding { animation: robot-praise 0.8s ease-in-out; } /* Mobile: Smaller robot PiP */ @media (max-width: 640px) { .robot-bg-pip { width: 100px; height: 140px; } .robot-pip { bottom: 0.5rem; right: 0.5rem; } } /* Mobile: Smaller tag and move content up */ @media (max-width: 640px) { .hero-label { font-size: 0.65rem; padding: 0.35rem 0.75rem 0.35rem 0.5rem; margin-bottom: 1rem; } .hero-label::before { font-size: 0.9rem; } .hero-section { padding: 2rem 0 2rem; /* Move up - less top padding */ } .hero-title { font-size: 2.25rem; margin-bottom: 1rem; } .hero-description { font-size: 1rem; margin-bottom: 1.5rem; } } /* Mobile: Smaller status and move hero up */ @media (max-width: 640px) { .demo-section .section-subtitle { display: none; /* Hide long text on mobile */ } .demo-status { padding: 0.4rem 0.7rem; font-size: 0.65rem; gap: 0.4rem; } .status-dot { width: 6px; height: 6px; } #status-text { font-size: 0.65rem; } .fps-counter { padding: 0.3rem 0.6rem; font-size: 0.6rem; } } /* Mobile: Tighter hero spacing and GIF closer to top */ @media (max-width: 640px) { .hero-right > div { margin-top: 1rem !important; /* Bring GIF up (was 2rem) */ } .hero-left { margin-bottom: 1.5rem; /* Small gap before GIF */ } } /* Mobile: More space between GIF and demo title */ @media (max-width: 640px) { .demo-section { padding-top: 0.2rem; /* More space above demo section */ } .demo-section .section-title { margin-top: 1rem; } } /* Mobile: Tighter demo section spacing */ @media (max-width: 640px) { .demo-section .section-title { margin-bottom: 0.5rem; /* Minimal space after title */ margin-top: 0; } .robot-label { margin-bottom: 0.75rem; /* Minimal space before demo grid */ margin-top: 0; } .demo-grid { margin-top: 0; /* Remove top margin */ } } /* Hide Quick Setup on mobile */ @media (max-width: 640px) { .getting-started-section { display: none; } } /* Setup guide links */ .setup-link { color: var(--coral-light); text-decoration: none; border-bottom: 1px solid var(--coral-light); transition: all 0.2s ease; white-space: nowrap; } .setup-link:hover { color: var(--coral); border-bottom-color: var(--coral); } /* Override: Ultra-simple links, no fancy styling */ .guide-list a { color: var(--coral-light) !important; text-decoration: none !important; border: none !important; padding: 0 !important; margin: 0 !important; display: inline !important; background: none !important; } .guide-list a:hover { text-decoration: underline !important; } /* Inter Font Weight Hierarchy */ body { font-weight: 400; /* Regular for body text */ } h1, h2, h3 { font-weight: 700; /* Bold for main headings */ } h4, h5, h6, strong { font-weight: 600; /* Semibold */ } .section-subtitle, .text-muted { font-weight: 300; /* Light for subtle text */ } .btn-demo { font-weight: 500; /* Medium for buttons */ } /* Mobile: Prevent all overflow */ @media (max-width: 640px) { * { max-width: 100% !important; overflow-wrap: break-word !important; word-wrap: break-word !important; } .container { padding: 0 0.75rem !important; } body { overflow-x: hidden !important; } /* Force sections to fit */ section { padding-left: 1rem !important; padding-right: 1rem !important; } } /* Mobile: Hide detailed sections (focus on demo) */ @media (max-width: 640px) { .config-section, .features-section, .personalities-section { display: none; } } /* Mobile: Smaller, organized hero tags */ @media (max-width: 640px) { .hero-tags { gap: 0.4rem; justify-content: center; } .tag { padding: 0.35rem 0.65rem; font-size: 0.7rem; border-width: 1px; } .hero-tech-stack { gap: 0.35rem; justify-content: center; } .tech-pill { padding: 0.3rem 0.55rem; font-size: 0.65rem; border-width: 1px; } } /* Mobile: Smaller response box text */ @media (max-width: 640px) { .response-label { font-size: 0.75rem; } .response-text { font-size: 0.85rem; } .response-box { padding: 1rem; } } /* ─── Mode Toggle ─────────────────────────────────────────────────────────── */ .mode-toggle-bar { display: flex; justify-content: center; padding: 0.75rem 1rem; border-bottom: 1px solid var(--border-soft); background: var(--bg-primary); } .mode-toggle { display: flex; background: var(--bg-card); border: 1px solid var(--border-soft); border-radius: 100px; padding: 3px; gap: 2px; } .toggle-option { padding: 0.45rem 1.1rem; border: none; border-radius: 100px; font-size: 0.875rem; font-weight: 600; cursor: pointer; background: transparent; color: var(--text-muted); transition: all 0.2s ease; font-family: 'Inter', sans-serif; } .toggle-option.active { background: var(--coral); color: #fff; box-shadow: 0 2px 8px rgba(255, 107, 74, 0.4); } .toggle-option:not(.active):hover { color: var(--text-primary); background: rgba(255,255,255,0.06); } /* ─── Robot View Container ────────────────────────────────────────────────── */ .rv-container { padding-top: 2.5rem; padding-bottom: 4rem; min-height: calc(100vh - 80px); } /* ─── Signin state ────────────────────────────────────────────────────────── */ .rv-connect-card { max-width: 480px; margin: 6rem auto; text-align: center; background: var(--bg-card); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); padding: 3rem 2.5rem; } .rv-connect-icon { font-size: 3rem; margin-bottom: 1rem; } .rv-connect-title { font-size: 1.75rem; font-weight: 700; margin-bottom: 0.75rem; } .rv-connect-desc { color: var(--text-body); margin-bottom: 2rem; line-height: 1.6; } /* ─── Robot picker state ──────────────────────────────────────────────────── */ .rv-picker-header { text-align: center; margin-bottom: 2rem; } .rv-picker-title { font-size: 1.75rem; font-weight: 700; margin-bottom: 0.5rem; } .rv-picker-sub { color: var(--text-body); } .rv-robot-list { display: flex; flex-direction: column; gap: 0.75rem; max-width: 560px; margin: 0 auto; } .rv-robot-btn { display: flex; align-items: center; gap: 1rem; padding: 1.25rem 1.5rem; background: var(--bg-card); border: 1px solid var(--border-soft); border-radius: var(--radius-md); color: var(--text-primary); font-size: 1rem; cursor: pointer; transition: all 0.2s ease; text-align: left; font-family: 'Inter', sans-serif; } .rv-robot-btn.selected { border-color: var(--coral); background: rgba(255, 107, 74, 0.08); } .rv-robot-btn:hover { border-color: var(--coral); box-shadow: 0 4px 16px rgba(255,107,74,0.15); transform: translateY(-1px); } .rv-robot-mode { margin-left: auto; font-size: 0.75rem; color: var(--text-muted); background: rgba(255,255,255,0.06); padding: 0.2rem 0.5rem; border-radius: 100px; } .rv-no-robots { text-align: center; color: var(--text-muted); padding: 2rem; } /* ─── Monitoring top bar ──────────────────────────────────────────────────── */ .rv-topbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; padding: 0.875rem 1.25rem; background: var(--bg-card); border: 1px solid var(--border-soft); border-radius: var(--radius-sm); } .rv-topbar-left { display: flex; align-items: center; gap: 0.75rem; } .rv-topbar-right { display: flex; align-items: center; gap: 0.5rem; } .rv-badge { padding: 0.3rem 0.85rem; border-radius: 100px; font-size: 0.8rem; font-weight: 600; background: rgba(107,203,119,0.15); color: var(--mint); border: 1px solid rgba(107,203,119,0.3); } .rv-robot-name { font-weight: 600; color: var(--text-primary); } .btn-icon-sm { padding: 0.4rem 0.9rem; background: var(--bg-darker); border: 1px solid var(--border-soft); border-radius: 8px; color: var(--text-body); font-size: 0.82rem; cursor: pointer; transition: all 0.2s; font-family: 'Inter', sans-serif; } .btn-icon-sm:hover { color: var(--text-primary); border-color: rgba(255,255,255,0.2); } .btn-danger-sm { color: #ff6b6b; border-color: rgba(255,107,107,0.3); } .btn-danger-sm:hover { background: rgba(255,107,107,0.1); border-color: #ff6b6b; } /* ─── Monitoring grid ─────────────────────────────────────────────────────── */ .rv-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 1.5rem; align-items: start; } .rv-camera-col { display: flex; flex-direction: column; gap: 1rem; } .rv-control-col { display: flex; flex-direction: column; gap: 1.25rem; } /* ─── Stats ───────────────────────────────────────────────────────────────── */ .rv-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; } .rv-stat-card { background: var(--bg-card); border: 1px solid var(--border-soft); border-radius: var(--radius-sm); padding: 1rem; text-align: center; border-top-width: 3px; } .rv-stat-value { font-size: 1.75rem; font-weight: 700; color: var(--text-primary); line-height: 1; margin-bottom: 0.4rem; } .rv-stat-label { font-size: 0.75rem; color: var(--text-muted); font-weight: 500; } /* ─── Personality grid ────────────────────────────────────────────────────── */ .rv-section-label { font-size: 0.8rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 0.5rem; } .rv-personality-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; } .rv-personality-card { padding: 0.6rem 0.85rem; background: var(--bg-darker); border: 1px solid var(--border-soft); border-radius: 10px; font-size: 0.82rem; font-weight: 500; color: var(--text-body); cursor: pointer; transition: all 0.2s; text-align: center; } .rv-personality-card:hover { color: var(--text-primary); border-color: rgba(255,255,255,0.2); } .rv-personality-card.active { background: rgba(255,107,74,0.12); border-color: var(--coral); color: var(--coral-light); } /* ─── Modals ──────────────────────────────────────────────────────────────── */ .modal-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,0.7); backdrop-filter: blur(4px); z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 1rem; } .modal-box { background: var(--bg-card); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); width: 100%; max-width: 500px; max-height: 80vh; overflow-y: auto; } .modal-header { display: flex; align-items: center; justify-content: space-between; padding: 1.25rem 1.5rem; border-bottom: 1px solid var(--border-soft); } .modal-header h3 { font-size: 1.1rem; font-weight: 700; } .modal-close { background: none; border: none; color: var(--text-muted); font-size: 1.1rem; cursor: pointer; padding: 0.25rem 0.5rem; border-radius: 6px; transition: color 0.2s; } .modal-close:hover { color: var(--text-primary); } .modal-body { padding: 1.5rem; display: flex; flex-direction: column; gap: 0.75rem; } .modal-label { font-size: 0.85rem; font-weight: 600; color: var(--text-body); display: block; } .modal-input { width: 100%; padding: 0.65rem 1rem; background: var(--bg-darker); border: 1px solid var(--border-soft); border-radius: 10px; color: var(--text-primary); font-size: 0.9rem; font-family: 'Inter', sans-serif; transition: border-color 0.2s; } .modal-input:focus { outline: none; border-color: var(--coral); } .modal-range { width: 100%; accent-color: var(--coral); } .modal-hint { font-size: 0.78rem; color: var(--text-muted); } .modal-hint a { color: var(--coral-light); text-decoration: none; } .modal-hint a:hover { text-decoration: underline; } .modal-checkbox-label { display: flex; align-items: center; gap: 0.6rem; font-size: 0.88rem; color: var(--text-body); cursor: pointer; } .modal-footer { padding: 1rem 1.5rem; border-top: 1px solid var(--border-soft); } /* ─── Voice rows ──────────────────────────────────────────────────────────── */ .rv-voice-row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0.5rem; align-items: center; padding: 0.5rem 0; border-bottom: 1px solid var(--border-soft); } .rv-voice-row:last-child { border-bottom: none; } .rv-voice-label { font-size: 0.82rem; font-weight: 600; color: var(--text-body); } .rv-voice-input { padding: 0.45rem 0.75rem; background: var(--bg-darker); border: 1px solid var(--border-soft); border-radius: 8px; color: var(--text-primary); font-size: 0.78rem; font-family: monospace; } .rv-voice-input:focus { outline: none; border-color: var(--coral); } /* ─── btn-danger for monitoring toggle ───────────────────────────────────── */ .btn-danger { background: linear-gradient(135deg, #e74c3c 0%, #c0392b 100%) !important; border-color: #e74c3c !important; } /* ─── Responsive ──────────────────────────────────────────────────────────── */ @media (max-width: 900px) { .rv-grid { grid-template-columns: 1fr; } .rv-stats { grid-template-columns: repeat(3, 1fr); } .demo-controls { flex-wrap: nowrap; } .btn-demo { min-width: 0; } .rv-control-col { order: -1; } /* Personality collapse toggle */ .rv-panel-title, .rv-panel-subtitle { display: none; } .rv-personality-toggle { display: flex; align-items: center; gap: 0.5rem; width: 100%; padding: 0.75rem 1rem; background: var(--bg-card); border: 1px solid var(--border-soft); border-radius: var(--radius-sm); color: var(--text-primary); font-size: 0.95rem; font-weight: 600; cursor: pointer; font-family: 'Inter', sans-serif; } .rv-personality-toggle-hint { font-size: 0.75rem; font-weight: 400; color: var(--text-muted); white-space: nowrap; } #rv-personality-toggle-label { flex: 1; text-align: left; } .rv-personality-chevron { margin-left: auto; } .rv-personality-collapsible { display: none; } .rv-personality-panel.expanded .rv-personality-collapsible { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 0.25rem; } } @media (max-width: 600px) { .rv-mode-badge { display: none; } /* Stats: stay 3-across but compact */ .rv-stats { grid-template-columns: repeat(3, 1fr); gap: 0.4rem; } .rv-stat-card { padding: 0.6rem 0.4rem; } .rv-stat-value { font-size: 1.2rem; } .rv-stat-label { font-size: 0.6rem; } /* Buttons: side by side, smaller */ .demo-controls { flex-wrap: nowrap; gap: 0.5rem; } .btn-demo { min-width: 0; padding: 0.7rem 0.75rem; font-size: 0.85rem; } .rv-personality-grid { grid-template-columns: repeat(3, 1fr); } .rv-voice-row { grid-template-columns: 1fr; } } /* ─── Dev token block ─────────────────────────────────────────────────────── */ .rv-dev-label { font-size: 0.78rem; color: var(--text-muted); margin: 1.5rem 0 0.5rem; } .rv-dev-row { display: flex; gap: 0.5rem; } /* ─── Dev preview bar ─────────────────────────────────────────────────────── */ #rv-dev-bar { align-items: center; gap: 0.5rem; padding: 0.6rem 1rem; margin-bottom: 1.25rem; background: rgba(155,126,232,0.1); border: 1px dashed rgba(155,126,232,0.4); border-radius: 10px; } .rv-dev-bar-label { font-size: 0.8rem; color: var(--lavender); font-weight: 600; } .rv-dev-state-btn { padding: 0.3rem 0.8rem; background: rgba(155,126,232,0.15); border: 1px solid rgba(155,126,232,0.35); border-radius: 6px; color: var(--lavender); font-size: 0.8rem; cursor: pointer; font-family: 'Inter', sans-serif; transition: all 0.2s; } .rv-dev-state-btn:hover { background: rgba(155,126,232,0.3); } /* ─── Monitoring layout fixes (matching original) ─────────────────────────── */ .rv-status-bar { display: flex; align-items: center; gap: 0.75rem; padding: 0.65rem 1rem; background: var(--bg-card); border: 1px solid var(--border-soft); border-radius: var(--radius-sm); } .rv-status-badge { display: flex; align-items: center; gap: 0.5rem; font-size: 0.85rem; font-weight: 600; } .rv-tech-badge { font-size: 0.75rem; padding: 0.25rem 0.65rem; background: rgba(255,107,74,0.1); border: 1px solid rgba(255,107,74,0.25); border-radius: 100px; color: var(--coral-light); } .rv-mode-badge { font-size: 0.78rem; color: var(--text-muted); margin-left: auto; white-space: nowrap; } /* Personality panel (right column) */ .rv-personality-panel { display: flex; flex-direction: column; gap: 0.75rem; } .rv-personality-chevron { transition: transform 0.2s ease; font-size: 0.75rem; } .rv-personality-panel.expanded .rv-personality-chevron { transform: rotate(180deg); } @media (min-width: 901px) { .rv-personality-toggle { display: none; } .rv-personality-collapsible { display: flex; flex-direction: column; gap: 0.5rem; } } .rv-panel-title { font-size: 1.1rem; font-weight: 700; } .rv-panel-subtitle { font-size: 0.85rem; color: var(--text-muted); margin-top: -0.25rem; } .rv-api-notice { display: flex; align-items: flex-start; gap: 0.65rem; padding: 0.75rem 1rem; background: rgba(255,211,61,0.07); border: 1px solid rgba(255,211,61,0.2); border-radius: var(--radius-sm); font-size: 0.82rem; color: var(--text-body); } .notice-icon { font-size: 1rem; flex-shrink: 0; } .notice-small { font-size: 0.76rem; color: var(--text-muted); } /* Personality list (replaces grid) */ .rv-personality-list { display: flex; flex-direction: column; gap: 0.35rem; } .rv-personality-item { display: flex; align-items: center; padding: 0.65rem 0.85rem; background: var(--bg-darker); border: 1px solid var(--border-soft); border-radius: 10px; cursor: pointer; transition: all 0.15s; } .rv-personality-item:hover { border-color: rgba(255,255,255,0.2); } .rv-personality-item.active { background: rgba(255,107,74,0.1); border-color: var(--coral); } .rv-personality-name { flex: 1; font-size: 0.88rem; font-weight: 500; color: var(--text-body); } .rv-personality-item.active .rv-personality-name { color: var(--coral-light); } .rv-voice-icon-btn { background: none; border: none; cursor: pointer; font-size: 0.85rem; opacity: 0.4; padding: 0.15rem 0.3rem; border-radius: 4px; transition: opacity 0.15s; } .rv-voice-icon-btn:hover { opacity: 1; } /* Camera placeholder */ .video-placeholder { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.5rem; background: var(--bg-darker); } .camera-off-icon { width: 48px; height: 48px; color: var(--text-muted); opacity: 0.4; } .camera-status { font-size: 0.9rem; font-weight: 600; color: var(--text-muted); } .camera-message { font-size: 0.78rem; color: var(--text-muted); opacity: 0.7; }