.main { display: flex; flex-direction: column; justify-content: space-between; } .description { display: inherit; justify-content: inherit; align-items: inherit; font-size: 0.85rem; max-width: var(--max-width); width: 100%; 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: 0; 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); } } .response pre { white-space: pre-wrap; word-break: break-word; overflow-wrap: break-word; overflow-y: auto; max-height: 500px; /* Maximum height before scrolling */ } .input { padding: 0.5rem 1rem; /* Adjust the padding inside the input */ margin: 0.5rem 0; /* Adds margin around the input for spacing */ border: 1px solid #ccc; /* A light border for the input */ border-radius: 4px; /* Rounded corners */ font-size: 1rem; /* Base font size */ line-height: 1.5; /* Height of the input line */ color: #333; /* Text color */ background-color: #fff; /* Background color of the input */ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Optional: Adds a subtle shadow */ width: 100%; /* Make input full width of the parent container */ box-sizing: border-box; /* Include padding and border in the element's total width and height */ transition: border-color 0.3s, box-shadow 0.3s; /* Smooth transition for focus effect */ } .input:focus { border-color: #007bff; /* Highlight color when input is focused */ outline: none; /* Removes the default focus outline */ box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25); /* Adds a glow effect on focus */ } .button { padding: 0.75rem 1.5rem; /* Adjust padding to increase the button's size */ margin-top: 1rem; /* Space above the button */ border: none; /* No border for a button */ border-radius: 25px; /* Rounded corners for a pill shape */ font-size: 1rem; /* Font size */ font-weight: bold; /* Make the text a bit bolder */ color: white; /* Text color */ background-image: linear-gradient(to right, #6ee7b7, #3b82f6); /* Gradient background */ cursor: pointer; /* Change cursor to indicate it's clickable */ transition: transform 0.2s, background-color 0.3s; /* Smooth transitions for interactions */ text-transform: uppercase; /* Optional: uppercase text */ letter-spacing: 0.05em; /* Spacing between letters */ box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08); /* Subtle shadow for depth */ } .button:hover, .button:focus { background-image: linear-gradient(to left, #6ee7b7, #3b82f6); /* Change the direction of gradient on hover/focus */ transform: translateY(-2px); /* Slightly raise the button */ box-shadow: 0 7px 14px rgba(50, 50, 93, 0.1), 0 3px 6px rgba(0, 0, 0, 0.08); /* Increase shadow size */ } .button:active { transform: translateY(0); /* Button goes back down when clicked */ box-shadow: 0 3px 6px rgba(50, 50, 93, 0.16), 0 2px 4px rgba(0, 0, 0, 0.1); /* Smaller shadow when button is pressed */ } .button:disabled { background-image: linear-gradient(to right, #cbd5e1, #94a3b8); /* Less vibrant gradient for disabled state */ cursor: default; /* No pointer cursor since it's not clickable */ box-shadow: none; /* No shadow for a flat appearance */ } .main { display: flex; flex-direction: column; height: 100vh; justify-content: space-between; padding: 2rem; } .title { color: #333; text-align: center; margin-bottom: 2rem; } .messages { flex: 1; overflow-y: auto; border-style: solid; border-width: 4px; border-image: linear-gradient(#6ee7b7, #3b82f6) 30; padding: 25px; border-radius: 5px; } .message { background-color: #f9f9f9; border-radius: 15px; padding: 10px 15px; margin: 8px 0; max-width: 80%; word-break: break-word; /* Ensures text breaks nicely */ } /* Different background for messages from the 'user' role */ .message-user { background-color: #dcf8c6 !important; } /* Avatar styles */ .avatar { width: 40px; height: 40px; border-radius: 50%; background-color: #ccc; margin-right: 10px; } /* Style for function call messages */ .function-call { color: #555; font-style: italic; } /* Input field styles */ .input { padding: 10px; margin: 10px 0; width: 100%; box-sizing: border-box; border: 1px solid #ddd; border-radius: 4px; } /* Button styles */ .button { padding: 10px 20px; background-color: #5cb85c; color: white; border: none; border-radius: 4px; cursor: pointer; width: 100%; } .button:disabled { background-color: #ccc; } /* Form styles */ .form { width: 100%; } .flex { display: flex; align-items: flex-start; } .text-gray-500 { color: #737373; } .font-bold { font-weight: bold; } /* Additional media query for responsive design */ @media (max-width: 640px) { .message { max-width: 100%; } } /* In your CSS file */ .avatar-user { width: 20px; /* Based on Tailwind's width setting */ } .bg-white { background-color: white; } .bg-black { background-color: black; } .bg-gray-100 { background-color: #f7fafc; /* Approximation of Tailwind's gray-100 */ } .bg-green-500 { background-color: #48bb78; /* Approximation of Tailwind's green-500 */ } .bg-gray-200 { background-color: #edf2f7; /* Approximation of Tailwind's gray-200 */ } .bg-blue-500 { background-color: #4299e1; /* Approximation of Tailwind's blue-500 */ } .border-gradient { /* Size of your element */ width: 200px; height: 200px; /* Setting up the gradient as a background image */ background-image: linear-gradient(90deg, #6ee7b7, #3b82f6); /* Positioning and sizing the pseudo-element to match the parent */ position: relative; display: flex; justify-content: center; align-items: center; /* Adding the border */ padding: 10px; } .border-gradient::after { /* Creating the pseudo-element */ content: ""; position: absolute; top: -10px; left: -10px; bottom: -10px; right: -10px; /* Applying the gradient to the border */ background-image: inherit; background-clip: padding-box, border-box; background-origin: padding-box, border-box; box-decoration-break: clone; /* Adding a transparent border */ border: solid 10px transparent; }