cloudflare
tcp/443 tcp/80 tcp/8443
Open service 104.21.3.165:443 · research-study.org
2026-01-22 17:37
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 17:37:35 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Server-Timing: cfEdge;dur=12,cfOrigin;dur=0
Cache-Control: no-store
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=onXy3rgCvODMAH5WTHWXpnuu5s5UDa4StPGT5dk7aUIXY89Qwrz4ZAgMLogTLbR6Potz1HJdD%2F8Y7xOb%2BxSDjohCUI%2FAFPCG0XaM%2B1PIqKs%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20d1f51fc95f99-SIN
alt-svc: h3=":443"; ma=86400
Open service 172.67.130.242:443 · research-study.org
2026-01-22 17:37
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 17:37:35 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Server-Timing: cfEdge;dur=34,cfOrigin;dur=0
Cache-Control: no-store
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=30hpIvjfNQHIqQqrY7j7dRf3oVWAC3M753x9I4LCa%2FTxqwEPC0cIL1lCGxTK4sipwY9DSeua9h9PhP2xjtjER6k1XVx5QxXhFXfUmuRt5fj%2BvQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20d1f4aec0a03f-SIN
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3030::ac43:82f2:80 · research-study.org
2026-01-22 17:37
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 17:37:35 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Server-Timing: cfEdge;dur=16,cfOrigin;dur=0
Cache-Control: no-store
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=kJO80uOvaCfE4AWH4I4yRFUbVWJ6267dG5yzZVvI2OJkT01TcdKMFCXvhrtr7FhJFIe6xlgosJY%2BK4h1QNucUYO2SzvzkvEP5TNhhT2%2F2i3aKL54pNhBSW5391%2BkkQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20d1f49bf38ea1-YYZ
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3034::6815:3a5:80 · research-study.org
2026-01-22 17:37
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 17:37:35 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Server-Timing: cfEdge;dur=17,cfOrigin;dur=0
Cache-Control: no-store
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=eZrMf6W5hiF7N2rjXaFSty%2FJngLAJgoOKKT%2Fncr25zmtySMXNcEc0rKg0MtG%2Fh1bC5GU7uvHO575OCXNKanMDSWED1Bwy5cuGq5tNwPMFztohZucI%2Bq1vgoV75AGrw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20d1f45a304e35-SJC
alt-svc: h3=":443"; ma=86400
Open service 104.21.3.165:80 · research-study.org
2026-01-22 17:37
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 17:37:35 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 123503
Connection: close
Cache-Control: no-store
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=j%2FDSEQ9VFUpD79teBKQU5ePuGdW5%2F8XPYXDfidfg26kgIXs4py13XyoytwphyHUsqTOtZ7Aq8%2FFQamLhxUaCv5uIAKwCYrdIn9QNfwTxfDbEpw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20d1f43ac93383-FRA
alt-svc: h3=":443"; ma=86400
Page title: SurveyChat Voice (pilot)
<!doctype html>
<meta charset="utf-8" />
<title>SurveyChat Voice (pilot)</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style>
:root {
color-scheme: light;
--bg: #f7f7f8;
--border: #dedee3;
--assistant: #eef1f4;
--user: #ffffff;
--user-accent: #10a37f;
--assistant-accent: #343541;
--text: #1f2329;
--scroll-offset: 200px;
--keyboard-cover: 0px;
--vh: 1vh;
}
*{ box-sizing: border-box; }
body {
margin: 0;
background: var(--bg);
font: 16px/1.55 "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
color: var(--text);
}
.chat-shell {
min-height: 100vh;
min-height: calc(var(--vh, 1vh) * 100);
display: flex;
flex-direction: column;
align-items: center;
padding: 24px 16px 24px;
gap: 18px;
}
.chat-shell.blocked-token {
justify-content: center;
padding: 64px 16px;
}
.chat-shell.blocked-token .chat-header,
.chat-shell.blocked-token .study-banner,
.chat-shell.blocked-token .chat-frame,
.chat-shell.blocked-token #composer {
display: none !important;
}
.chat-shell.blocked-token .study-error {
display: block;
margin: 0 auto;
text-align: center;
font-size: 16px;
}
.chat-shell.blocked-token + #voice-ui,
.chat-shell.blocked-token ~ #prompt-overlay,
.chat-shell.blocked-token ~ #instructions,
.chat-shell.blocked-token ~ #consent,
.chat-shell.blocked-token ~ #completion-feedback,
.chat-shell.blocked-token ~ #audio-unlock,
.chat-shell.blocked-token ~ #mic-help,
.chat-shell.blocked-token ~ #error-overlay {
display: none !important;
}
@supports (min-height: 100dvh) {
.chat-shell { min-height: calc(var(--vh, 1vh) * 100); }
}
.chat-frame {
width: 100%;
max-width: 760px;
flex: 1 1 auto;
display: flex;
flex-direction: column;
overflow: hidden;
}
.chat-header {
width: 100%;
max-width: 760px;
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 6px;
}
.chat-header h1 {
margin: 0;
font-size: 16px;
font-weight: 600;
}
.chat-header p { display: none; }
.study-banner {
width: 100%;
max-width: 760px;
background: #f0f9ff;
border: 1px solid #bfdbfe;
border-radius: 12px;
padding: 16px 18px;
color: #0f172a;
display: flex;
flex-direction: column;
gap: 8px;
}
.study-banner.hidden { display: none; }
.study-banner h2 {
margin: 0;
font-size: 16px;
font-weight: 600;
}
.study-banner p { margin: 0; font-size: 14px; }
.study-error {
width: 100%;
max-width: 760px;
background: #fee2e2;
border: 1px solid #fca5a5;
border-radius: 12px;
color: #7f1d1d;
padding: 12px 16px;
font-size: 14px;
}
.study-error.hidden { display: none; }
.chat-header .brand-dot {
width: 36px;
height: 36px;
border-radius: 50%;
background: linear-gradient(135deg, #10a37f, #0d8c91);
}
#log {
display: flex;
flex-direction: column;
gap: 16px;
min-height: 0;
flex: 1 1 auto;
overflow-y: auto;
padding-bottom: calc(var(--scroll-offset) + env(safe-area-inset-bottom, 0));
word-wrap: break-word;
overflow-wrap: anywhere;
scroll-behavior: smooth;
scroll-padding-bottom: calc(var(--scroll-offset) + env(safe-area-inset-bottom, 0));
overscroll-behavior: contain;
-webkit-overflow-scrolling: touch;
}
#log::-webkit-scrollbar { width: 8px; }
#log::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.15); border-radius: 999px; }
#scroll-anchor {
width: 100%;
height: 1px;
min-height: 1px;
margin-top: calc(var(--scroll-offset) + 12px);
pointer-events: none;
flex-shrink: 0;
}
.u, .a {
padding: 16px 18px;
border-radius: 18px;
background: var(--assistant);
color: #2c2d33;
line-height: 1.55;
scroll-margin-bottom: calc(var(--scroll-offset) + 16px);
}
.u {
background: var(--user);
box-shadow: 0 2px 14px rgba(15, 23, 42, 0.04);
}
.thinking { opacity: 0.6; }
#composer {
width:
Open service 2606:4700:3034::6815:3a5:443 · research-study.org
2026-01-22 17:37
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 17:37:35 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 123503
Connection: close
Cache-Control: no-store
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=bJ6tBs4WLKJt8gM1K6j%2FAK%2FyA75Kx4PkB7EWT24ydKLEqb%2F0ARzcdDiU0D5LKZsOB%2FMppD1ABo5oQ3wFXywZJxTKZB9e49wG7FoCyZ4xsV1ArVA5aW1%2BNyUbEENz6w%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20d1f468975016-LHR
alt-svc: h3=":443"; ma=86400
Page title: SurveyChat Voice (pilot)
<!doctype html>
<meta charset="utf-8" />
<title>SurveyChat Voice (pilot)</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style>
:root {
color-scheme: light;
--bg: #f7f7f8;
--border: #dedee3;
--assistant: #eef1f4;
--user: #ffffff;
--user-accent: #10a37f;
--assistant-accent: #343541;
--text: #1f2329;
--scroll-offset: 200px;
--keyboard-cover: 0px;
--vh: 1vh;
}
*{ box-sizing: border-box; }
body {
margin: 0;
background: var(--bg);
font: 16px/1.55 "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
color: var(--text);
}
.chat-shell {
min-height: 100vh;
min-height: calc(var(--vh, 1vh) * 100);
display: flex;
flex-direction: column;
align-items: center;
padding: 24px 16px 24px;
gap: 18px;
}
.chat-shell.blocked-token {
justify-content: center;
padding: 64px 16px;
}
.chat-shell.blocked-token .chat-header,
.chat-shell.blocked-token .study-banner,
.chat-shell.blocked-token .chat-frame,
.chat-shell.blocked-token #composer {
display: none !important;
}
.chat-shell.blocked-token .study-error {
display: block;
margin: 0 auto;
text-align: center;
font-size: 16px;
}
.chat-shell.blocked-token + #voice-ui,
.chat-shell.blocked-token ~ #prompt-overlay,
.chat-shell.blocked-token ~ #instructions,
.chat-shell.blocked-token ~ #consent,
.chat-shell.blocked-token ~ #completion-feedback,
.chat-shell.blocked-token ~ #audio-unlock,
.chat-shell.blocked-token ~ #mic-help,
.chat-shell.blocked-token ~ #error-overlay {
display: none !important;
}
@supports (min-height: 100dvh) {
.chat-shell { min-height: calc(var(--vh, 1vh) * 100); }
}
.chat-frame {
width: 100%;
max-width: 760px;
flex: 1 1 auto;
display: flex;
flex-direction: column;
overflow: hidden;
}
.chat-header {
width: 100%;
max-width: 760px;
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 6px;
}
.chat-header h1 {
margin: 0;
font-size: 16px;
font-weight: 600;
}
.chat-header p { display: none; }
.study-banner {
width: 100%;
max-width: 760px;
background: #f0f9ff;
border: 1px solid #bfdbfe;
border-radius: 12px;
padding: 16px 18px;
color: #0f172a;
display: flex;
flex-direction: column;
gap: 8px;
}
.study-banner.hidden { display: none; }
.study-banner h2 {
margin: 0;
font-size: 16px;
font-weight: 600;
}
.study-banner p { margin: 0; font-size: 14px; }
.study-error {
width: 100%;
max-width: 760px;
background: #fee2e2;
border: 1px solid #fca5a5;
border-radius: 12px;
color: #7f1d1d;
padding: 12px 16px;
font-size: 14px;
}
.study-error.hidden { display: none; }
.chat-header .brand-dot {
width: 36px;
height: 36px;
border-radius: 50%;
background: linear-gradient(135deg, #10a37f, #0d8c91);
}
#log {
display: flex;
flex-direction: column;
gap: 16px;
min-height: 0;
flex: 1 1 auto;
overflow-y: auto;
padding-bottom: calc(var(--scroll-offset) + env(safe-area-inset-bottom, 0));
word-wrap: break-word;
overflow-wrap: anywhere;
scroll-behavior: smooth;
scroll-padding-bottom: calc(var(--scroll-offset) + env(safe-area-inset-bottom, 0));
overscroll-behavior: contain;
-webkit-overflow-scrolling: touch;
}
#log::-webkit-scrollbar { width: 8px; }
#log::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.15); border-radius: 999px; }
#scroll-anchor {
width: 100%;
height: 1px;
min-height: 1px;
margin-top: calc(var(--scroll-offset) + 12px);
pointer-events: none;
flex-shrink: 0;
}
.u, .a {
padding: 16px 18px;
border-radius: 18px;
background: var(--assistant);
color: #2c2d33;
line-height: 1.55;
scroll-margin-bottom: calc(var(--scroll-offset) + 16px);
}
.u {
background: var(--user);
box-shadow: 0 2px 14px rgba(15, 23, 42, 0.04);
}
.thinking { opacity: 0.6; }
#composer {
width:
Open service 172.67.130.242:80 · research-study.org
2026-01-22 17:37
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 17:37:35 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 123503
Connection: close
Cache-Control: no-store
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=TkDMPreEoyuH3Y9o6jvZY0E%2B%2BZfX4POEy7ZYzSlqsU4rbTo2bEFtp3Sz6vFd9HUNUf2NPe6%2B5cxOxPqt9Di6m7SoNF9C6b7yKI45fki%2BpIbG8g%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20d1f4b9dbdbf7-FRA
alt-svc: h3=":443"; ma=86400
Page title: SurveyChat Voice (pilot)
<!doctype html>
<meta charset="utf-8" />
<title>SurveyChat Voice (pilot)</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style>
:root {
color-scheme: light;
--bg: #f7f7f8;
--border: #dedee3;
--assistant: #eef1f4;
--user: #ffffff;
--user-accent: #10a37f;
--assistant-accent: #343541;
--text: #1f2329;
--scroll-offset: 200px;
--keyboard-cover: 0px;
--vh: 1vh;
}
*{ box-sizing: border-box; }
body {
margin: 0;
background: var(--bg);
font: 16px/1.55 "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
color: var(--text);
}
.chat-shell {
min-height: 100vh;
min-height: calc(var(--vh, 1vh) * 100);
display: flex;
flex-direction: column;
align-items: center;
padding: 24px 16px 24px;
gap: 18px;
}
.chat-shell.blocked-token {
justify-content: center;
padding: 64px 16px;
}
.chat-shell.blocked-token .chat-header,
.chat-shell.blocked-token .study-banner,
.chat-shell.blocked-token .chat-frame,
.chat-shell.blocked-token #composer {
display: none !important;
}
.chat-shell.blocked-token .study-error {
display: block;
margin: 0 auto;
text-align: center;
font-size: 16px;
}
.chat-shell.blocked-token + #voice-ui,
.chat-shell.blocked-token ~ #prompt-overlay,
.chat-shell.blocked-token ~ #instructions,
.chat-shell.blocked-token ~ #consent,
.chat-shell.blocked-token ~ #completion-feedback,
.chat-shell.blocked-token ~ #audio-unlock,
.chat-shell.blocked-token ~ #mic-help,
.chat-shell.blocked-token ~ #error-overlay {
display: none !important;
}
@supports (min-height: 100dvh) {
.chat-shell { min-height: calc(var(--vh, 1vh) * 100); }
}
.chat-frame {
width: 100%;
max-width: 760px;
flex: 1 1 auto;
display: flex;
flex-direction: column;
overflow: hidden;
}
.chat-header {
width: 100%;
max-width: 760px;
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 6px;
}
.chat-header h1 {
margin: 0;
font-size: 16px;
font-weight: 600;
}
.chat-header p { display: none; }
.study-banner {
width: 100%;
max-width: 760px;
background: #f0f9ff;
border: 1px solid #bfdbfe;
border-radius: 12px;
padding: 16px 18px;
color: #0f172a;
display: flex;
flex-direction: column;
gap: 8px;
}
.study-banner.hidden { display: none; }
.study-banner h2 {
margin: 0;
font-size: 16px;
font-weight: 600;
}
.study-banner p { margin: 0; font-size: 14px; }
.study-error {
width: 100%;
max-width: 760px;
background: #fee2e2;
border: 1px solid #fca5a5;
border-radius: 12px;
color: #7f1d1d;
padding: 12px 16px;
font-size: 14px;
}
.study-error.hidden { display: none; }
.chat-header .brand-dot {
width: 36px;
height: 36px;
border-radius: 50%;
background: linear-gradient(135deg, #10a37f, #0d8c91);
}
#log {
display: flex;
flex-direction: column;
gap: 16px;
min-height: 0;
flex: 1 1 auto;
overflow-y: auto;
padding-bottom: calc(var(--scroll-offset) + env(safe-area-inset-bottom, 0));
word-wrap: break-word;
overflow-wrap: anywhere;
scroll-behavior: smooth;
scroll-padding-bottom: calc(var(--scroll-offset) + env(safe-area-inset-bottom, 0));
overscroll-behavior: contain;
-webkit-overflow-scrolling: touch;
}
#log::-webkit-scrollbar { width: 8px; }
#log::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.15); border-radius: 999px; }
#scroll-anchor {
width: 100%;
height: 1px;
min-height: 1px;
margin-top: calc(var(--scroll-offset) + 12px);
pointer-events: none;
flex-shrink: 0;
}
.u, .a {
padding: 16px 18px;
border-radius: 18px;
background: var(--assistant);
color: #2c2d33;
line-height: 1.55;
scroll-margin-bottom: calc(var(--scroll-offset) + 16px);
}
.u {
background: var(--user);
box-shadow: 0 2px 14px rgba(15, 23, 42, 0.04);
}
.thinking { opacity: 0.6; }
#composer {
width:
Open service 2606:4700:3034::6815:3a5:8443 · research-study.org
2026-01-22 17:37
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 17:37:35 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 123503
Connection: close
Cache-Control: no-store
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=71UW6DkbUkAg3zsQ3vozHqGVB3QIg%2BTq5JuhqpP1Ujoq7KKVekJrxng27AdHqN9TbqQ%2BlnMTrW8DCcGJu7p18AluiolzpIS1kdx%2FABiNGx%2Fc8wP7ikvynyS93yvvhQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20d1f42dced835-AMS
alt-svc: h3=":8443"; ma=86400
Page title: SurveyChat Voice (pilot)
<!doctype html>
<meta charset="utf-8" />
<title>SurveyChat Voice (pilot)</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style>
:root {
color-scheme: light;
--bg: #f7f7f8;
--border: #dedee3;
--assistant: #eef1f4;
--user: #ffffff;
--user-accent: #10a37f;
--assistant-accent: #343541;
--text: #1f2329;
--scroll-offset: 200px;
--keyboard-cover: 0px;
--vh: 1vh;
}
*{ box-sizing: border-box; }
body {
margin: 0;
background: var(--bg);
font: 16px/1.55 "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
color: var(--text);
}
.chat-shell {
min-height: 100vh;
min-height: calc(var(--vh, 1vh) * 100);
display: flex;
flex-direction: column;
align-items: center;
padding: 24px 16px 24px;
gap: 18px;
}
.chat-shell.blocked-token {
justify-content: center;
padding: 64px 16px;
}
.chat-shell.blocked-token .chat-header,
.chat-shell.blocked-token .study-banner,
.chat-shell.blocked-token .chat-frame,
.chat-shell.blocked-token #composer {
display: none !important;
}
.chat-shell.blocked-token .study-error {
display: block;
margin: 0 auto;
text-align: center;
font-size: 16px;
}
.chat-shell.blocked-token + #voice-ui,
.chat-shell.blocked-token ~ #prompt-overlay,
.chat-shell.blocked-token ~ #instructions,
.chat-shell.blocked-token ~ #consent,
.chat-shell.blocked-token ~ #completion-feedback,
.chat-shell.blocked-token ~ #audio-unlock,
.chat-shell.blocked-token ~ #mic-help,
.chat-shell.blocked-token ~ #error-overlay {
display: none !important;
}
@supports (min-height: 100dvh) {
.chat-shell { min-height: calc(var(--vh, 1vh) * 100); }
}
.chat-frame {
width: 100%;
max-width: 760px;
flex: 1 1 auto;
display: flex;
flex-direction: column;
overflow: hidden;
}
.chat-header {
width: 100%;
max-width: 760px;
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 6px;
}
.chat-header h1 {
margin: 0;
font-size: 16px;
font-weight: 600;
}
.chat-header p { display: none; }
.study-banner {
width: 100%;
max-width: 760px;
background: #f0f9ff;
border: 1px solid #bfdbfe;
border-radius: 12px;
padding: 16px 18px;
color: #0f172a;
display: flex;
flex-direction: column;
gap: 8px;
}
.study-banner.hidden { display: none; }
.study-banner h2 {
margin: 0;
font-size: 16px;
font-weight: 600;
}
.study-banner p { margin: 0; font-size: 14px; }
.study-error {
width: 100%;
max-width: 760px;
background: #fee2e2;
border: 1px solid #fca5a5;
border-radius: 12px;
color: #7f1d1d;
padding: 12px 16px;
font-size: 14px;
}
.study-error.hidden { display: none; }
.chat-header .brand-dot {
width: 36px;
height: 36px;
border-radius: 50%;
background: linear-gradient(135deg, #10a37f, #0d8c91);
}
#log {
display: flex;
flex-direction: column;
gap: 16px;
min-height: 0;
flex: 1 1 auto;
overflow-y: auto;
padding-bottom: calc(var(--scroll-offset) + env(safe-area-inset-bottom, 0));
word-wrap: break-word;
overflow-wrap: anywhere;
scroll-behavior: smooth;
scroll-padding-bottom: calc(var(--scroll-offset) + env(safe-area-inset-bottom, 0));
overscroll-behavior: contain;
-webkit-overflow-scrolling: touch;
}
#log::-webkit-scrollbar { width: 8px; }
#log::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.15); border-radius: 999px; }
#scroll-anchor {
width: 100%;
height: 1px;
min-height: 1px;
margin-top: calc(var(--scroll-offset) + 12px);
pointer-events: none;
flex-shrink: 0;
}
.u, .a {
padding: 16px 18px;
border-radius: 18px;
background: var(--assistant);
color: #2c2d33;
line-height: 1.55;
scroll-margin-bottom: calc(var(--scroll-offset) + 16px);
}
.u {
background: var(--user);
box-shadow: 0 2px 14px rgba(15, 23, 42, 0.04);
}
.thinking { opacity: 0.6; }
#composer {
width:
Open service 172.67.130.242:8443 · research-study.org
2026-01-22 17:37
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 17:37:35 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Server-Timing: cfEdge;dur=19,cfOrigin;dur=0
Cache-Control: no-store
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=CzZ1wl2KpJzTn%2Fox7hq2R9fMSYQgJlGfIkqKFjk%2B7a%2BtsfADEUqvIxM%2FDtgSPNjB0OVvY4sESh9er1o7xx2N1qMjDA0PEyr2iv7X5C88o%2FYWtA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20d1f3d83e98ce-SJC
alt-svc: h3=":8443"; ma=86400
Open service 2606:4700:3030::ac43:82f2:8443 · research-study.org
2026-01-22 17:37
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 17:37:35 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Server-Timing: cfEdge;dur=9,cfOrigin;dur=0
Cache-Control: no-store
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=OgAG8NLBwigr%2Bte84FPC1pwwN%2FeCjdYz9YkNGx6SQHI2Jl2LBtCE%2FuDvmRXiNcNYyUS0xM8rjxHjNmZymqp1F%2FUsofqY6zTLhF%2BG7jyJ3H68hrPtBobU0IfFg6J7RA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20d1f3cf7fab5a-YYZ
alt-svc: h3=":8443"; ma=86400
Open service 2606:4700:3030::ac43:82f2:443 · research-study.org
2026-01-22 17:37
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 17:37:35 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Server-Timing: cfEdge;dur=18,cfOrigin;dur=0
Cache-Control: no-store
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=BQfm6l5OLD6EN8sZa3RcFkW5fG0wwjJgt6tBaFzDEPdf1KbnsrSAdvK4XRtLF61ujGJzNdjnht%2B9Uoju7Cdaou1gjT4w4xiEbpj9mcfQExM60u3EdmIS9%2Bcgs3jE2w%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20d1f36daa1526-EWR
alt-svc: h3=":443"; ma=86400
Open service 104.21.3.165:8443 · research-study.org
2026-01-22 17:37
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 17:37:35 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Server-Timing: cfEdge;dur=25,cfOrigin;dur=0
Cache-Control: no-store
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=B3oRWDqs3Hno021s24Ebc6SiPivle6SDMt5foTe1FDHSeGTAWlNlG7PM1tZu5pix0FW%2F7bWBnf1UFGBKi%2F3fL9cRRjDSAnNVx7hg48yqcErAPw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20d1f36e57983e-EWR
alt-svc: h3=":8443"; ma=86400