:root {
  font-family: 'Roboto', Arial, sans-serif;
  font-synthesis: none;
  color-scheme: light;
  --orange: #ff5900;
  --orange-hover: #e65000;
  --text: #000000;
  --surface: #ffffff;
  --line: #e7e7e7;
  --strong-line: #d5d5d5;
  --muted: #666666;
  --hover: #f4f4f4;
  --accent-surface: #fff0e8;
  color: var(--text);
  background: var(--surface);
}
:root[data-theme='dark'] {
  color-scheme: dark;
  --text: #ffffff;
  --surface: #0a0a0a;
  --line: #292929;
  --strong-line: #3d3d3d;
  --muted: #aaaaaa;
  --hover: #202020;
  --accent-surface: #29180e;
}
* { box-sizing: border-box; }
body { margin: 0; height: 100dvh; min-height: 480px; isolation: isolate; }
button, a, textarea { -webkit-tap-highlight-color: transparent; }
button, textarea { font: inherit; }
button { cursor: pointer; color: inherit; }
a { color: inherit; text-decoration: none; }
svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.svg-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
:focus-visible { outline: 2px solid var(--orange); outline-offset: 4px; }
.ambient-glow { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.ambient-glow::before {
  content: ''; position: absolute; width: min(800px, 130vw); aspect-ratio: 1;
  left: 50%; top: 35%;
  background: radial-gradient(ellipse at center, #ff5900 0%, #ff590080 22%, #ff590020 48%, transparent 70%);
  opacity: .07; transform: translate(-50%, -50%) scale(.92);
  animation: breathe 11s ease-in-out infinite; will-change: transform, opacity;
}
:root[data-theme='dark'] .ambient-glow::before { animation-name: breathe-dark; }
@keyframes breathe { 0%, 100% { opacity: .065; transform: translate(-50%, -50%) scale(.92); } 50% { opacity: .14; transform: translate(-50%, -50%) scale(1.08); } }
@keyframes breathe-dark { 0%, 100% { opacity: .09; transform: translate(-50%, -50%) scale(.92); } 50% { opacity: .18; transform: translate(-50%, -50%) scale(1.08); } }
.page-hidden .ambient-glow::before { animation-play-state: paused; }
.workspace { height: 100%; width: 100%; display: flex; flex-direction: column; min-width: 0; }
.topbar { display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 27px 20px 12px; flex-shrink: 0; }
.university-name { font-size: 11px; font-weight: 600; letter-spacing: 2px; }
.topbar-actions { display: flex; align-items: center; justify-content: center; gap: 20px; }
.quiet-button, .theme-toggle { display: flex; align-items: center; justify-content: center; gap: 7px; padding: 7px 9px; min-height: 36px; background: transparent; border: 0; border-radius: 6px; font-size: 11px; color: var(--muted); }
.quiet-button:hover, .theme-toggle:hover { background: var(--hover); color: var(--text); }
.quiet-button svg, .theme-toggle svg { width: 15px; height: 15px; }
.quiet-button:disabled { opacity: .5; cursor: default; }
main { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; display: flex; flex-direction: column; scroll-behavior: smooth; }
.welcome { width: min(100% - 48px, 940px); margin: auto; padding: 32px 0 38px; text-align: center; }
.chatbot-symbol { width: 42px; height: 42px; display: grid; place-items: center; color: var(--orange); margin: 0 auto 18px; }
.chatbot-symbol svg { width: 32px; height: 32px; stroke-width: 1.5; }
.eyebrow { font-size: 9px; line-height: 1.7; letter-spacing: 1.6px; font-weight: 500; color: var(--muted); margin: 0 0 17px; }
h1 { font-family: 'Zilla Slab', Georgia, serif; font-weight: 700; text-transform: uppercase; letter-spacing: -1px; font-size: clamp(32px, 3.6vw, 46px); line-height: 1.05; margin: 0; }
h1 span { color: var(--orange); }
.intro { font-size: 14px; line-height: 1.8; color: var(--muted); margin: 18px 0 20px; }
.composer-area { width: min(100% - 48px, 740px); margin: 0 auto; padding: 0 0 24px; flex-shrink: 0; }
.composer { border: 1px solid var(--strong-line); border-radius: 14px; background: var(--surface); padding: 17px 18px 12px; }
.composer:focus-within { border-color: var(--orange); }
.composer textarea { width: 100%; display: block; border: 0; resize: none; background: transparent; color: var(--text); line-height: 1.5; font-size: 15px; max-height: 144px; padding: 0; outline: none; min-height: 25px; }
.composer textarea::placeholder { color: var(--muted); text-align: center; }
.composer textarea:focus-visible { outline: none; }
.composer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; }
.composer-bottom>span { font-size: 10px; color: var(--muted); padding-left: 35px; flex: 1; text-align: center; }
.send { display: grid; place-items: center; background: var(--orange); color: #000000; border: 0; border-radius: 8px; width: 35px; height: 35px; flex-shrink: 0; transition: background .15s; }
.send:hover { background: var(--orange-hover); }
.send:disabled { background: var(--hover); color: var(--muted); cursor: default; }
.send svg { width: 19px; }
.stop-square { width: 10px; height: 10px; background: currentColor; border-radius: 1px; }
.disclaimer { font-size: 10px; color: var(--muted); text-align: center; margin: 12px 0 0; line-height: 1.5; }
.messages { width: min(100% - 48px, 740px); margin: 0 auto; padding: 28px 0 24px; }
.message { padding: 0 0 30px; font-size: 14px; line-height: 1.85; overflow-wrap: anywhere; }
.message.user { display: flex; justify-content: flex-end; }
.user .message-content { background: var(--hover); border-radius: 14px 14px 3px 14px; padding: 12px 18px; max-width: 85%; white-space: pre-wrap; }
.message-heading { display: flex; align-items: center; gap: 9px; font-size: 12px; font-weight: 600; margin-bottom: 10px; }
.message-heading svg { color: var(--orange); width: 20px; height: 20px; }
.message-content p { margin: 0 0 12px; }
.message-content p:last-child { margin-bottom: 0; }
.message-content ul, .message-content ol { padding-left: 22px; }
.message-content h1, .message-content h2, .message-content h3, .message-content h4 { font-family: 'Zilla Slab', Georgia, serif; font-weight: 700; text-transform: none; font-size: 18px; line-height: 1.5; letter-spacing: 0; margin: 20px 0 8px; }
.message-content a { color: var(--text); text-decoration: underline; text-underline-offset: 3px; }
.message-content a:hover { color: var(--orange); }
.message-content pre { overflow-x: auto; background: var(--hover); padding: 14px; border-radius: 6px; }
.message-content code { font-size: 12px; background: var(--hover); }
.message-content table { display: block; overflow: auto; border-collapse: collapse; max-width: 100%; }
.message-content th, .message-content td { border: 1px solid var(--line); padding: 8px; text-align: left; }
.message-content blockquote { border-left: 2px solid var(--orange); padding-left: 15px; margin-left: 0; color: var(--muted); }
.typing { color: var(--muted); font-size: 13px; }
.typing:after { content: '…'; animation: pulse 1.4s infinite; }
.message-actions { margin-top: 10px; display: flex; gap: 8px; }
.text-button { border: 0; background: none; color: var(--muted); font-size: 11px; padding: 5px 0; margin-right: 12px; }
.text-button:hover { color: var(--orange); }
.error { font-size: 12px; line-height: 1.6; color: var(--text); background: var(--accent-surface); border: 1px solid var(--orange); border-radius: 8px; padding: 12px 14px; margin-bottom: 10px; }
@keyframes pulse { 50% { opacity: .35; } }
@media(max-height: 780px) and (min-width: 761px) {
  .topbar { padding-top: 18px; gap: 10px; }
  .welcome { padding: 18px 0 24px; }
  .chatbot-symbol { margin-bottom: 15px; height: 40px; }
  .intro { margin: 16px 0 24px; }
  h1 { font-size: 46px; }
  .composer-area { padding-bottom: 16px; }
}
@media(max-width: 760px) {
  body { min-height: 0; }
  .topbar { padding: 20px 16px 8px; gap: 10px; }
  .university-name { font-size: 10px; letter-spacing: 1.7px; }
  .welcome { width: calc(100% - 32px); padding: 22px 0 28px; }
  .chatbot-symbol { margin-bottom: 20px; width: 42px; height: 42px; }
  .chatbot-symbol svg { width: 34px; height: 34px; }
  h1 { font-size: clamp(30px, 8.5vw, 40px); letter-spacing: -.5px; }
  .eyebrow { font-size: 8px; letter-spacing: 1px; }
  .intro { font-size: 13px; margin: 18px 0 24px; }
  .composer-area { width: calc(100% - 32px); padding-bottom: max(14px, env(safe-area-inset-bottom)); }
  .composer { padding: 14px 14px 10px; }
  .composer textarea { font-size: 16px; }
  .composer-bottom>span { font-size: 9px; }
  .disclaimer { font-size: 9px; max-width: 300px; margin: 10px auto 0; }
  .messages { width: calc(100% - 40px); padding-top: 24px; }
  .user .message-content { max-width: 92%; }
}
@media(prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .ambient-glow::before { opacity: .08; will-change: auto; }
}

.university-name { display: block; line-height: 0; }
.university-name img { display: block; width: 124px; height: auto; }
.topbar { padding-top: 20px; gap: 10px; }

/* A quiet constellation of topics around the central question. */
:root[data-theme='dark'] { --surface:#050505; --accent-surface:#241308; }
.topbar { position:relative; z-index:2; }
.welcome { position:relative; width:min(100% - 72px,1240px); height:clamp(470px,62vh,650px); min-height:470px; margin:auto; padding:0; flex-shrink:0; }
.welcome-core { position:absolute; z-index:2; left:50%; top:51%; transform:translate(-50%,-50%); width:min(520px,48%); text-align:center; pointer-events:none; }
.chatbot-symbol { width:44px; height:44px; margin:0 auto 23px; }
.chatbot-symbol svg { width:34px; height:34px; }
.eyebrow { font-size:9px; letter-spacing:2px; margin-bottom:19px; }
h1 { font-size:clamp(38px,4.4vw,62px); line-height:1.02; letter-spacing:-1.3px; }
.topics-hint { margin:23px 0 0; color:var(--muted); font-size:12px; line-height:1.6; }
.topic-cloud { position:absolute; inset:0; list-style:none; margin:0; padding:0; }
.topic-cloud li { position:absolute; left:var(--x); top:var(--y); animation:orbit-word 13s ease-in-out infinite; animation-delay:calc(var(--i) * -.91s); transform:translate(-50%,-50%); }
.topic-cloud li:nth-child(3n) { animation-duration:17s; }
.topic-cloud li:nth-child(4n) { animation-duration:11s; }
.topic-cloud li:hover, .topic-cloud li:focus-within, .page-hidden .topic-cloud li { animation-play-state:paused; z-index:3; }
.topic-button { display:block; min-height:44px; padding:10px 9px; white-space:nowrap; border:1px solid transparent; border-radius:8px; background:transparent; color:var(--muted); font-size:var(--word-size,14px); line-height:1.5; font-weight:400; transition:transform .24s cubic-bezier(.2,.8,.2,1), color .18s, background .18s, border-color .18s; transform-origin:center; }
.topic-cloud li:nth-child(4n+1) .topic-button { color:var(--text); font-weight:500; }
.topic-cloud li:nth-child(7n+2) .topic-button { color:var(--orange); }
.topic-button::before { content:''; display:inline-block; width:3px; height:3px; border-radius:50%; background:var(--orange); margin-right:9px; vertical-align:middle; opacity:.55; }
.topic-button:hover, .topic-button:focus-visible { color:var(--text); background:var(--accent-surface); border-color:#ff590050; }
.topic-button:disabled { cursor:default; opacity:.5; }
@keyframes orbit-word { 0%,100% { transform:translate(calc(-50% - 3px),calc(-50% + 4px)); } 50% { transform:translate(calc(-50% + 3px),calc(-50% - 4px)); } }
.ambient-glow::before { width:min(1000px,110vw); left:34%; top:44%; background:radial-gradient(ellipse at center,#ff5900 0%,#ff590070 24%,#ff590018 48%,transparent 70%); animation:ember-left 18s ease-in-out infinite; opacity:.1; }
.ambient-glow::after { content:''; position:absolute; width:min(850px,100vw); aspect-ratio:1; left:74%; top:58%; background:radial-gradient(ellipse at center,#ff5900 0%,#ff590045 30%,transparent 68%); opacity:.07; animation:ember-right 22s ease-in-out infinite; will-change:transform,opacity; }
:root[data-theme='dark'] .ambient-glow::before { animation-name:ember-left; }
:root[data-theme='dark'] .ambient-glow::after { opacity:.1; }
@keyframes ember-left { 0%,100% { opacity:.1; transform:translate(-50%,-50%) scale(.9,.75) rotate(-25deg); } 50% { opacity:.2; transform:translate(-44%,-47%) scale(1.1,.85) rotate(-15deg); } }
@keyframes ember-right { 0%,100% { opacity:.06; transform:translate(-50%,-50%) scale(.9,1.1); } 50% { opacity:.16; transform:translate(-54%,-55%) scale(1.12,.9); } }
.particles { position:fixed; inset:0; z-index:-1; pointer-events:none; overflow:hidden; }
.particles span { position:absolute; left:var(--x); top:var(--y); width:2px; height:2px; border-radius:50%; background:#ff5900; box-shadow:0 0 8px #ff590070; opacity:.3; animation:drift-particle var(--d) ease-in-out infinite; animation-delay:var(--delay); }
.particles span:nth-child(3n) { width:3px; height:3px; }
@keyframes drift-particle { 0%,100% { opacity:.12; transform:translate3d(0,14px,0); } 50% { opacity:.55; transform:translate3d(8px,-14px,0); } }
.page-hidden .ambient-glow::after, .page-hidden .particles span { animation-play-state:paused; }
.composer-area { position:relative; z-index:2; }
@media(min-width:901px) and (max-width:1150px) { .topic-button { font-size:clamp(12px,calc(var(--word-size) * .9),20px); padding-inline:5px; } h1 { font-size:44px; } }
@media(max-width:900px) {
  .welcome { width:calc(100% - 32px); max-width:620px; height:auto; min-height:0; margin:12px auto 30px; }
  .welcome-core { top:269px; width:100%; max-width:450px; }
  .welcome-core h1 { font-size:clamp(33px,7.6vw,49px); }
  .welcome-core .chatbot-symbol { margin-bottom:15px; width:32px; height:32px; }
  .welcome-core .chatbot-symbol svg { width:29px; height:29px; }
  .welcome-core .eyebrow { font-size:8px; letter-spacing:1.2px; margin-bottom:14px; }
  .welcome-core .topics-hint { font-size:11px; margin-top:18px; }
  .topic-cloud { position:relative; display:grid; grid-template-columns:1fr 1fr; grid-template-rows:repeat(3,48px) 210px repeat(11,48px); gap:8px 0; padding:0 3px; }
  .topic-cloud li { position:relative; left:auto; top:auto; grid-row:var(--row); grid-column:var(--col); display:flex; align-items:center; justify-content:center; transform:none; animation-name:orbit-mobile; }
  .topic-cloud li:last-child { grid-column:1/-1; }
  .topic-button { white-space:normal; padding:8px 5px; font-size:clamp(12px,calc(var(--word-size) * .78),17px); text-align:center; }
  .topic-button::before { margin-right:6px; }
  .ambient-glow::before { width:800px; left:25%; top:38%; }
  .ambient-glow::after { width:650px; left:85%; top:62%; }
}
@keyframes orbit-mobile { 0%,100% { transform:translateY(3px); } 50% { transform:translateY(-3px); } }
@media(prefers-reduced-motion:reduce) { .ambient-glow::before,.ambient-glow::after { animation:none; opacity:.12; will-change:auto; } .topic-cloud li,.particles span { animation:none; } }
:root:not([data-theme='dark']) .topic-cloud li:nth-child(7n+2) .topic-button { color:var(--text); }

/* Scale only the word; its drifting anchor pauses under the pointer. */
.topic-button:hover, .topic-button:focus-visible { transform:scale(var(--grow,1.2)); }
.topic-cloud li:has(.topic-button:hover), .topic-cloud li:focus-within { z-index:5; animation-play-state:paused; }
.topbar { padding:23px 20px 10px; min-height:74px; }
.topbar-actions { position:absolute; right:26px; top:22px; }
.theme-toggle { min-height:40px; width:40px; padding:10px; border:1px solid var(--line); color:var(--text); background:var(--surface); }
.theme-toggle svg { width:18px; height:18px; }
.welcome-core { width:min(540px,48%); }
#greeting .greeting-hello { display:block; color:var(--text); font-size:clamp(48px,5.3vw,72px); line-height:1.05; margin-bottom:14px; }
#greeting .greeting-question { display:block; color:var(--orange); font-size:clamp(30px,3.3vw,44px); line-height:1.08; }
#greeting .wave { display:inline-block; color:inherit; font-family:'Apple Color Emoji','Segoe UI Emoji',sans-serif; font-size:.68em; vertical-align:6%; }
.welcome-core .eyebrow { margin-bottom:19px; }
.welcome-core .topics-hint { margin-top:23px; }
.composer-tools { display:flex; justify-content:center; margin-top:8px; }
.composer-tools .quiet-button { font-size:11px; min-height:32px; }
.disclaimer { margin-top:6px; }
@media(max-width:900px) {
  .topbar { min-height:70px; padding-top:20px; }
  .topbar-actions { top:18px; right:16px; }
  .theme-toggle { width:36px; min-height:36px; padding:8px; }
  .welcome-core { width:100%; }
  #greeting .greeting-hello { font-size:48px; margin-bottom:13px; }
  #greeting .greeting-question { font-size:30px; }
  .welcome-core .eyebrow { margin-bottom:14px; }
  .welcome-core .topics-hint { margin-top:19px; }
  .topic-button:hover, .topic-button:focus-visible { transform:scale(1.13); }
}
@media(prefers-reduced-motion:reduce) { .topic-button:hover,.topic-button:focus-visible { transform:none; } }

/* Readable orbital typography; words keep their horizontal orientation. */
.topic-button::before { content:none; display:none; }
.topic-cloud li .topic-button { font-family:'Zilla Slab',Georgia,serif; font-weight:400; font-size:var(--word-size,16px); letter-spacing:.1px; }
.topic-cloud li:nth-child(4n+1) .topic-button { font-weight:400; }
.welcome-core { top:50%; width:300px; }
#greeting .greeting-hello { font-size:44px; margin-bottom:12px; letter-spacing:-.6px; }
#greeting .greeting-question { font-size:26px; letter-spacing:-.4px; }
.welcome-core .topics-hint { max-width:240px; margin:17px auto 0; font-size:11px; }
.welcome.orbit-ready .topic-cloud li { left:50%; top:50%; animation:none; transition:none; }
.welcome.orbit-ready .topic-button { padding:8px; }
@media(min-width:901px) and (max-width:1150px) { .topic-cloud li .topic-button { font-size:clamp(13px,calc(var(--word-size) * .87),19px); } }
@media(max-width:900px) {
  .welcome-core { top:265px; width:290px; }
  #greeting .greeting-hello { font-size:40px; }
  #greeting .greeting-question { font-size:24px; }
  .topic-cloud li .topic-button { font-size:clamp(13px,calc(var(--word-size) * .8),17px); }
}

/* One continuous greeting, with a little more light and digital texture. */
.welcome-core { width:330px; }
#greeting { font-size:30px; line-height:1.2; letter-spacing:-.5px; }
#greeting .greeting-hello, #greeting .greeting-question { display:inline; font-size:inherit; line-height:inherit; margin:0; letter-spacing:inherit; }
#greeting .wave { font-size:.82em; vertical-align:0; white-space:nowrap; }
.topic-button strong { font-family:inherit; font-weight:700; }
.particles span { animation-name:digital-drift; box-shadow:0 0 10px #ff590090; }
.particles span:nth-child(5n) { background:var(--text); width:2px; height:2px; box-shadow:none; }
.particles span:nth-child(7n) { width:11px; height:1px; border-radius:0; background:#ff590080; }
@keyframes digital-drift {
  0%,100% { opacity:.08; transform:translate3d(-8px,22px,0); }
  35% { opacity:.35; }
  55% { opacity:.75; transform:translate3d(12px,-20px,0); }
  75% { opacity:.2; }
}
@keyframes ember-left {
  0%,100% { opacity:.11; transform:translate(-50%,-50%) scale(.9,.75) rotate(-25deg); }
  32% { opacity:.2; }
  48% { opacity:.12; }
  56% { opacity:.3; transform:translate(-44%,-47%) scale(1.1,.85) rotate(-15deg); }
  70% { opacity:.17; }
}
@keyframes ember-right {
  0%,100% { opacity:.08; transform:translate(-50%,-50%) scale(.9,1.1); }
  40% { opacity:.25; transform:translate(-54%,-55%) scale(1.12,.9); }
  52% { opacity:.1; }
  65% { opacity:.19; }
}
@media(max-width:900px) { .welcome-core { width:280px; } #greeting { font-size:28px; } }
@media(prefers-reduced-motion:reduce) { .particles span { animation:none; opacity:.18; } }

.greeting-end { white-space:nowrap; }
@media(min-width:901px) { .welcome-core { width:360px; } }

#greeting .greeting-question { color:var(--text); }
.composer-bottom { justify-content:flex-end; }
.composer-tools .quiet-button { min-height:40px; padding:10px 17px; border:1px solid var(--strong-line); border-radius:8px; background:var(--hover); color:var(--text); font-size:12px; font-weight:500; }
.composer-tools .quiet-button svg { color:var(--orange); }
.composer-tools .quiet-button:hover { border-color:var(--orange); background:var(--accent-surface); }
.composer-tools { margin-top:12px; }
.disclaimer { margin-top:10px; }
.particles span, .particles span:nth-child(3n), .particles span:nth-child(5n), .particles span:nth-child(7n) { width:var(--size,2px); height:var(--size,2px); border-radius:50%; }
.particles span:nth-child(7n) { background:var(--orange); }
@keyframes digital-drift {
  0%,100% { opacity:.08; transform:translate3d(-16px,36px,0); }
  35% { opacity:.35; }
  55% { opacity:.7; transform:translate3d(18px,-32px,0); }
  75% { opacity:.2; }
}
@keyframes orbit-mobile { 0%,100% { transform:translateY(5px); } 50% { transform:translateY(-5px); } }
@media(max-width:900px) { .topic-cloud li { animation-duration:11s; } .topic-cloud li:nth-child(3n) { animation-duration:13s; } }
#greeting .greeting-end { color:inherit; }

#greeting .greeting-accent { color:#ff5900; }
.composer { display:flex; align-items:flex-end; gap:12px; padding:10px 12px; border-radius:12px; }
.composer textarea { flex:1; min-width:0; width:auto; height:36px; min-height:36px; max-height:144px; padding:6px 0; line-height:24px; overflow-y:hidden; }
.composer-bottom { flex-shrink:0; margin:0; align-self:flex-end; }
.composer .send { width:36px; height:36px; }
@media(max-width:760px) { .composer { padding:9px 10px; gap:10px; } }

/* The input keeps an orange outline; its light switches on with interaction. */
.composer { position:relative; isolation:isolate; border-color:#ff5900; }
.composer::before { content:''; position:absolute; inset:-1px; border-radius:inherit; z-index:-1; pointer-events:none; box-shadow:0 0 26px #ff590050, 0 0 66px #ff590025; opacity:0; transform:scale(.98); transition:opacity .3s ease, transform .3s ease; }
.composer:focus-within::before, .composer.has-question::before { opacity:1; transform:scale(1); }
.particles span, .particles span:nth-child(3n), .particles span:nth-child(5n), .particles span:nth-child(7n) { width:auto; height:auto; border-radius:0; background:transparent; box-shadow:none; color:var(--orange); font-family:'SFMono-Regular',Consolas,'Liberation Mono',monospace; font-size:var(--font-size,14px); font-weight:400; line-height:1; text-shadow:0 0 10px #ff590040; }
.particles span:nth-child(5n) { color:var(--text); text-shadow:none; }
@keyframes digital-drift {
  0%,100% { opacity:.04; transform:translate3d(-16px,36px,0) rotate(var(--tilt,0deg)); }
  35% { opacity:.12; }
  55% { opacity:.3; transform:translate3d(18px,-32px,0) rotate(var(--tilt,0deg)); }
  75% { opacity:.09; }
}
@media(prefers-reduced-motion:reduce) { .particles span { opacity:.1; } .composer::before { transition:none; } }

/* A separate composited light follows the pointer behind the central question. */
.welcome { isolation:isolate; }
.reactive-glow-viewport { position:absolute; inset:0; z-index:-1; overflow:hidden; pointer-events:none; }
.reactive-glow { position:absolute; left:50%; top:50%; width:min(900px,110vw); height:560px; background:radial-gradient(ellipse at center,#ff5900 0%,#ff590078 26%,#ff590020 48%,transparent 72%); opacity:.12; transform:translate(-50%,-50%); }
@media(max-width:900px) { .reactive-glow { top:265px; width:650px; height:450px; } }

@media(max-width:900px) {
  .topic-cloud { display:none; }
  .welcome { flex:1; width:100%; height:100%; min-height:250px; margin:0; }
  .welcome-core { top:50%; width:min(280px,calc(100% - 40px)); }
  .reactive-glow { top:50%; width:650px; height:480px; opacity:.12; animation:mobile-glow-breathe 8s ease-in-out infinite; }
  .ambient-glow::before, :root[data-theme='dark'] .ambient-glow::before, .ambient-glow::after { animation:mobile-ambient-breathe 10s ease-in-out infinite; }
  .ambient-glow::after { animation-delay:-5s; }
  .page-hidden .reactive-glow { animation-play-state:paused; }
}
@keyframes mobile-glow-breathe {
  0%,100% { opacity:.09; transform:translate(-50%,-50%) scale(.94); }
  50% { opacity:.24; transform:translate(-50%,-50%) scale(1.06); }
}
@keyframes mobile-ambient-breathe {
  0%,100% { opacity:.07; transform:translate(-50%,-50%) scale(.95); }
  50% { opacity:.16; transform:translate(-50%,-50%) scale(1.05); }
}
@media(max-width:900px) and (prefers-reduced-motion:reduce) { .reactive-glow { animation:none; opacity:.12; transform:translate(-50%,-50%); } }
