.main { display: flex; flex-direction: column; justify-content: flex-start; /* changed from space-between to start to ensure content is at the top */ align-items: center; padding: 4%; /* reduced from 6rem and changed to a percentage */ min-height: 100vh; width: 100%; /* ensure it takes full width */ } @media (max-width: 768px) { .main { padding: 2%; /* even less padding on small screens */ } } .description { display: inherit; justify-content: inherit; align-items: inherit; font-size: 0.85rem; max-width: var(--max-width); z-index: 2; font-family: var(--font-mono); } .description a { display: flex; justify-content: center; align-items: center; gap: 0.5rem; } .description p { position: relative; margin: 1.5rem; padding: 1rem; background-color: rgba(var(--callout-rgb), 0.5); border: 1px solid rgba(var(--callout-border-rgb), 0.3); border-radius: var(--border-radius); } .code { font-weight: 700; font-family: var(--font-mono); } .grid { display: grid; grid-template-columns: repeat(4, minmax(25%, auto)); max-width: 100%; width: var(--max-width); } .card { padding: 1rem 1.2rem; border-radius: var(--border-radius); background: rgba(var(--card-rgb), 0); border: 1px solid rgba(var(--card-border-rgb), 0); transition: background 200ms, border 200ms; } .card span { display: inline-block; transition: transform 200ms; } .card h2 { font-weight: 600; margin-bottom: 0.7rem; } .card p { margin: 0; opacity: 0.6; font-size: 0.9rem; line-height: 1.5; max-width: 30ch; } .center { display: flex; justify-content: center; align-items: center; position: relative; padding: 4rem 0; } .center::before { background: var(--secondary-glow); border-radius: 50%; width: 480px; height: 360px; margin-left: -400px; } .center::after { background: var(--primary-glow); width: 240px; height: 180px; z-index: -1; } .center::before, .center::after { content: ''; left: 50%; position: absolute; filter: blur(45px); transform: translateZ(0); } .logo { position: relative; } /* Enable hover only on non-touch devices */ @media (hover: hover) and (pointer: fine) { .card:hover { background: rgba(var(--card-rgb), 0.1); border: 1px solid rgba(var(--card-border-rgb), 0.15); } .card:hover span { transform: translateX(4px); } } @media (prefers-reduced-motion) { .card:hover span { transform: none; } } /* Mobile */ @media (max-width: 700px) { .content { padding: 4rem; } .grid { grid-template-columns: 1fr; margin-bottom: 120px; max-width: 320px; text-align: center; } .card { padding: 1rem 2.5rem; } .card h2 { margin-bottom: 0.5rem; } .center { padding: 8rem 0 6rem; } .center::before { transform: none; height: 300px; } .description { font-size: 0.8rem; } .description a { padding: 1rem; } .description p, .description div { display: flex; justify-content: center; position: fixed; width: 100%; } .description p { align-items: center; inset: 0 0 auto; padding: 2rem 1rem 1.4rem; border-radius: 0; border: none; border-bottom: 1px solid rgba(var(--callout-border-rgb), 0.25); background: linear-gradient( to bottom, rgba(var(--background-start-rgb), 1), rgba(var(--callout-rgb), 0.5) ); background-clip: padding-box; backdrop-filter: blur(24px); } .description div { align-items: flex-end; pointer-events: none; inset: auto 0 0; padding: 2rem; height: 200px; background: linear-gradient( to bottom, transparent 0%, rgb(var(--background-end-rgb)) 40% ); z-index: 1; } } /* Tablet and Smaller Desktop */ @media (min-width: 701px) and (max-width: 1120px) { .grid { grid-template-columns: repeat(2, 50%); } } @media (prefers-color-scheme: dark) { .vercelLogo { filter: invert(1); } .logo { filter: invert(1) drop-shadow(0 0 0.3rem #ffffff70); } } @keyframes rotate { from { transform: rotate(360deg); } to { transform: rotate(0deg); } } .spinner { display: flex; justify-content: center; align-items: center; /* Add more styles as needed */ } .spinner div { border: 4px solid #f3f3f3; border-top: 4px solid #3498db; border-radius: 50%; width: 40px; height: 40px; animation: spin 2s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .chatContainer { display: flex; flex-direction: column; width: 90%; /* Responsive width */ margin-bottom: 2px; margin-top: 100px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); background-color: white; min-height: 60vh; /* Minimum height */ max-height: 80vh; /* Maximum height relative to the viewport */ overflow: hidden; /* Hide overflow */ } .messagesContainer { flex-grow: 1; /* Take up available space */ overflow-y: auto; /* Make only this part scrollable */ padding: 10px; background-color: #f9f9f9; } .userMessage, .aiMessage { margin: 5px 0; } .userMessage { text-align: right; } .aiMessage { text-align: left; } .messageRole { font-weight: bold; } .messageContent { display: block; margin-top: 2px; } .chatForm { display: flex; padding: 10px; background-color: white; /* Light background for form */ border-top: 1px solid #ddd; } .chatInput { flex-grow: 1; padding: 10px; margin-right: 10px; border: 1px solid #ddd; border-radius: 4px; background-color: white; /* Light background for input */ color: black; /* Dark text for input */ } .sendButton { padding: 10px 20px; background-color: #4CAF50; color: white; border: none; border-radius: 4px; cursor: pointer; } .sendButton:hover { background-color: #45a049; } /* Dark mode styles */ @media (prefers-color-scheme: dark) { .chatContainer { background-color: black; /* Dark background for dark mode */ color: white; /* Light text for dark mode */ } .messagesContainer { background-color: #333; /* Darker shade for the message container */ } .chatForm { background-color: #222; /* Darker background for form in dark mode */ border-top: 1px solid #555; /* Darker border for form */ } .chatInput { background-color: #222; /* Darker input field */ color: white; /* Light text for input field */ border: 1px solid #555; /* Darker border for input */ } .sendButton { background-color: #555; /* Darker button color */ color: white; /* Light text for button */ } .sendButton:hover { background-color: #666; /* Slightly lighter on hover */ } /* Add more dark mode specific styles as needed */ }