Spaces:
Running
Running
| :root { | |
| color-scheme: light; | |
| font-family: "Manrope", "Avenir Next", sans-serif; | |
| color: #151517; | |
| background: #f3f4f0; | |
| font-synthesis: none; | |
| --ink: #151517; | |
| --ink-rgb: 21, 21, 23; | |
| --white-rgb: 255, 255, 255; | |
| --surface-rgb: 250, 250, 247; | |
| --toolbar-rgb: 248, 249, 246; | |
| --gradient-end-rgb: 232, 234, 228; | |
| --muted: rgba(var(--ink-rgb), 0.5); | |
| --line: rgba(var(--ink-rgb), 0.1); | |
| --paper: #f3f4f0; | |
| --surface: #fafbf8; | |
| --primary-hover: #353538; | |
| --red: #c60c2e; | |
| --green: #18ad74; | |
| } | |
| :root[data-theme="dark"] { | |
| color-scheme: dark; | |
| color: #f1f4f7; | |
| background: #10151c; | |
| --ink: #f1f4f7; | |
| --ink-rgb: 241, 244, 247; | |
| --white-rgb: 31, 39, 49; | |
| --surface-rgb: 27, 35, 45; | |
| --toolbar-rgb: 27, 35, 45; | |
| --gradient-end-rgb: 13, 20, 29; | |
| --muted: rgba(var(--ink-rgb), 0.58); | |
| --line: rgba(var(--ink-rgb), 0.13); | |
| --paper: #10151c; | |
| --surface: #1b232d; | |
| --primary-hover: #d4dde5; | |
| --red: #fb5476; | |
| --green: #5bdba7; | |
| } | |
| * { | |
| box-sizing: border-box; | |
| } | |
| [hidden] { | |
| display: none ; | |
| } | |
| html { | |
| min-width: 320px; | |
| min-height: 100%; | |
| } | |
| body { | |
| min-height: 100vh; | |
| margin: 0; | |
| overflow-x: hidden; | |
| background-color: var(--paper); | |
| background-image: | |
| linear-gradient(rgba(var(--ink-rgb), 0.035) 1px, transparent 1px), | |
| linear-gradient(90deg, rgba(var(--ink-rgb), 0.035) 1px, transparent 1px); | |
| background-size: 64px 64px; | |
| } | |
| button, | |
| input { | |
| font: inherit; | |
| } | |
| button, | |
| label { | |
| -webkit-tap-highlight-color: transparent; | |
| } | |
| button:focus-visible, | |
| label:has(input:focus-visible), | |
| a:focus-visible { | |
| outline: 2px solid var(--red); | |
| outline-offset: 4px; | |
| } | |
| a { | |
| color: inherit; | |
| } | |
| #ambient { | |
| position: fixed; | |
| inset: 0; | |
| width: 100%; | |
| height: 100%; | |
| pointer-events: none; | |
| opacity: 0.24; | |
| z-index: -1; | |
| } | |
| .topbar { | |
| height: 88px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding: 0 42px; | |
| } | |
| .brand { | |
| display: flex; | |
| align-items: baseline; | |
| gap: 9px; | |
| text-decoration: none; | |
| font-size: 14px; | |
| font-weight: 700; | |
| } | |
| .brand-mark { | |
| text-transform: uppercase; | |
| } | |
| .brand-divider, | |
| .product-name { | |
| color: var(--muted); | |
| } | |
| .topbar-actions, | |
| .transcript-actions { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| } | |
| .circle-button { | |
| width: 48px; | |
| height: 48px; | |
| border: 1px solid rgba(var(--ink-rgb), 0.08); | |
| border-radius: 50%; | |
| background: rgba(var(--white-rgb), 0.68); | |
| color: rgba(var(--ink-rgb), 0.5); | |
| box-shadow: 0 5px 20px rgba(var(--ink-rgb), 0.05); | |
| cursor: pointer; | |
| } | |
| .circle-button > span:not(:empty) { | |
| display: grid; | |
| place-items: center; | |
| width: 22px; | |
| height: 22px; | |
| margin: auto; | |
| border: 2px solid currentColor; | |
| border-radius: 50%; | |
| font-size: 13px; | |
| font-weight: 700; | |
| } | |
| .theme-button svg { | |
| width: 20px; | |
| height: 20px; | |
| vertical-align: middle; | |
| } | |
| .circle-button.sliders span, | |
| .circle-button.sliders span::before, | |
| .circle-button.sliders span::after { | |
| display: block; | |
| width: 22px; | |
| height: 2px; | |
| background: currentColor; | |
| content: ""; | |
| } | |
| .circle-button.sliders span { | |
| position: relative; | |
| margin: auto; | |
| } | |
| .circle-button.sliders span::before { | |
| position: absolute; | |
| top: -7px; | |
| } | |
| .circle-button.sliders span::after { | |
| position: absolute; | |
| top: 7px; | |
| } | |
| .circle-button:disabled { | |
| cursor: default; | |
| opacity: 0.38; | |
| } | |
| main { | |
| width: min(920px, calc(100% - 44px)); | |
| margin: 30px auto 0; | |
| } | |
| .intro { | |
| text-align: center; | |
| } | |
| .section-label { | |
| margin: 0 0 14px; | |
| color: rgba(var(--ink-rgb), 0.46); | |
| font-size: 12px; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| } | |
| h1, | |
| h2, | |
| p { | |
| letter-spacing: 0; | |
| } | |
| h1 { | |
| margin: 0; | |
| font-size: clamp(34px, 5vw, 58px); | |
| line-height: 1.08; | |
| font-weight: 500; | |
| } | |
| .intro-copy { | |
| max-width: 640px; | |
| margin: 22px auto 0; | |
| color: var(--muted); | |
| font-size: 16px; | |
| line-height: 1.65; | |
| } | |
| .workspace { | |
| min-height: 500px; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| padding: 46px 0 74px; | |
| } | |
| .model-status { | |
| width: min(620px, 100%); | |
| min-height: 24px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| flex-wrap: wrap; | |
| gap: 8px; | |
| margin-top: 24px; | |
| color: var(--muted); | |
| font-size: 12px; | |
| } | |
| #statusText { | |
| white-space: nowrap; | |
| } | |
| #statusDetail { | |
| max-width: 100%; | |
| min-width: 0; | |
| overflow: hidden; | |
| color: rgba(var(--ink-rgb), 0.34); | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .status-dot { | |
| width: 7px; | |
| height: 7px; | |
| border-radius: 50%; | |
| background: #c7a73f; | |
| box-shadow: 0 0 0 5px rgba(199, 167, 63, 0.1); | |
| } | |
| .status-dot.ready { | |
| background: var(--green); | |
| box-shadow: 0 0 0 5px rgba(24, 173, 116, 0.1); | |
| } | |
| .status-dot.error { | |
| background: var(--red); | |
| box-shadow: 0 0 0 5px rgba(198, 12, 46, 0.1); | |
| } | |
| .progress-track { | |
| width: min(360px, 80vw); | |
| height: 2px; | |
| margin-top: 10px; | |
| overflow: hidden; | |
| background: rgba(var(--ink-rgb), 0.08); | |
| } | |
| .progress-track span { | |
| display: block; | |
| width: 0; | |
| height: 100%; | |
| background: var(--red); | |
| transition: width 180ms ease; | |
| } | |
| .progress-track.complete { | |
| opacity: 0; | |
| transition: opacity 400ms ease; | |
| } | |
| .mode-panel { | |
| width: 100%; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| } | |
| .mode-panel[hidden] { | |
| display: none; | |
| } | |
| .live-caption { | |
| width: min(720px, 100%); | |
| margin: 30px 0 0; | |
| color: var(--ink); | |
| font-size: clamp(21px, 3vw, 30px); | |
| line-height: 1.4; | |
| text-align: center; | |
| text-wrap: balance; | |
| } | |
| .stage { | |
| --stage-size: clamp(220px, 31vw, 310px); | |
| position: relative; | |
| width: var(--stage-size); | |
| height: var(--stage-size); | |
| margin-top: 30px; | |
| padding: 0; | |
| border: 0; | |
| border-radius: 50%; | |
| background: transparent; | |
| cursor: pointer; | |
| } | |
| .stage:disabled { | |
| cursor: wait; | |
| filter: grayscale(0.3); | |
| } | |
| .ring { | |
| position: absolute; | |
| width: 100%; | |
| height: 100%; | |
| border: 1px solid rgba(140, 191, 255, 0.22); | |
| border-radius: 50%; | |
| pointer-events: none; | |
| will-change: transform; | |
| animation: ring-breathe 7s ease-in-out infinite; | |
| } | |
| .orb { | |
| position: relative; | |
| z-index: 2; | |
| overflow: hidden; | |
| border-radius: 50%; | |
| box-shadow: 0 0 16px rgba(71, 85, 105, 0.14); | |
| will-change: transform, box-shadow; | |
| animation: idle-pulse 8s ease-in-out infinite; | |
| } | |
| .orb canvas { | |
| position: absolute; | |
| inset: 0; | |
| width: 100%; | |
| height: 100%; | |
| border-radius: 50%; | |
| } | |
| @keyframes idle-pulse { | |
| 0%, 100% { transform: scale(1); box-shadow: 0 0 30px rgba(140, 191, 255, 0.18), 0 0 62px rgba(255, 170, 173, 0.08); } | |
| 50% { transform: scale(1.008); box-shadow: 0 0 35px rgba(140, 191, 255, 0.22), 0 0 68px rgba(255, 170, 173, 0.1); } | |
| } | |
| @keyframes ring-breathe { | |
| 0%, 100% { transform: scale(1); opacity: 0.72; } | |
| 50% { transform: scale(1.018); opacity: 0.42; } | |
| } | |
| .stage-label { | |
| margin: 24px 0 0; | |
| color: rgba(var(--ink-rgb), 0.6); | |
| font-size: 15px; | |
| } | |
| .stage-note { | |
| margin: 7px 0 0; | |
| color: rgba(var(--ink-rgb), 0.36); | |
| font-size: 12px; | |
| } | |
| .icon-button { | |
| border: 0; | |
| cursor: pointer; | |
| } | |
| .transcript { | |
| padding: 38px 0 64px; | |
| border-top: 1px solid var(--line); | |
| } | |
| .transcript-heading { | |
| display: flex; | |
| align-items: flex-start; | |
| justify-content: space-between; | |
| gap: 20px; | |
| } | |
| .transcript h2, | |
| dialog h2 { | |
| margin: 0; | |
| font-size: 22px; | |
| font-weight: 600; | |
| } | |
| .section-label { | |
| margin-bottom: 8px; | |
| } | |
| .icon-button { | |
| min-width: 34px; | |
| height: 34px; | |
| padding: 0 8px; | |
| background: transparent; | |
| color: rgba(var(--ink-rgb), 0.48); | |
| font-size: 15px; | |
| } | |
| .icon-button[aria-pressed="true"] { | |
| color: var(--red); | |
| } | |
| .icon-button:disabled { | |
| cursor: default; | |
| opacity: 0.25; | |
| } | |
| .empty-transcript { | |
| min-height: 170px; | |
| display: grid; | |
| place-items: center; | |
| color: rgba(var(--ink-rgb), 0.32); | |
| font-size: 14px; | |
| } | |
| .segments { | |
| margin: 30px 0 0; | |
| padding: 0; | |
| list-style: none; | |
| } | |
| .segment { | |
| display: grid; | |
| grid-template-columns: 74px minmax(0, 1fr); | |
| gap: 22px; | |
| padding: 18px 0; | |
| border-bottom: 1px solid var(--line); | |
| } | |
| .segment-text { | |
| margin: 0; | |
| font-size: 18px; | |
| line-height: 1.65; | |
| } | |
| .segment.preview .segment-text { | |
| opacity: 0.65; | |
| } | |
| .word { | |
| border-radius: 2px; | |
| } | |
| footer { | |
| width: min(920px, calc(100% - 44px)); | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 18px; | |
| margin: 0 auto; | |
| padding: 22px 0 34px; | |
| border-top: 1px solid var(--line); | |
| color: rgba(var(--ink-rgb), 0.42); | |
| font-size: 11px; | |
| } | |
| .footer-links { | |
| display: flex; | |
| align-items: center; | |
| justify-content: flex-end; | |
| flex-wrap: wrap; | |
| gap: 8px; | |
| } | |
| .footer-chip { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 7px; | |
| min-height: 32px; | |
| padding: 7px 11px; | |
| border: 1px solid rgba(var(--ink-rgb), 0.12); | |
| border-radius: 999px; | |
| background: rgba(var(--surface-rgb), 0.82); | |
| color: rgba(var(--ink-rgb), 0.72); | |
| font-size: 11px; | |
| font-weight: 600; | |
| line-height: 1; | |
| text-decoration: none; | |
| transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease; | |
| } | |
| .footer-chip:hover { | |
| border-color: rgba(198, 12, 46, 0.28); | |
| background: var(--surface); | |
| color: var(--ink); | |
| transform: translateY(-1px); | |
| } | |
| .footer-chip svg, | |
| .footer-chip img { | |
| width: 15px; | |
| height: 15px; | |
| flex: 0 0 auto; | |
| } | |
| .footer-chip--github svg { | |
| color: var(--ink); | |
| } | |
| .footer-chip--linkedin svg { | |
| color: #0a66c2; | |
| } | |
| dialog { | |
| width: min(440px, calc(100% - 36px)); | |
| padding: 28px; | |
| border: 1px solid rgba(var(--ink-rgb), 0.08); | |
| border-radius: 7px; | |
| color: var(--ink); | |
| background: rgba(var(--surface-rgb), 0.98); | |
| box-shadow: 0 24px 80px rgba(var(--ink-rgb), 0.16); | |
| } | |
| dialog::backdrop { | |
| background: rgba(var(--ink-rgb), 0.14); | |
| backdrop-filter: blur(7px); | |
| } | |
| dialog form { | |
| position: relative; | |
| } | |
| dialog p:not(.section-label) { | |
| color: var(--muted); | |
| font-size: 14px; | |
| line-height: 1.6; | |
| } | |
| .dialog-close { | |
| position: absolute; | |
| top: -12px; | |
| right: -8px; | |
| width: 32px; | |
| height: 32px; | |
| border: 0; | |
| background: transparent; | |
| color: var(--muted); | |
| cursor: pointer; | |
| font-size: 22px; | |
| } | |
| #microphoneDialog { | |
| width: min(470px, calc(100% - 32px)); | |
| padding: 0; | |
| overflow: hidden; | |
| border-radius: 20px; | |
| background: var(--surface); | |
| box-shadow: 0 30px 90px rgba(var(--ink-rgb), 0.22); | |
| } | |
| #microphoneDialog::backdrop { | |
| background: rgba(var(--ink-rgb), 0.36); | |
| backdrop-filter: blur(10px); | |
| } | |
| .microphone-dialog-content { | |
| position: relative; | |
| padding: 34px; | |
| } | |
| .microphone-dialog-content .dialog-close { | |
| top: 16px; | |
| right: 18px; | |
| } | |
| .microphone-icon { | |
| width: 68px; | |
| height: 68px; | |
| display: grid; | |
| place-items: center; | |
| margin-bottom: 27px; | |
| border: 1px solid rgba(24, 173, 116, 0.17); | |
| border-radius: 20px; | |
| background: linear-gradient(145deg, #e8f7ed, #d6f0e4); | |
| color: #16875d; | |
| box-shadow: 0 10px 28px rgba(24, 173, 116, 0.12); | |
| } | |
| .microphone-icon svg { | |
| width: 30px; | |
| height: 30px; | |
| } | |
| #microphoneDialog h2 { | |
| max-width: 350px; | |
| margin-bottom: 13px; | |
| font-size: 26px; | |
| line-height: 1.25; | |
| } | |
| #microphoneDialog #microphoneDescription { | |
| margin: 0; | |
| color: rgba(var(--ink-rgb), 0.66); | |
| font-size: 14px; | |
| line-height: 1.7; | |
| } | |
| #microphoneDialog .microphone-browser-note { | |
| margin: 23px 0 0; | |
| padding: 12px 15px; | |
| border-left: 2px solid var(--green); | |
| border-radius: 0 9px 9px 0; | |
| background: rgba(24, 173, 116, 0.07); | |
| color: rgba(var(--ink-rgb), 0.69); | |
| font-size: 12px; | |
| line-height: 1.55; | |
| } | |
| .microphone-actions { | |
| display: flex; | |
| justify-content: flex-end; | |
| gap: 10px; | |
| margin-top: 29px; | |
| } | |
| .microphone-actions button { | |
| min-height: 44px; | |
| padding: 0 18px; | |
| border-radius: 10px; | |
| cursor: pointer; | |
| font-size: 13px; | |
| font-weight: 700; | |
| } | |
| .microphone-secondary { | |
| border: 1px solid var(--line); | |
| background: transparent; | |
| color: var(--ink); | |
| } | |
| .microphone-primary { | |
| border: 1px solid var(--ink); | |
| background: var(--ink); | |
| color: var(--paper); | |
| } | |
| .microphone-primary:hover { | |
| background: var(--primary-hover); | |
| } | |
| @media (max-width: 420px) { | |
| .microphone-dialog-content { padding: 28px 24px; } | |
| .microphone-actions { flex-direction: column-reverse; } | |
| .microphone-actions button { width: 100%; } | |
| } | |
| #settingsDialog { | |
| width: min(560px, calc(100% - 36px)); | |
| } | |
| #settingsDialog form { | |
| max-height: min(70vh, 560px); | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| .history-section { | |
| min-height: 0; | |
| margin-top: 24px; | |
| padding-top: 22px; | |
| border-top: 1px solid var(--line); | |
| } | |
| .history-section .section-label { | |
| margin-bottom: 7px; | |
| } | |
| .history-title-row { | |
| display: flex; | |
| align-items: baseline; | |
| justify-content: space-between; | |
| gap: 20px; | |
| } | |
| .history-clear, | |
| .history-open, | |
| .history-delete { | |
| border: 0; | |
| background: transparent; | |
| color: inherit; | |
| cursor: pointer; | |
| } | |
| .history-clear { | |
| padding: 4px 0; | |
| color: var(--red); | |
| font-size: 12px; | |
| } | |
| .history-clear:disabled { | |
| cursor: default; | |
| opacity: 0.35; | |
| } | |
| .history-open:disabled, | |
| .history-delete:disabled { | |
| cursor: default; | |
| opacity: 0.4; | |
| } | |
| .history-empty { | |
| margin: 22px 0 4px; | |
| padding: 24px 0; | |
| border-top: 1px solid var(--line); | |
| text-align: center; | |
| } | |
| .history-list { | |
| min-height: 0; | |
| margin: 16px 0 0; | |
| padding: 0; | |
| overflow-y: auto; | |
| list-style: none; | |
| border-bottom: 1px solid var(--line); | |
| } | |
| .history-item { | |
| display: grid; | |
| grid-template-columns: minmax(0, 1fr) 36px; | |
| align-items: center; | |
| border-top: 1px solid var(--line); | |
| } | |
| .history-open { | |
| min-width: 0; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 4px; | |
| padding: 14px 12px 14px 0; | |
| text-align: left; | |
| } | |
| .history-date, | |
| .history-meta { | |
| color: var(--muted); | |
| font-size: 11px; | |
| } | |
| .history-preview { | |
| display: -webkit-box; | |
| overflow: hidden; | |
| font-size: 14px; | |
| line-height: 1.45; | |
| -webkit-box-orient: vertical; | |
| -webkit-line-clamp: 2; | |
| } | |
| .history-delete { | |
| width: 36px; | |
| height: 36px; | |
| color: var(--muted); | |
| font-size: 20px; | |
| } | |
| dl { | |
| margin: 22px 0 0; | |
| } | |
| dl div, | |
| .setting-row { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 20px; | |
| padding: 13px 0; | |
| border-top: 1px solid var(--line); | |
| } | |
| dt, | |
| .setting-row strong { | |
| font-size: 13px; | |
| font-weight: 600; | |
| } | |
| dd { | |
| margin: 0; | |
| color: var(--muted); | |
| font-size: 13px; | |
| } | |
| .model-link { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 3px; | |
| text-decoration: none; | |
| transition: color 160ms ease; | |
| } | |
| .model-link:hover { | |
| color: var(--red); | |
| } | |
| .model-link svg { | |
| width: 15px; | |
| height: 15px; | |
| flex: 0 0 auto; | |
| } | |
| .setting-row span { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 3px; | |
| } | |
| .setting-row small { | |
| color: var(--muted); | |
| font-size: 11px; | |
| } | |
| .setting-row input { | |
| width: 38px; | |
| height: 20px; | |
| accent-color: var(--red); | |
| } | |
| @media (max-width: 620px) { | |
| body { | |
| background-size: 48px 48px; | |
| } | |
| .topbar { | |
| height: 72px; | |
| padding: 0 18px; | |
| } | |
| .circle-button { | |
| width: 42px; | |
| height: 42px; | |
| } | |
| main, | |
| footer { | |
| width: min(100% - 32px, 920px); | |
| } | |
| main { | |
| margin-top: 28px; | |
| } | |
| h1 { | |
| font-size: 35px; | |
| } | |
| .intro-copy { | |
| font-size: 14px; | |
| } | |
| .workspace { | |
| min-height: 450px; | |
| padding-top: 36px; | |
| } | |
| .stage { | |
| --stage-size: min(68vw, 260px); | |
| } | |
| .transcript-heading { | |
| align-items: center; | |
| } | |
| .segment { | |
| grid-template-columns: 58px minmax(0, 1fr); | |
| gap: 12px; | |
| } | |
| .segment-text { | |
| font-size: 16px; | |
| } | |
| footer { | |
| flex-direction: column; | |
| } | |
| } | |
| @media (prefers-reduced-motion: reduce) { | |
| *, | |
| *::before, | |
| *::after { | |
| scroll-behavior: auto ; | |
| transition-duration: 0.01ms ; | |
| animation-duration: 0.01ms ; | |
| } | |
| } | |
| /* Rye voice interaction scene */ | |
| body { | |
| min-height: 100dvh; | |
| overflow: hidden; | |
| background-image: | |
| linear-gradient(rgba(var(--ink-rgb), 0.025) 1px, transparent 1px), | |
| linear-gradient(90deg, rgba(var(--ink-rgb), 0.025) 1px, transparent 1px), | |
| linear-gradient(145deg, rgba(var(--white-rgb), 0.72), rgba(var(--gradient-end-rgb), 0.42)); | |
| background-size: 32px 32px, 32px 32px, 100% 100%; | |
| } | |
| .topbar { | |
| position: fixed; | |
| inset: 0 0 auto; | |
| z-index: 30; | |
| height: 84px; | |
| padding: 0 28px; | |
| } | |
| .circle-button { | |
| width: 40px; | |
| height: 40px; | |
| } | |
| main.scene { | |
| --orb-y: 50%; | |
| --scene-stage-size: 300px; | |
| --scene-orb-size: 270px; | |
| width: min(100%, 720px); | |
| height: 100dvh; | |
| min-height: 620px; | |
| margin: 0 auto; | |
| position: relative; | |
| } | |
| .scene .intro { | |
| position: absolute; | |
| left: 50%; | |
| bottom: calc(50% + 182px); | |
| width: min(100% - 48px, 540px); | |
| transform: translateX(-50%); | |
| opacity: 1; | |
| visibility: visible; | |
| transition: | |
| opacity 350ms ease, | |
| visibility 350ms ease, | |
| transform 450ms cubic-bezier(0.32, 0.72, 0, 1); | |
| } | |
| .scene.session-active .intro { | |
| opacity: 0; | |
| visibility: hidden; | |
| transform: translate(-50%, -16px); | |
| pointer-events: none; | |
| } | |
| .scene h1 { | |
| font-size: 36px; | |
| line-height: 1.12; | |
| } | |
| .scene .intro-copy { | |
| max-width: 460px; | |
| margin-top: 10px; | |
| font-size: 13px; | |
| line-height: 1.55; | |
| } | |
| .scene .workspace { | |
| min-height: 0; | |
| padding: 0; | |
| } | |
| .scene.conversation-visible { | |
| --orb-y: 30%; | |
| } | |
| .scene .model-status { | |
| position: absolute; | |
| z-index: 8; | |
| top: 88px; | |
| left: 50%; | |
| width: calc(100% - 48px); | |
| flex-wrap: nowrap; | |
| margin: 0; | |
| transform: translateX(-50%); | |
| transition: opacity 250ms ease; | |
| } | |
| .scene.session-active .model-status { | |
| opacity: 0; | |
| pointer-events: none; | |
| } | |
| .scene .progress-track { | |
| position: absolute; | |
| z-index: 8; | |
| top: 122px; | |
| left: 50%; | |
| margin: 0; | |
| transform: translateX(-50%); | |
| } | |
| .scene .mode-panel { | |
| display: contents; | |
| } | |
| .scene .stage { | |
| position: absolute; | |
| z-index: 5; | |
| top: var(--orb-y); | |
| left: 50%; | |
| width: var(--scene-stage-size); | |
| height: var(--scene-stage-size); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| margin: 0; | |
| transform: translate(-50%, -50%); | |
| transition: top 550ms cubic-bezier(0.32, 0.72, 0, 1); | |
| } | |
| .scene .stage::after { | |
| position: absolute; | |
| inset: -8px; | |
| border: 1px solid rgba(var(--ink-rgb), 0.08); | |
| border-radius: 50%; | |
| content: ""; | |
| pointer-events: none; | |
| transition: transform 250ms ease, opacity 250ms ease; | |
| } | |
| .scene .stage:not(:disabled):hover::after { | |
| transform: scale(1.025); | |
| } | |
| .scene .stage:not(:disabled) .orb { | |
| transition: transform 250ms ease, box-shadow 250ms ease; | |
| } | |
| .scene .stage:not(:disabled):hover .orb { | |
| transform: scale(1.035); | |
| } | |
| .scene .stage:not(:disabled):active .orb { | |
| transform: scale(0.97); | |
| } | |
| .scene .stage:focus-visible .orb { | |
| outline: 3px solid rgba(82, 39, 255, 0.28); | |
| outline-offset: 7px; | |
| } | |
| .scene .stage:disabled { | |
| opacity: 1; | |
| filter: none; | |
| } | |
| .scene #orb { | |
| position: relative; | |
| inset: auto; | |
| width: var(--scene-orb-size); | |
| height: var(--scene-orb-size); | |
| background: #8cbfff; | |
| filter: none; | |
| box-shadow: 0 18px 55px rgba(44, 25, 92, 0.18); | |
| } | |
| .scene .stage-copy { | |
| position: absolute; | |
| z-index: 6; | |
| top: calc(var(--orb-y) + var(--scene-orb-size) / 2 + 42px); | |
| left: 50%; | |
| width: min(100% - 40px, 420px); | |
| transform: translateX(-50%); | |
| text-align: center; | |
| transition: top 550ms cubic-bezier(0.32, 0.72, 0, 1); | |
| } | |
| .scene .stage-label { | |
| margin: 0; | |
| font-size: 13px; | |
| } | |
| .scene .stage-note { | |
| margin-top: 6px; | |
| font-size: 11px; | |
| } | |
| .scene .transcript { | |
| position: absolute; | |
| z-index: 2; | |
| top: calc(var(--orb-y) + var(--scene-orb-size) / 2 + 90px); | |
| bottom: 72px; | |
| left: 50%; | |
| width: min(560px, calc(100vw - 32px)); | |
| padding: 0 24px 8px; | |
| overflow-y: auto; | |
| scrollbar-width: none; | |
| border: 0; | |
| background: transparent; | |
| opacity: 0; | |
| visibility: hidden; | |
| transform: translate(-50%, 18px); | |
| transition: | |
| top 550ms cubic-bezier(0.32, 0.72, 0, 1), | |
| opacity 300ms ease, | |
| visibility 300ms ease, | |
| transform 420ms cubic-bezier(0.32, 0.72, 0, 1); | |
| -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 28px, #000 100%); | |
| mask-image: linear-gradient(to bottom, transparent 0, #000 28px, #000 100%); | |
| } | |
| .scene .transcript::-webkit-scrollbar { | |
| display: none; | |
| } | |
| .scene .transcript.open { | |
| opacity: 1; | |
| visibility: visible; | |
| transform: translate(-50%, 0); | |
| } | |
| .scene .transcript-heading { | |
| position: absolute; | |
| z-index: 18; | |
| bottom: 18px; | |
| left: 50%; | |
| width: auto; | |
| opacity: 0; | |
| visibility: hidden; | |
| transform: translate(-50%, 10px); | |
| transition: opacity 250ms ease, visibility 250ms ease, transform 350ms cubic-bezier(0.32, 0.72, 0, 1); | |
| } | |
| .scene.conversation-visible .transcript-heading { | |
| opacity: 1; | |
| visibility: visible; | |
| transform: translate(-50%, 0); | |
| } | |
| .scene .empty-transcript { | |
| display: none; | |
| } | |
| .scene .transcript-actions { | |
| gap: 5px; | |
| padding: 4px 8px; | |
| border: 1px solid var(--line); | |
| border-radius: 8px; | |
| background: rgba(var(--toolbar-rgb), 0.86); | |
| box-shadow: 0 8px 24px rgba(var(--ink-rgb), 0.07); | |
| backdrop-filter: blur(16px); | |
| -webkit-backdrop-filter: blur(16px); | |
| } | |
| .scene .segments { | |
| min-height: 100%; | |
| display: flex; | |
| flex-direction: column; | |
| justify-content: flex-end; | |
| gap: 18px; | |
| margin: 0; | |
| padding: 22px 0 16px; | |
| } | |
| .scene .segment { | |
| width: fit-content; | |
| max-width: 78%; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: flex-end; | |
| align-self: flex-end; | |
| gap: 3px; | |
| padding: 0; | |
| border: 0; | |
| color: rgba(27, 67, 77, 0.9); | |
| text-align: right; | |
| animation: message-in 220ms ease-out both; | |
| } | |
| .scene .segment-text { | |
| margin: 0; | |
| font-size: 15px; | |
| line-height: 1.55; | |
| overflow-wrap: anywhere; | |
| } | |
| .theme-button[aria-pressed="true"] { | |
| color: var(--ink); | |
| } | |
| :root[data-theme="dark"] .scene .segment { | |
| color: #b8f2e2; | |
| } | |
| :root[data-theme="dark"] .footer-chip--linkedin svg { | |
| color: #83bfff; | |
| } | |
| .reveal-word { | |
| display: inline-block; | |
| animation: reveal-word 420ms cubic-bezier(0.16, 0.7, 0.22, 1) both; | |
| } | |
| @keyframes message-in { | |
| from { opacity: 0; transform: translateY(5px); } | |
| to { opacity: 1; transform: translateY(0); } | |
| } | |
| @keyframes reveal-word { | |
| from { opacity: 0; filter: blur(1.5px); transform: translateY(2px); } | |
| to { opacity: 1; filter: blur(0); transform: translateY(0); } | |
| } | |
| body.session-active footer { | |
| opacity: 0; | |
| visibility: hidden; | |
| transform: translateY(10px); | |
| pointer-events: none; | |
| } | |
| footer { | |
| position: fixed; | |
| z-index: 12; | |
| right: 22px; | |
| bottom: 18px; | |
| left: 22px; | |
| width: auto; | |
| margin: 0; | |
| padding: 0; | |
| border: 0; | |
| transition: opacity 300ms ease, visibility 300ms ease, transform 400ms cubic-bezier(0.32, 0.72, 0, 1); | |
| } | |
| @media (max-width: 620px) { | |
| .topbar { | |
| height: 68px; | |
| padding: 0 18px; | |
| } | |
| .brand { | |
| font-size: 12px; | |
| } | |
| main.scene { | |
| --scene-stage-size: 218px; | |
| --scene-orb-size: 192px; | |
| min-height: 560px; | |
| } | |
| .scene.conversation-visible { | |
| --orb-y: 28%; | |
| } | |
| .scene .intro { | |
| bottom: calc(50% + 132px); | |
| width: calc(100% - 36px); | |
| } | |
| .scene h1 { | |
| font-size: 28px; | |
| } | |
| .scene .intro-copy { | |
| max-width: 340px; | |
| font-size: 12px; | |
| } | |
| .scene .model-status { | |
| top: 74px; | |
| } | |
| .scene .progress-track { | |
| top: 106px; | |
| } | |
| .scene .transcript { | |
| bottom: 68px; | |
| width: calc(100vw - 20px); | |
| padding: 0 12px 8px; | |
| } | |
| .scene .segments { | |
| padding-top: 18px; | |
| } | |
| .scene .segment { | |
| max-width: 84%; | |
| } | |
| .scene .segment-text { | |
| font-size: 14px; | |
| } | |
| footer { | |
| right: 18px; | |
| bottom: 14px; | |
| left: 18px; | |
| font-size: 9px; | |
| } | |
| .footer-links { | |
| justify-content: flex-start; | |
| } | |
| } | |
| @media (min-width: 621px) and (max-height: 800px) { | |
| .scene .model-status { | |
| top: 40px; | |
| } | |
| .scene .progress-track { | |
| top: 70px; | |
| } | |
| } | |
| @media (min-width: 621px) and (max-height: 700px) { | |
| main.scene { | |
| --scene-stage-size: 260px; | |
| --scene-orb-size: 235px; | |
| } | |
| .scene .intro { | |
| bottom: calc(50% + 144px); | |
| } | |
| } | |
| @media (max-width: 620px) and (max-height: 700px) { | |
| main.scene { | |
| --scene-stage-size: 174px; | |
| --scene-orb-size: 150px; | |
| } | |
| main.scene:not(.conversation-visible) { | |
| --orb-y: 55%; | |
| } | |
| .scene .intro { | |
| bottom: calc(45% + 105px); | |
| } | |
| } | |
| @media (max-width: 375px) { | |
| .footer-links { | |
| gap: 6px; | |
| } | |
| .footer-chip--linkedin { | |
| padding-inline: 9px; | |
| } | |
| .footer-chip--linkedin span { | |
| display: none; | |
| } | |
| } | |