@tailwind base; @tailwind components; @tailwind utilities; /* Custom Variables */ :root { --white: #fff; --black: #000; --gray-20: #ececf1; --gray-50: #f7f7f8; --gray-100: #ececec; --gray-200: #e3e3e3; --gray-300: #cdcdcd; --gray-400: #999696; --gray-500: #595959; --gray-600: #424242; --gray-700: #2f2f2f; --gray-800: #212121; --gray-850: #171717; --gray-900: #0d0d0d; --gizmo-gray-500: #999; --gizmo-gray-600: #666; --gizmo-gray-950: #0f0f0f; --font-size-xs: 0.75rem; --font-size-sm: 0.875rem; --font-size-base: 1rem; --font-size-lg: 1.125rem; --font-size-xl: 1.25rem; } html { --text-primary: var(--gray-800); --text-secondary: var(--gray-600); --text-secondary-alt: var(--gray-500); --text-tertiary: var(--gray-500); --ring-primary: var(--gray-500); --header-primary: var(--white); --header-hover: var(--gray-50); --header-button-hover: var(--gray-50); --surface-active: var(--gray-100); --surface-hover: var(--gray-200); --surface-primary: var(--white); --surface-primary-alt: var(--gray-50); --surface-primary-contrast: var(--gray-100); --surface-secondary: var(--gray-50); --surface-tertiary: var(--gray-100); --surface-tertiary-alt: var(--white); --border-light: var(--gray-200); --border-medium-alt: var(--gray-300); --border-medium: var(--gray-300); --border-heavy: var(--gray-400); --border-xheavy: var(--gray-500); } .dark { --text-primary: var(--gray-100); --text-secondary: var(--gray-300); --text-secondary-alt: var(--gray-400); --text-tertiary: var(--gray-500); --header-primary: var(--gray-700); --header-hover: var(--gray-600); --header-button-hover: var(--gray-700); --surface-active: var(--gray-500); --surface-hover: var(--gray-600); --surface-primary: var(--gray-900); --surface-primary-alt: var(--gray-850); --surface-primary-contrast: var(--gray-850); --surface-secondary: var(--gray-800); --surface-tertiary: var(--gray-700); --surface-tertiary-alt: var(--gray-700); --border-light: var(--gray-700); --border-medium-alt: var(--gray-600); --border-medium: var(--gray-600); --border-heavy: var(--gray-500); --border-xheavy: var(--gray-400); } .gizmo { --text-primary: var(--gizmo-gray-950); --text-secondary: var(--gizmo-gray-600); --text-tertiary: var(--gizmo-gray-500); --surface-primary: var(--white); --surface-secondary: var(--gray-50); --surface-tertiary: var(--gray-100); --border-light: rgba(0, 0, 0, 0.1); --border-medium: rgba(0, 0, 0, 0.15); --border-heavy: rgba(0, 0, 0, 0.2); --border-xheavy: rgba(0, 0, 0, 0.25); } .gizmo.dark { --text-primary: var(--gray-100); --text-secondary: var(--gray-300); --text-tertiary: var(--gizmo-gray-500); --surface-primary: var(--gray-900); --surface-secondary: var(--gray-800); --surface-tertiary: var(--gray-700); --border-light: rgba(217, 217, 227, 0.1); --border-medium: rgba(217, 217, 227, 0.15); --border-heavy: rgba(217, 217, 227, 0.2); --border-xheavy: rgba(217, 217, 227, 0.25); } .text-token-text-primary { color: #171717; color: var(--text-primary); } .text-token-text-secondary { color: #565869; color: var(--text-secondary); } .text-token-text-tertiary { color: #8e8ea0; color: var(--text-tertiary); } .icon-xs { stroke-width: 1.5; height: 0.75rem; width: 0.75rem; } .icon-sm { stroke-width: 2; height: 1rem; width: 1rem; } .icon-md, .icon-md-heavy { stroke-width: 1.5; height: 1.125rem; width: 1.125rem; } .icon-md-heavy { stroke-width: 2.5; } .icon-lg { stroke-width: 1.5; height: 1.5rem; width: 1.5rem; } .icon-xl { stroke-width: 1.5; height: 1.75rem; width: 1.75rem; } .icon-2xl { stroke-width: 1.5; height: 2rem; width: 2rem; } .icon-cover { stroke-width: 1.5; height: 234px; width: 234px; } .border-token-border-heavy { border-color: #c5c5d2; border-color: var(--border-heavy); } .border-token-border-light { border-color: #ececf1; border-color: var(--border-light); } .border-token-border-medium { border-color: #d9d9e3; border-color: var(--border-medium); } .border-token-surface-primary { border-color: #fff; border-color: var(--surface-primary); } .border-token-surface-secondary { border-color: var(--surface-secondary); } .border-token-surface-tertiary { border-color: #ececf1; border-color: var(--surface-tertiary); } .bg-token-surface-secondary { background-color: var(--surface-secondary); } @media (max-width: 640px) { .no-gradient-sm { background: none !important; } } .ellipsis { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } @font-face { font-display: swap; font-family: Inter; font-style: normal; font-weight: 400; src: url('$fonts/Inter-Regular.woff2') format('woff2'); size-adjust: 94%; } @font-face { font-display: swap; font-family: Inter; font-style: italic; font-weight: 400; src: url('$fonts/Inter-Italic.woff2') format('woff2'); size-adjust: 94%; } @font-face { font-display: swap; font-family: Inter; font-style: normal; font-weight: 500; src: url('$fonts/Inter-SemiBold.woff2') format('woff2'); size-adjust: 94%; } @font-face { font-display: swap; font-family: Inter; font-style: italic; font-weight: 500; src: url('$fonts/Inter-SemiBoldItalic.woff2') format('woff2'); size-adjust: 94%; } @font-face { font-display: swap; font-family: Inter; font-style: normal; font-weight: 600; src: url('$fonts/Inter-Bold.woff2') format('woff2'); size-adjust: 94%; } @font-face { font-display: swap; font-family: Inter; font-style: italic; font-weight: 600; src: url('$fonts/Inter-BoldItalic.woff2') format('woff2'); size-adjust: 94%; } @font-face { font-display: swap; font-family: Roboto Mono; font-style: normal; font-weight: 400; src: url('$fonts/roboto-mono-latin-400-normal.woff2') format('woff2'); } @font-face { font-display: swap; font-family: Roboto Mono; font-style: normal; font-weight: 700; src: url('$fonts/roboto-mono-latin-700-normal.woff2') format('woff2'); } @font-face { font-display: swap; font-family: Roboto Mono; font-style: italic; font-weight: 400; src: url('$fonts/roboto-mono-latin-400-italic.woff2') format('woff2'); } /* The default ChatGPT fonts, according to OpenAI's brand guidelines, are proprietary and require appropriate font license according to your use case. They can be purchased here: https://klim.co.nz/buy/soehne/ The fonts in question are (9 total): > - Söhne (Buch Kursiv, Buch, Halbfett Kursiv, Halbfett, Kraftig Kursiv, Kraftig, Mono Buch Kursiv, Mono Buch, Mono Halbfett) If you have purchased a license, you can use the commented-out `@font-face` declarations below to include them in your project. Step 1: Buy whatever license applies to you and allows use of `.woff2` font files (likely web font license). Step 2: Place them in ./client/public/fonts/ directory. Step 3: Replace the current `fontFamily` config in ./client/tailwind.config.cjs with the following: ``` fontFamily: { sans: ['Söhne', 'sans-serif'], mono: ['Söhne Mono', 'monospace'], }, ``` Step 4: Uncomment all Söhne font-face declarations below. Step 5: rebuild frontend code: `npm run frontend` (or rebuild docker). */ /* @font-face { font-display: swap; font-family: Söhne; font-style: normal; font-weight: 400; src: url("$fonts/soehne-buch.woff2") format("woff2") } @font-face { font-display: swap; font-family: Söhne; font-style: italic; font-weight: 400; src: url("$fonts/soehne-buch-kursiv.woff2") format("woff2") } @font-face { font-display: swap; font-family: Söhne; font-style: normal; font-weight: 500; src: url("$fonts/soehne-kraftig.woff2") format("woff2") } @font-face { font-display: swap; font-family: Söhne; font-style: italic; font-weight: 500; src: url("$fonts/soehne-kraftig-kursiv.woff2") format("woff2") } @font-face { font-display: swap; font-family: Söhne; font-style: normal; font-weight: 600; src: url("$fonts/soehne-halbfett.woff2") format("woff2") } @font-face { font-display: swap; font-family: Söhne; font-style: italic; font-weight: 600; src: url("$fonts/soehne-halbfett-kursiv.woff2") format("woff2") } @font-face { font-display: swap; font-family: Söhne Mono; font-style: normal; font-weight: 400; src: url("$fonts/soehne-mono-buch.woff2") format("woff2") } @font-face { font-display: swap; font-family: Söhne Mono; font-style: normal; font-weight: 700; src: url("$fonts/soehne-mono-halbfett.woff2") format("woff2") } @font-face { font-display: swap; font-family: Söhne Mono; font-style: italic; font-weight: 400; src: url("$fonts/soehne-mono-buch-kursiv.woff2") format("woff2") } */ /* * { box-sizing: border-box; outline: 1px solid limegreen !important; } */ /* p small { opacity: 0; animation: fadeIn 3s ease forwards; } @keyframes fadeIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } */ /* .LazyLoad { opacity: 0; transition: all 1s ease-in-out; } */ select { --tw-shadow: 0 0 transparent; -webkit-appearance: none; appearance: none; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%238e8ea0' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E"); background-position: right 0.5rem center; background-repeat: no-repeat; background-size: 1.5em 1.5em; padding-right: 2.5rem; background-color: #fff; border-color: #8e8ea0; border-radius: 0; border-width: 1px; font-size: 1rem; line-height: 1.5rem; } .overflow-y-auto { overflow-y: overlay; } .overflow-x-auto { overflow-x: overlay; } .reset-rc-number-input input { width: 100%; border: none !important; background: transparent; } .reset-rc-number-input-text-right input { text-align: right; } .option-buttons { pointer-events: none; opacity: 0; transition: all 0.25s ease-in-out; } .option-buttons.full-opacity { pointer-events: fill; opacity: 1; } .option-buttons.show { pointer-events: fill; opacity: 1; } .options-bar { pointer-events: none; opacity: 0; transition: all 0.25s ease-in-out; } .options-bar.full-opacity { pointer-events: fill; opacity: 1; } .options-bar.show { pointer-events: fill; opacity: 0.3; } .hidden { display: none; } .creative-tab { /* background: linear-gradient(90deg, #904887 10.79%, #8B257E 87.08%); */ background: linear-gradient(90deg, #904887 10.79%, #8b257e 87.08%); } .fast-tab { background: linear-gradient(90deg, #2870ea 10.79%, #1b4aef 87.08%); } .balanced-tab { background: linear-gradient(90deg, #d7871a 10.79%, #9f6005 87.08%); } .precise-tab { background: linear-gradient(90deg, #006880 10.79%, #005366 87.08%); } p > small { opacity: 0; animation: fadein 3s forwards; } .fade-in { animation: fadeInWithOutTranslate 0.3s ease-in-out; } @keyframes fadeInWithOutTranslate { from { opacity: 0; } to { opacity: 1; } } @keyframes fadein { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } } blockquote, dd, dl, fieldset, figure, h1, h2, h3, h4, h5, h6, hr, p, pre { margin: 0; } .scroll-down-enter { opacity: 0; } /* .scroll-down-appear { opacity: 0; } */ .scroll-down-enter-active { opacity: 1; transition: opacity 400ms; } .scroll-down-exit { opacity: 1; } .scroll-down-exit-active { opacity: 0; transition: opacity 400ms; } .blink { animation: blink 1s linear infinite; } @keyframes blink { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } } .cursorBlink { animation: blink 1s linear infinite; } @keyframes blink { 0% { opacity: 1; } 79% { opacity: 1; } 80% { opacity: 0; } 99% { opacity: 0; } 100% { opacity: 1; } } .blink2 { animation: blink 1500ms linear infinite; } @keyframes blink2 { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } } .prose { color: var(--tw-prose-body); max-width: 65ch; font-size: var(--markdown-font-size, var(--font-size-base)); line-height: calc( 28px * var(--markdown-font-size, var(--font-size-base)) / var(--font-size-base) ); } .prose :where([class~='lead']):not(:where([class~='not-prose'] *)) { color: var(--tw-prose-lead); font-size: 1.25em; line-height: 1.6; margin-bottom: 1.2em; margin-top: 1.2em; } .prose :where(a):not(:where([class~='not-prose'] *)) { color: var(--tw-prose-links); font-weight: 500; text-decoration: underline; } .prose :where(strong):not(:where([class~='not-prose'] *)) { color: var(--tw-prose-bold); font-weight: 600; } .prose :where(a strong):not(:where([class~='not-prose'] *)) { color: inherit; } .prose :where(blockquote strong):not(:where([class~='not-prose'] *)) { color: inherit; } .prose :where(thead th strong):not(:where([class~='not-prose'] *)) { color: inherit; } .prose :where(ul > li):not(:where([class~='not-prose'] *))::marker { color: var(--tw-prose-bullets); } .prose :where(hr):not(:where([class~='not-prose'] *)) { border-color: var(--tw-prose-hr); border-top-width: 1px; margin-bottom: 3em; margin-top: 3em; } .prose :where(blockquote):not(:where([class~='not-prose'] *)) { border-left-color: var(--tw-prose-quote-borders); border-left-width: 0.25rem; color: var(--tw-prose-quotes); font-style: italic; font-style: normal; font-weight: 500; margin-bottom: 1.6em; margin-top: 1.6em; padding-left: 1em; quotes: '\201C''\201D''\2018''\2019'; } .prose :where(blockquote p:first-of-type):not(:where([class~='not-prose'] *)):before { content: open-quote; } .prose :where(blockquote p:last-of-type):not(:where([class~='not-prose'] *)):after { content: close-quote; } .prose :where(h1):not(:where([class~='not-prose'] *)) { color: var(--tw-prose-headings); font-size: 2.25em; font-weight: 800; line-height: 1.1111111; margin-bottom: 0.8888889em; margin-top: 0; } .prose :where(h1 strong):not(:where([class~='not-prose'] *)) { color: inherit; font-weight: 900; } .prose :where(h2):not(:where([class~='not-prose'] *)) { color: var(--tw-prose-headings); font-size: 1.5em; font-weight: 700; line-height: 1.3333333; margin-bottom: 1em; margin-top: 2em; } .prose :where(h2 strong):not(:where([class~='not-prose'] *)) { color: inherit; font-weight: 800; } .prose :where(h3):not(:where([class~='not-prose'] *)) { color: var(--tw-prose-headings); font-size: 1.25em; font-weight: 600; line-height: 1.6; margin-bottom: 0.6em; margin-top: 1.6em; } .prose :where(h3 strong):not(:where([class~='not-prose'] *)) { color: inherit; font-weight: 700; } .prose :where(h4):not(:where([class~='not-prose'] *)) { color: var(--tw-prose-headings); font-weight: 600; line-height: 1.5; margin-bottom: 0.5em; margin-top: 1.5em; } .prose :where(h4 strong):not(:where([class~='not-prose'] *)) { color: inherit; font-weight: 700; } .prose :where(img):not(:where([class~='not-prose'] *)) { margin-bottom: 2em; margin-top: 2em; } .prose :where(figure > *):not(:where([class~='not-prose'] *)) { margin-bottom: 0; margin-top: 0; } .prose :where(figcaption):not(:where([class~='not-prose'] *)) { color: var(--tw-prose-captions); font-size: 0.875em; line-height: 1.4285714; margin-top: 0.8571429em; } .prose :where(code):not(:where([class~='not-prose'] *)) { color: var(--tw-prose-code); font-size: 0.875em; font-weight: 600; } .prose :where(code):not(:where([class~='not-prose'] *)):before { content: '`'; } .prose :where(code):not(:where([class~='not-prose'] *)):after { content: '`'; } .prose :where(a code):not(:where([class~='not-prose'] *)) { color: inherit; } .prose :where(h1 code):not(:where([class~='not-prose'] *)) { color: inherit; } .prose :where(h2 code):not(:where([class~='not-prose'] *)) { color: inherit; font-size: 0.875em; } .prose :where(h3 code):not(:where([class~='not-prose'] *)) { color: inherit; font-size: 0.9em; } .prose :where(h4 code):not(:where([class~='not-prose'] *)) { color: inherit; } .prose :where(blockquote code):not(:where([class~='not-prose'] *)) { color: inherit; } .prose :where(thead th code):not(:where([class~='not-prose'] *)) { color: inherit; } .prose :where(pre):not(:where([class~='not-prose'] *)) { background-color: transparent; border-radius: 0.375rem; color: currentColor; font-size: 0.875em; font-weight: 400; line-height: 1.7142857; margin: 0; overflow-x: auto; padding: 0; } .prose :where(pre code):not(:where([class~='not-prose'] *)) { background-color: transparent; border-radius: 0; border-width: 0; color: inherit; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; padding: 0; } .prose :where(pre code):not(:where([class~='not-prose'] *)):before { content: none; } .prose :where(pre code):not(:where([class~='not-prose'] *)):after { content: none; } .prose :where(table):not(:where([class~='not-prose'] *)) { font-size: 0.875em; line-height: 1.7142857; margin-bottom: 2em; margin-top: 2em; table-layout: auto; text-align: left; width: 100%; } .prose :where(thead):not(:where([class~='not-prose'] *)) { border-bottom-color: var(--tw-prose-th-borders); border-bottom-width: 1px; } .prose :where(thead th):not(:where([class~='not-prose'] *)) { color: var(--tw-prose-headings); font-weight: 600; padding-bottom: 0.5714286em; padding-left: 0.5714286em; padding-right: 0.5714286em; vertical-align: bottom; } .prose :where(tbody tr):not(:where([class~='not-prose'] *)) { border-bottom-color: var(--tw-prose-td-borders); border-bottom-width: 1px; } .prose :where(tbody tr:last-child):not(:where([class~='not-prose'] *)) { border-bottom-width: 0; } .prose :where(tbody td):not(:where([class~='not-prose'] *)) { vertical-align: baseline; } .prose :where(tfoot):not(:where([class~='not-prose'] *)) { border-top-color: var(--tw-prose-th-borders); border-top-width: 1px; } .prose :where(tfoot td):not(:where([class~='not-prose'] *)) { vertical-align: top; } .prose { --tw-prose-body: #374151; --tw-prose-headings: #111827; --tw-prose-lead: #4b5563; --tw-prose-links: #111827; --tw-prose-bold: #111827; --tw-prose-counters: #6b7280; --tw-prose-bullets: #d1d5db; --tw-prose-hr: #e5e7eb; --tw-prose-quotes: #111827; --tw-prose-quote-borders: #e5e7eb; --tw-prose-captions: #6b7280; --tw-prose-code: #111827; --tw-prose-pre-code: #e5e7eb; --tw-prose-pre-bg: #1f2937; --tw-prose-th-borders: #d1d5db; --tw-prose-td-borders: #e5e7eb; --tw-prose-invert-body: #d1d5db; --tw-prose-invert-headings: #fff; --tw-prose-invert-lead: #9ca3af; --tw-prose-invert-links: #fff; --tw-prose-invert-bold: #fff; --tw-prose-invert-counters: #9ca3af; --tw-prose-invert-bullets: #4b5563; --tw-prose-invert-hr: #374151; --tw-prose-invert-quotes: #f3f4f6; --tw-prose-invert-quote-borders: #374151; --tw-prose-invert-captions: #9ca3af; --tw-prose-invert-code: #fff; --tw-prose-invert-pre-code: #d1d5db; --tw-prose-invert-pre-bg: rgba(0, 0, 0, 0.5); --tw-prose-invert-th-borders: #4b5563; --tw-prose-invert-td-borders: #374151; font-size: 1rem; line-height: 1.75; } .prose :where(p):not(:where([class~='not-prose'] *)) { margin-bottom: 1.25em; margin-top: 1.25em; } .prose :where(video):not(:where([class~='not-prose'] *)) { margin-bottom: 2em; margin-top: 2em; } .prose :where(figure):not(:where([class~='not-prose'] *)) { margin-bottom: 2em; margin-top: 2em; } .prose :where(li):not(:where([class~='not-prose'] *)) { margin-bottom: 0.5em; margin-top: 0.5em; } .prose :where(ul > li):not(:where([class~='not-prose'] *)) { padding-left: 0.375em; } .prose :where(.prose > ul > li p):not(:where([class~='not-prose'] *)) { margin-bottom: 0.75em; margin-top: 0.75em; } .prose :where(.prose > ul > li > :first-child):not(:where([class~='not-prose'] *)) { margin-top: 0; } .prose :where(.prose > ul > li > :last-child):not(:where([class~='not-prose'] *)) { margin-bottom: 1.25em; } .prose :where(hr + *):not(:where([class~='not-prose'] *)) { margin-top: 0; } .prose :where(h2 + *):not(:where([class~='not-prose'] *)) { margin-top: 0; } .prose :where(h3 + *):not(:where([class~='not-prose'] *)) { margin-top: 0; } .prose :where(h4 + *):not(:where([class~='not-prose'] *)) { margin-top: 0; } .prose :where(thead th:first-child):not(:where([class~='not-prose'] *)) { padding-left: 0; } .prose :where(thead th:last-child):not(:where([class~='not-prose'] *)) { padding-right: 0; } .prose :where(tbody td, tfoot td):not(:where([class~='not-prose'] *)) { padding: 0.5714286em; } .prose :where(tbody td:first-child, tfoot td:first-child):not(:where([class~='not-prose'] *)) { padding-left: 0; } .prose :where(tbody td:last-child, tfoot td:last-child):not(:where([class~='not-prose'] *)) { padding-right: 0; } .prose :where(.prose > :first-child):not(:where([class~='not-prose'] *)) { margin-top: 0; } .prose :where(.prose > :last-child):not(:where([class~='not-prose'] *)) { margin-bottom: 0; } .prose-sm :where(.prose > ul > li p):not(:where([class~='not-prose'] *)) { margin-bottom: 0.5714286em; margin-top: 0.5714286em; } .prose-sm :where(.prose > ul > li > :first-child):not(:where([class~='not-prose'] *)) { margin-top: 1.1428571em; } .prose-sm :where(.prose > ul > li > :last-child):not(:where([class~='not-prose'] *)) { margin-bottom: 1.1428571em; } .prose-sm :where(.prose > :first-child):not(:where([class~='not-prose'] *)) { margin-top: 0; } .prose-sm :where(.prose > :last-child):not(:where([class~='not-prose'] *)) { margin-bottom: 0; } .prose-base :where(.prose > ul > li p):not(:where([class~='not-prose'] *)) { margin-bottom: 0.75em; margin-top: 0.75em; } .prose-base :where(.prose > ul > li > :first-child):not(:where([class~='not-prose'] *)) { margin-top: 0; } .prose-base :where(.prose > ul > li > :last-child):not(:where([class~='not-prose'] *)) { margin-bottom: 1.25em; } .prose-base :where(.prose > :first-child):not(:where([class~='not-prose'] *)) { margin-top: 0; } .prose-base :where(.prose > :last-child):not(:where([class~='not-prose'] *)) { margin-bottom: 0; } .prose-lg :where(.prose > ul > li p):not(:where([class~='not-prose'] *)) { margin-bottom: 0.8888889em; margin-top: 0.8888889em; } .prose-lg :where(.prose > ul > li > :first-child):not(:where([class~='not-prose'] *)) { margin-top: 1.3333333em; } .prose-lg :where(.prose > ul > li > :last-child):not(:where([class~='not-prose'] *)) { margin-bottom: 1.3333333em; } .prose-lg :where(.prose > :first-child):not(:where([class~='not-prose'] *)) { margin-top: 0; } .prose-lg :where(.prose > :last-child):not(:where([class~='not-prose'] *)) { margin-bottom: 0; } .prose-xl :where(.prose > ul > li p):not(:where([class~='not-prose'] *)) { margin-bottom: 0.8em; margin-top: 0.8em; } .prose-xl :where(.prose > ul > li > :first-child):not(:where([class~='not-prose'] *)) { margin-top: 1.2em; } .prose-xl :where(.prose > ul > li > :last-child):not(:where([class~='not-prose'] *)) { margin-bottom: 1.2em; } .prose-xl :where(.prose > :first-child):not(:where([class~='not-prose'] *)) { margin-top: 0; } .prose-xl :where(.prose > :last-child):not(:where([class~='not-prose'] *)) { margin-bottom: 0; } .prose-2xl :where(.prose > ul > li p):not(:where([class~='not-prose'] *)) { margin-bottom: 0.8333333em; margin-top: 0.8333333em; } .prose-2xl :where(.prose > ul > li > :first-child):not(:where([class~='not-prose'] *)) { margin-top: 1.3333333em; } .prose-2xl :where(.prose > ul > li > :last-child):not(:where([class~='not-prose'] *)) { margin-bottom: 1.3333333em; } .prose-2xl :where(.prose > :first-child):not(:where([class~='not-prose'] *)) { margin-top: 0; } .prose-2xl :where(.prose > :last-child):not(:where([class~='not-prose'] *)) { margin-bottom: 0; } code, pre { font-family: Consolas, Söhne Mono, Monaco, Andale Mono, Ubuntu Mono, monospace !important; } code[class='language-plaintext'] { white-space: pre-line; } code.hljs, code[class*='language-'], pre[class*='language-'] { word-wrap: normal; background: none; color: #fff; -webkit-hyphens: none; hyphens: none; font-size: 0.85rem; line-height: 1.5; tab-size: 4; text-align: left; white-space: pre; word-break: normal; word-spacing: normal; } pre[class*='language-'] { border-radius: 0.3em; overflow: auto; } :not(pre) > code.hljs, :not(pre) > code[class*='language-'] { border-radius: 0.3em; padding: 0.1em; white-space: normal; } .hljs-comment { color: hsla(0, 0%, 100%, 0.5); } .hljs-meta { color: hsla(0, 0%, 100%, 0.6); } .hljs-built_in, .hljs-class .hljs-title { color: #e9950c; } .hljs-doctag, .hljs-formula, .hljs-keyword, .hljs-literal { color: #2e95d3; } .hljs-addition, .hljs-attribute, .hljs-meta-string, .hljs-regexp, .hljs-string { color: #00a67d; } .hljs-attr, .hljs-number, .hljs-selector-attr, .hljs-selector-class, .hljs-selector-pseudo, .hljs-template-variable, .hljs-type, .hljs-variable { color: #df3079; } .hljs-bullet, .hljs-link, .hljs-selector-id, .hljs-symbol, .hljs-title { color: #f22c3d; } [role='button'], button { cursor: pointer; } .btn { align-items: center; border-color: transparent; border-radius: 0.5rem; border-width: 1px; cursor: pointer; display: inline-flex; font-size: 0.875rem; font-weight: 500; line-height: 1.25rem; padding: 0.5rem 0.75rem; pointer-events: auto; transition: all 0.1s ease-in-out; } .custom-btn { align-items: center; border-color: transparent; border-radius: 0.25rem; border-width: 1px; display: inline-flex; font-size: 0.875rem; line-height: 1.25rem; padding: 0.5rem 0.75rem; transition: all 0.1s ease-in-out; } .btn:focus { outline: 2px solid transparent; outline-offset: 2px; } .btn:disabled { cursor: not-allowed; opacity: 0.5; } .btn-primary { --tw-bg-opacity: 1; --tw-text-opacity: 1; background-color: rgba(16, 163, 127, var(--tw-bg-opacity)); color: rgba(255, 255, 255, var(--tw-text-opacity)); } .btn-primary:hover { --tw-bg-opacity: 1; background-color: rgba(26, 127, 100, var(--tw-bg-opacity)); } .btn-primary:focus { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); --tw-ring-offset-width: 2px; box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 0 transparent; box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 transparent); } .btn-primary.focus-visible { --tw-ring-opacity: 1; --tw-ring-color: rgba(25, 195, 125, var(--tw-ring-opacity)); } .btn-primary:focus-visible { --tw-ring-opacity: 1; --tw-ring-color: rgba(25, 195, 125, var(--tw-ring-opacity)); } .btn-primary:disabled:hover { --tw-bg-opacity: 1; background-color: rgba(16, 163, 127, var(--tw-bg-opacity)); } .btn-secondary { --tw-border-opacity: 1; --tw-bg-opacity: 1; --tw-text-opacity: 1; background-color: transparent; background-color: rgba(16, 163, 156, var(--tw-bg-opacity)); color: rgba(255, 255, 255, var(--tw-text-opacity)); } .btn-secondary:hover { --tw-bg-opacity: 1; border-color: rgba(0, 0, 0, 0.1); color: rgba(64, 65, 79, var(--tw-text-opacity)); background-color: rgba(236, 236, 241, var(--tw-bg-opacity)); } .dark .btn-secondary:hover { --tw-bg-opacity: 1; border-color: rgba(8, 82, 78, var(--tw-border-opacity)); color: rgba(255, 255, 240, var(--tw-text-opacity)); background-color: rgba(8, 82, 78, var(--tw-bg-opacity)); } .btn-neutral { --tw-bg-opacity: 1; --tw-text-opacity: 1; background-color: rgba(255, 255, 255, var(--tw-bg-opacity)); border-color: rgba(0, 0, 0, 0.1); border-width: 1px; color: rgba(64, 65, 79, var(--tw-text-opacity)); font-size: 0.875rem; line-height: 1.25rem; } .btn-neutral:hover { --tw-bg-opacity: 1; background-color: rgba(236, 236, 241, var(--tw-bg-opacity)); } .dark .btn-neutral { --tw-border-opacity: 1; --tw-bg-opacity: 1; --tw-text-opacity: 1; background-color: transparent; border-color: rgba(66, 66, 66, var(--tw-border-opacity)); color: rgba(255, 255, 240, var(--tw-text-opacity)); } .dark .btn-neutral:hover { --tw-bg-opacity: 1; background-color: rgba(66, 66, 66, var(--tw-bg-opacity)); } .btn-small { padding: 0.25rem 0.5rem; } .from-token-surface-secondary { --tw-gradient-from: var(--surface-secondary) var(--tw-gradient-from-position); --tw-gradient-to: hsla(0, 0%, 100%, 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); } /* Webkit scrollbar */ ::-webkit-scrollbar { height: 0.1em; width: 0.5rem; } ::-webkit-scrollbar-thumb { background-color: rgba(0, 0, 0, 0.1); border-radius: 9999px; } .dark ::-webkit-scrollbar-thumb { background-color: hsla(0, 0%, 100%, 0.1); } ::-webkit-scrollbar-track { background-color: transparent; border-radius: 9999px; } .scrollbar-transparent::-webkit-scrollbar-thumb { background-color: transparent; } .dark .scrollbar-transparent::-webkit-scrollbar-thumb { background-color: transparent; } body, html { height: 100%; } .dark body, .dark html { --tw-bg-opacity: 1; background-color: rgba(23, 23, 23, var(--tw-bg-opacity)); } #__next, #root { height: 100%; } .markdown { max-width: none; font-size: var(--markdown-font-size, var(--font-size-base)); line-height: calc( 28px * var(--markdown-font-size, var(--font-size-base)) / var(--font-size-base) ); } .markdown h1 { font-size: calc(var(--markdown-font-size) * 1.75); } .markdown h2 { font-size: calc(var(--markdown-font-size) * 1.5); } .markdown h2 { margin-bottom: 1rem; margin-top: 2rem; } .markdown h3 { font-weight: 600; font-size: calc(var(--markdown-font-size) * 1.25); } .markdown h3, .markdown h4 { margin-bottom: 0.5rem; margin-top: 1rem; } .markdown h4 { font-weight: 400; font-size: calc(var(--markdown-font-size) * 1.1); } .markdown h5 { font-weight: 600; font-size: var(--markdown-font-size); } .markdown blockquote { --tw-border-opacity: 1; border-color: rgba(142, 142, 160, var(--tw-border-opacity)); border-left-width: 2px; line-height: 1rem; padding-left: 1rem; } .markdown table { --tw-border-spacing-x: 0px; --tw-border-spacing-y: 0px; border-collapse: separate; border-spacing: var(--tw-border-spacing-x) var(--tw-border-spacing-y); width: 100%; } .markdown th { background-color: rgba(236, 236, 241, 0.2); border-bottom-width: 1px; border-left-width: 1px; border-top-width: 1px; padding: 0.25rem 0.75rem; } .markdown th:first-child { border-top-left-radius: 0.375rem; } .markdown th:last-child { border-right-width: 1px; border-top-right-radius: 0.375rem; } .markdown td { border-bottom-width: 1px; border-left-width: 1px; padding: 0.25rem 0.75rem; } .markdown td:last-child { border-right-width: 1px; } .markdown tbody tr:last-child td:first-child { border-bottom-left-radius: 0.375rem; } .markdown tbody tr:last-child td:last-child { border-bottom-right-radius: 0.375rem; } .markdown a { text-decoration-line: underline; text-underline-offset: 2px; } .animate-flash { -webkit-animation: flash 2s steps(60, start); animation: flash 2s steps(60, start); } @-webkit-keyframes flash { 0% { background-color: hsla(0, 0%, 100%, 0.4); } } @keyframes flash { 0% { background-color: hsla(0, 0%, 100%, 0.4); } } .truncate { overflow: hidden; white-space: nowrap; } .text-ellipsis, .truncate { text-overflow: ellipsis; } .group:hover .group-hover\:visible { visibility: visible; } .group:hover .group-hover\:from-\[\#2A2B32\] { --tw-gradient-from: #2a2b32; --tw-gradient-to: rgba(42, 43, 50, 0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); } .group:hover .group-hover\:text-gray-500 { --tw-text-opacity: 1; color: rgba(142, 142, 160, var(--tw-text-opacity)); } .group:hover .group-hover\:text-gray-700 { --tw-text-opacity: 1; color: rgba(64, 65, 79, var(--tw-text-opacity)); } .dark .dark\:prose-invert { --tw-prose-body: var(--tw-prose-invert-body); --tw-prose-headings: var(--tw-prose-invert-headings); --tw-prose-lead: var(--tw-prose-invert-lead); --tw-prose-links: var(--tw-prose-invert-links); --tw-prose-bold: var(--tw-prose-invert-bold); --tw-prose-counters: var(--tw-prose-invert-counters); --tw-prose-bullets: var(--tw-prose-invert-bullets); --tw-prose-hr: var(--tw-prose-invert-hr); --tw-prose-quotes: var(--tw-prose-invert-quotes); --tw-prose-quote-borders: var(--tw-prose-invert-quote-borders); --tw-prose-captions: var(--tw-prose-invert-captions); --tw-prose-code: var(--tw-prose-invert-code); --tw-prose-pre-code: var(--tw-prose-invert-pre-code); --tw-prose-pre-bg: var(--tw-prose-invert-pre-bg); --tw-prose-th-borders: var(--tw-prose-invert-th-borders); --tw-prose-td-borders: var(--tw-prose-invert-td-borders); } @-webkit-keyframes spin { to { -webkit-transform: rotate(1turn); transform: rotate(1turn); } } @keyframes spin { to { -webkit-transform: rotate(1turn); transform: rotate(1turn); } } .animate-spin { -webkit-animation: spin 1s linear infinite; animation: spin 1s linear infinite; } .form-input, .form-multiselect, .form-select, .form-textarea { --tw-shadow: 0 0 transparent; -webkit-appearance: none; appearance: none; background-color: #fff; border-color: #8e8ea0; border-radius: 0; border-width: 1px; font-size: 1rem; line-height: 1.5rem; padding: 0.5rem 0.75rem; } .form-input:focus, .form-multiselect:focus, .form-select:focus, .form-textarea:focus { --tw-ring-inset: var(--tw-empty, /*!*/ /*!*/); --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: #2563eb; --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); border-color: #2563eb; box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); outline: 2px solid transparent; outline-offset: 2px; } .form-input::-webkit-input-placeholder, .form-textarea::-webkit-input-placeholder { color: #8e8ea0; opacity: 1; } .form-input::placeholder, .form-textarea::placeholder { color: #8e8ea0; opacity: 1; } .form-input::-webkit-datetime-edit-fields-wrapper { padding: 0; } .form-input::-webkit-date-and-time-value { min-height: 1.5em; } .form-input::-webkit-datetime-edit, .form-input::-webkit-datetime-edit-day-field, .form-input::-webkit-datetime-edit-hour-field, .form-input::-webkit-datetime-edit-meridiem-field, .form-input::-webkit-datetime-edit-millisecond-field, .form-input::-webkit-datetime-edit-minute-field, .form-input::-webkit-datetime-edit-month-field, .form-input::-webkit-datetime-edit-second-field, .form-input::-webkit-datetime-edit-year-field { padding-bottom: 0; padding-top: 0; } .grow { flex-grow: 1; } .transform { -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } body, html { height: 100%; } .dark body, .dark html { --tw-bg-opacity: 1; background-color: rgba(33, 33, 33, var(--tw-bg-opacity)); } #__next, #root { height: 100%; } .markdown { max-width: none; } .markdown h1, .markdown h2 { font-weight: 600; } .markdown h2 { margin-bottom: 1rem; margin-top: 2rem; } .markdown h3 { font-weight: 600; } .markdown h3, .markdown h4 { margin-bottom: 0.5rem; margin-top: 1rem; } .markdown h4 { font-weight: 400; } .markdown h5 { font-weight: 600; } .markdown blockquote { --tw-border-opacity: 1; border-color: rgba(142, 142, 160, var(--tw-border-opacity)); border-left-width: 2px; line-height: 1rem; padding-left: 1rem; } .markdown table { --tw-border-spacing-x: 0px; --tw-border-spacing-y: 0px; border-collapse: separate; border-spacing: var(--tw-border-spacing-x) var(--tw-border-spacing-y); width: 100%; } .markdown th { background-color: rgba(236, 236, 241, 0.2); border-bottom-width: 1px; border-left-width: 1px; border-top-width: 1px; padding: 0.25rem 0.75rem; } .markdown th:first-child { border-top-left-radius: 0.375rem; } .markdown th:last-child { border-right-width: 1px; border-top-right-radius: 0.375rem; } .markdown td { border-bottom-width: 1px; border-left-width: 1px; padding: 0.25rem 0.75rem; } .markdown td:last-child { border-right-width: 1px; } .markdown tbody tr:last-child td:first-child { border-bottom-left-radius: 0.375rem; } .markdown tbody tr:last-child td:last-child { border-bottom-right-radius: 0.375rem; } .markdown a { text-decoration-line: underline; text-underline-offset: 2px; } .conversation-item-time:before { content: attr(data-time); } .tooltip-label:before { content: attr(data-content); } button.scroll-convo { display: none; } @-webkit-keyframes blink { to { visibility: hidden; } } @keyframes blink { to { visibility: hidden; } } .animate-flash { -webkit-animation: flash 2s steps(60, start); animation: flash 2s steps(60, start); } @-webkit-keyframes flash { 0% { background-color: hsla(0, 0%, 100%, 0.4); } } @keyframes flash { 0% { background-color: hsla(0, 0%, 100%, 0.4); } } .hidden-visibility { visibility: hidden; } .toast-root { align-items: center; display: flex; flex-direction: column; height: 0; transition: all 0.24s cubic-bezier(0, 0, 0.2, 1); } .toast-root[data-state='open'] { -webkit-animation: toast-open 0.24s cubic-bezier(0.175, 0.885, 0.32, 1.175) both; animation: toast-open 0.24s cubic-bezier(0.175, 0.885, 0.32, 1.175) both; } .toast-root[data-state='closed'] { -webkit-animation: toast-close 0.12s cubic-bezier(0.4, 0, 1, 1) both; animation: toast-close 0.12s cubic-bezier(0.4, 0, 1, 1) both; } .toast-root .alert-root { box-shadow: 0 0 1px rgba(67, 90, 111, 0.3), 0 5px 8px -4px rgba(67, 90, 111, 0.3); flex-shrink: 0; pointer-events: all; } @-webkit-keyframes toast-open { 0% { opacity: 0; -webkit-transform: translateY(-100%); transform: translateY(-100%); } to { -webkit-transform: translateY(0); transform: translateY(0); } } @keyframes toast-open { 0% { opacity: 0; -webkit-transform: translateY(-100%); transform: translateY(-100%); } to { -webkit-transform: translateY(0); transform: translateY(0); } } @-webkit-keyframes toast-close { 0% { opacity: 1; } to { opacity: 0; } } @keyframes toast-close { 0% { opacity: 1; } to { opacity: 0; } } @-webkit-keyframes pulseSize { 0%, to { -webkit-transform: scaleX(1); transform: scaleX(1); } 50% { -webkit-transform: scale3d(1.25, 1.25, 1); transform: scale3d(1.25, 1.25, 1); } } @keyframes pulseSize { 0%, to { -webkit-transform: scaleX(1); transform: scaleX(1); } 50% { -webkit-transform: scale3d(1.25, 1.25, 1); transform: scale3d(1.25, 1.25, 1); } } .submitting .result-thinking:empty:last-child:after { -webkit-font-smoothing: subpixel-antialiased; -webkit-animation: pulseSize 1.25s ease-in-out infinite; animation: pulseSize 1.25s ease-in-out infinite; -webkit-backface-visibility: hidden; backface-visibility: hidden; background-color: #0d0d0d; background-color: var(--text-primary); border-radius: 50%; box-sizing: border-box; content: ' '; display: block; height: 12px; position: absolute; top: -11px; -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-transform-origin: center; transform-origin: center; width: 12px; will-change: transform; } .shadow-stroke { position: relative; } .shadow-stroke:after { --tw-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1); --tw-shadow-colored: inset 0 0 0 1px var(--tw-shadow-color); border-radius: 9999px; bottom: 0; content: ''; left: 0; position: absolute; right: 0; top: 0; } .dark .shadow-stroke:after, .shadow-stroke:after { box-shadow: 0 0 transparent, 0 0 transparent, var(--tw-shadow); box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent), var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow); } .dark .shadow-stroke:after { --tw-shadow: inset 0 0 0 1px hsla(0, 0%, 100%, 0.3); --tw-shadow-colored: inset 0 0 0 1px var(--tw-shadow-color); } .assistant-item { position: relative; } .assistant-item:after { --tw-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.25); --tw-shadow-colored: inset 0 0 0 1px var(--tw-shadow-color); border-radius: 9999px; bottom: 0; content: ''; left: 0; position: absolute; right: 0; top: 0; box-shadow: 0 0 transparent, 0 0 transparent, var(--tw-shadow); box-shadow: var(--tw-ring-offset-shadow, 0 0 transparent), var(--tw-ring-shadow, 0 0 transparent), var(--tw-shadow); } .dark .assistant-item:after { --tw-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.25); --tw-shadow-colored: inset 0 0 0 1px var(--tw-shadow-color); } .result-streaming > :not(ol):not(ul):not(pre):last-child:after, .result-streaming > pre:last-child code:after { display: inline-block; content: '⬤'; width: 12px; height: 12px; font-family: system-ui, Inter, Söhne Circle, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif; line-height: normal; margin-left: 0.25rem; vertical-align: middle; font-size: 0.5rem; } @supports (selector(:has(*))) { .result-streaming > :is(ul, ol):last-child > li:last-child:not(:has(> :is(ul, ol, pre))):after { content: '⬤'; font-family: system-ui, Inter, Söhne Circle, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif; line-height: normal; margin-left: 0.25rem; vertical-align: middle; font-size: 0.5rem; display: inline-block; width: 12px; height: 12px; } } @supports not (selector(:has(*))) { .result-streaming > ol:last-child > li:last-child:after, .result-streaming > ul:last-child > li:last-child:after { content: '⬤'; font-family: system-ui, Inter, Söhne Circle, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif; line-height: normal; margin-left: 0.25rem; vertical-align: middle; font-size: 0.5rem; display: inline-block; width: 12px; height: 12px; } .result-streaming > ol:last-child > li:last-child > :is(ul, ol, pre) ~ :after, .result-streaming > ul:last-child > li:last-child > :is(ul, ol, pre) ~ :after { display: none; } .result-streaming > ol:last-child > li:last-child > pre:last-child code:after, .result-streaming > ul:last-child > li:last-child > pre:last-child code:after { display: inline-block; } } /* Remove cursors when streaming is complete */ .result-streaming:not(.submitting) :is(ul, ol) li:after { display: none !important; } .webkit-dark-styles, .webkit-dark-styles:focus { background-clip: content-box; -webkit-box-shadow: 0 0 0 50vh #fff inset; } .dark .webkit-dark-styles, .dark .webkit-dark-styles:focus { -webkit-text-fill-color: #fff; background-clip: content-box; -webkit-box-shadow: 0 0 0 50vh #0d0d0d inset; } /* Ordered Listing */ .prose :where(ol[type='A']):not(:where([class~='not-prose'] *)) { list-style-type: upper-alpha; } .prose :where(ol[type='a']):not(:where([class~='not-prose'] *)) { list-style-type: lower-alpha; } .prose :where(ol[type='A s']):not(:where([class~='not-prose'] *)) { list-style-type: upper-alpha; } .prose :where(ol[type='a s']):not(:where([class~='not-prose'] *)) { list-style-type: lower-alpha; } .prose :where(ol[type='I']):not(:where([class~='not-prose'] *)) { list-style-type: upper-roman; } .prose :where(ol[type='i']):not(:where([class~='not-prose'] *)) { list-style-type: lower-roman; } .prose :where(ol[type='I s']):not(:where([class~='not-prose'] *)) { list-style-type: upper-roman; } .prose :where(ol[type='i s']):not(:where([class~='not-prose'] *)) { list-style-type: lower-roman; } .prose :where(ol[type='1']):not(:where([class~='not-prose'] *)) { list-style-type: decimal; } .prose :where(.prose > ol > li > :first-child):not(:where([class~='not-prose'] *)) { margin-top: 0; } .prose :where(.prose > ol > li > :last-child):not(:where([class~='not-prose'] *)) { margin-bottom: 1.25em; } .prose :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~='not-prose'] *)) { margin-bottom: 0.75em; margin-top: 0.75em; } .prose-sm :where(.prose > ol > li > :first-child):not(:where([class~='not-prose'] *)) { margin-top: 1.1428571em; } .prose-sm :where(.prose > ol > li > :last-child):not(:where([class~='not-prose'] *)) { margin-bottom: 1.1428571em; } .prose-base :where(.prose > ol > li > :first-child):not(:where([class~='not-prose'] *)) { margin-top: 0; } .prose-base :where(.prose > ol > li > :last-child):not(:where([class~='not-prose'] *)) { margin-bottom: 1.25em; } .prose-lg :where(.prose > ol > li > :first-child):not(:where([class~='not-prose'] *)) { margin-top: 1.3333333em; } .prose-lg :where(.prose > ol > li > :last-child):not(:where([class~='not-prose'] *)) { margin-bottom: 1.3333333em; } .prose-xl :where(.prose > ol > li > :first-child):not(:where([class~='not-prose'] *)) { margin-top: 1.2em; } .prose-xl :where(.prose > ol > li > :last-child):not(:where([class~='not-prose'] *)) { margin-bottom: 1.2em; } .prose-2xl :where(.prose > ol > li > :first-child):not(:where([class~='not-prose'] *)) { margin-top: 1.3333333em; } .prose-2xl :where(.prose > ol > li > :last-child):not(:where([class~='not-prose'] *)) { margin-bottom: 1.3333333em; } /* Base styles for lists */ .prose ol, .prose ul, .markdown ol, .markdown ul { list-style-position: outside; margin-top: 1em; margin-bottom: 1em; padding-left: 1.625em; } .prose li, .markdown li { margin-bottom: 0.5em; margin-top: 0.5em; } /* Ordered lists */ .prose ol, .markdown ol { list-style-type: decimal; counter-reset: list-counter; } .prose ol > li, .markdown ol > li { position: relative; padding-left: 0.375em; counter-increment: list-counter; } .prose ol > li::marker, .markdown ol > li::marker { content: counter(list-counter) ". "; color: var(--tw-prose-counters); font-weight: 400; } /* Nested ordered lists */ .prose ol ol, .markdown ol ol { list-style-type: lower-alpha; counter-reset: list-counter-alpha; } .prose ol ol > li, .markdown ol ol > li { counter-increment: list-counter-alpha; } .prose ol ol > li::marker, .markdown ol ol > li::marker { content: counter(list-counter-alpha, lower-alpha) ". "; } .prose ol ol ol, .markdown ol ol ol { list-style-type: lower-roman; counter-reset: list-counter-roman; } .prose ol ol ol > li, .markdown ol ol ol > li { counter-increment: list-counter-roman; } .prose ol ol ol > li::marker, .markdown ol ol ol > li::marker { content: counter(list-counter-roman, lower-roman) ". "; } /* Unordered lists */ .prose ul, .markdown ul { list-style-type: disc; } .prose ul > li, .markdown ul > li { padding-left: 0.375em; } .prose ul > li::marker, .markdown ul > li::marker { color: var(--tw-prose-bullets); } /* Nested unordered lists */ .prose ul ul, .markdown ul ul { list-style-type: circle; } .prose ul ul ul, .markdown ul ul ul { list-style-type: square; } /* Nested lists */ .prose ol ol, .prose ul ul, .prose ul ol, .prose ol ul, .markdown ol ol, .markdown ul ul, .markdown ul ol, .markdown ol ul { margin-top: 0.75em; margin-bottom: 0.75em; } /* Remove extra spacing */ .prose > ul > li > *:first-child, .prose > ol > li > *:first-child, .markdown > ul > li > *:first-child, .markdown > ol > li > *:first-child { margin-top: 1.25em; } .prose > ul > li > *:last-child, .prose > ol > li > *:last-child, .markdown > ul > li > *:last-child, .markdown > ol > li > *:last-child { margin-bottom: 1.25em; } /* Ensure proper marker color */ .prose li::marker, .markdown li::marker { color: currentColor; } /* Reset counter for new sections */ .prose h1 + ol, .prose h2 + ol, .prose h3 + ol, .prose h4 + ol, .prose h5 + ol, .prose h6 + ol, .markdown h1 + ol, .markdown h2 + ol, .markdown h3 + ol, .markdown h4 + ol, .markdown h5 + ol, .markdown h6 + ol { counter-reset: list-counter; } /* Reset counter after unordered lists */ .prose ul + ol, .markdown ul + ol { counter-reset: list-counter; } /* Keyframes */ @keyframes slideFromLeftToRightAndFade { 0% { opacity: 0; transform: translateX(-10%); } 20% { opacity: 1; transform: translateX(0); } 70% { opacity: 1; transform: translateX(0); } 75% { opacity: 1; transform: translateX(10%); } 80% { opacity: 0; transform: translateX(20%); } 85%, 100% { opacity: 0; transform: translateX(30%); } } .slide-from-left { animation: slideFromLeftToRightAndFade 2s ease-in-out infinite; } @keyframes slideDownAndFadeOut { 0% { opacity: 1; transform: translateY(-10%); } 20% { opacity: 1; transform: translateY(0); } 70% { opacity: 1; transform: translateY(0); } 75% { opacity: 1; transform: translateY(10%); } 80% { opacity: 0; transform: translateY(20%); } 85%, 100% { opacity: 0; transform: translateY(30%); } } .slide-to-down { animation: slideDownAndFadeOut 2s ease-in-out infinite; } @keyframes rotateAdjustAndBack { 0% { transform: rotate(-33deg) scale(1); } 5% { transform: rotate(67deg) scale(1); } 6%, 20% { transform: rotate(57deg) scale(1); } 22% { transform: rotate(65deg) scale(1); } 26%, 40% { transform: rotate(-33deg) scale(1); } 42% { transform: rotate(-40deg) scale(1); } 45%, 75% { transform: rotate(30deg) scale(0.7); } 77%, 85% { transform: rotate(57deg) scale(1); } 87% { transform: rotate(65deg) scale(1); } 90%, 100% { transform: rotate(-33deg) scale(1); } } .rotate-adjust-and-back { animation: rotateAdjustAndBack 10s ease-in-out infinite; transform-origin: 50% 50%; } @keyframes moonRise { 0% { transform: translate(4px, 1px) rotate(-45deg); opacity: 0; } 10% { transform: translate(4px, 1px) rotate(-45deg); opacity: 0; } 20% { transform: translate(0, 0px) rotate(34deg); opacity: 1; } 50% { transform: translate(0, 0px) rotate(34deg); opacity: 1; } 60%, 100% { transform: translate(0, 0px) rotate(34deg); opacity: 1; } } .moon-rise { animation: moonRise 4s ease-in-out infinite; transform-origin: 45% 50%; } @keyframes moveUp { 0% { transform: translateY(0.5px); opacity: 0.8; } 10% { transform: translateY(0.5px); opacity: 1; } 20% { transform: translateY(0px); opacity: 1; } 50% { transform: translateY(0px); opacity: 1; } 60%, 100% { transform: translateY(0px); opacity: 1; } } .move-up { animation: moveUp 4s ease-in-out infinite; } .message-content { font-size: var(--markdown-font-size, var(--font-size-base)); line-height: 1.75; } .message-content pre code { font-size: calc(0.85 * var(--markdown-font-size, var(--font-size-base))); } .message-content pre { font-size: var(--markdown-font-size, var(--font-size-base)); } .code-analyze-block pre code, .code-analyze-block .overflow-y-auto code { font-size: calc(0.85 * var(--markdown-font-size, var(--font-size-base))); } .code-analyze-block pre, .code-analyze-block .overflow-y-auto { font-size: var(--markdown-font-size, var(--font-size-base)); } .progress-text-wrapper { font-size: var(--markdown-font-size, var(--font-size-base)); line-height: calc(1.25 * var(--markdown-font-size, var(--font-size-base))); } .progress-text-content { font-size: inherit; line-height: inherit; } .progress-text-wrapper button { font-size: inherit; line-height: inherit; } :focus { outline: none; } :focus-visible { outline: 2px solid #000; outline-offset: 2px; } .dark :focus-visible { outline: 2px solid #fff; outline-offset: 2px; }