:root {
  color-scheme: dark;
  font-family: "DM Sans", "Segoe UI", sans-serif;
  color: #f4f3f8;
  background: #101117;
  --violet: #8978ff;
  --mint: #8be6dd;
  --peach: #f4b59c;
}

* { box-sizing: border-box; }

body {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  overflow-x: hidden;
  background:
    radial-gradient(ellipse at 50% 42%, #25213b 0, transparent 44%),
    radial-gradient(ellipse at 50% 100%, #12302f44 0, transparent 50%),
    #101117;
}

.activity {
  position: relative;
  display: flex;
  flex-direction: column;
  width: min(100%, 1200px);
  min-height: 100vh;
  margin: auto;
  padding: clamp(20px, 4vw, 48px);
  isolation: isolate;
}

.topline, footer {
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.topline { gap: 12px; justify-content: flex-start; }
.topline img { filter: drop-shadow(0 0 14px #8978ff55); }
.topline span, footer {
  color: #a5a2b3;
  font: 500 10px/1.5 "DM Mono", Consolas, monospace;
  letter-spacing: 1.7px;
}
.topline i { color: var(--mint); font-style: normal; }

.stage {
  position: relative;
  display: grid;
  flex: 1;
  min-height: 660px;
  place-items: center;
  overflow: hidden;
}

.orbit {
  position: absolute;
  width: min(52vw, 440px);
  aspect-ratio: 1;
  border: 1px solid #8978ff35;
  border-radius: 50%;
}
.orbit-one { transform: scaleX(1.48) rotate(-24deg); animation: orbit 28s linear infinite; }
.orbit-two { width: min(39vw, 320px); border-color: #8be6dd29; transform: scaleX(.7) rotate(27deg); }

.assistant-pair {
  position: absolute;
  top: 3%;
  left: 50%;
  display: flex;
  width: min(100%, 760px);
  justify-content: center;
  gap: clamp(18px, 7vw, 78px);
  transform: translateX(-50%);
}

.activity-assistant {
  flex: 1 1 0;
  min-width: 0;
  max-width: 280px;
  text-align: center;
  --assistant-accent: var(--violet);
}
.assistant-two { --assistant-accent: var(--mint); }

.assistant-orb {
  position: relative;
  width: clamp(100px, 17vw, 164px);
  margin: auto;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--assistant-accent) 70%, white 12%);
  border-radius: 50%;
  background: radial-gradient(circle at 35% 28%, color-mix(in srgb, var(--assistant-accent) 48%, #272438) 0, #282438 48%, #181a24 78%);
  box-shadow: 0 0 58px color-mix(in srgb, var(--assistant-accent) 24%, transparent), inset 0 0 42px color-mix(in srgb, var(--assistant-accent) 22%, transparent);
  animation: float 4s ease-in-out infinite;
}
.assistant-two .assistant-orb { animation-delay: -1.1s; }

.orb-core {
  width: 44%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle at 32% 28%, #fff 0, color-mix(in srgb, var(--assistant-accent) 24%, white) 14%, var(--assistant-accent) 42%, color-mix(in srgb, var(--assistant-accent) 50%, #262239) 76%, #262239);
  box-shadow: 0 0 40px color-mix(in srgb, var(--assistant-accent) 78%, transparent);
}

.spark {
  position: absolute;
  top: 20%;
  right: 22%;
  color: color-mix(in srgb, var(--assistant-accent) 46%, white);
  font-size: clamp(13px, 2vw, 20px);
  filter: drop-shadow(0 0 8px #dcd4ff);
}

.activity-assistant h2 {
  margin: 16px 0 3px;
  color: #f4f3f8;
  font: 600 clamp(18px, 3vw, 28px)/1.1 "Manrope", "Segoe UI", sans-serif;
  letter-spacing: -.7px;
}
.activity-assistant p {
  margin: 0;
  color: #bcb9cc;
  font: 500 9px/1.5 "DM Mono", Consolas, monospace;
  letter-spacing: 1.3px;
}

.copy {
  position: absolute;
  top: 35%;
  left: 50%;
  z-index: 1;
  max-width: 540px;
  width: min(100%, 540px);
  padding: 0 16px;
  transform: translateX(-50%);
  text-align: center;
  text-shadow: 0 2px 22px #101117;
}

.connection {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #c3bdff;
  font: 500 10px "DM Mono", Consolas, monospace;
  letter-spacing: 1.2px;
}

.connection-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--mint);
  box-shadow: 0 0 12px #8be6dd;
}

h1 {
  margin: 15px 0 12px;
  font: 600 clamp(38px, 7vw, 72px)/.98 "Manrope", "Segoe UI", sans-serif;
  letter-spacing: -3px;
}

.copy p {
  margin: 0;
  color: #c1bfcc;
  font-size: clamp(13px, 2vw, 16px);
  line-height: 1.6;
}

.room-presence {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 19px;
  padding: 9px 13px;
  border: 1px solid #ffffff18;
  border-radius: 999px;
  background: #171821cc;
  color: #dbd9e5;
  font-size: 12px;
}
.presence-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--mint); box-shadow: 0 0 9px #8be6ddaa; }
html[data-discord="unavailable"] .presence-dot { background: var(--peach); box-shadow: 0 0 9px #f4b59c88; }

.companion-demo {
  position: absolute;
  bottom: 1%;
  left: 50%;
  z-index: 2;
  width: min(100%, 660px);
  padding: 16px 18px 12px;
  border: 1px solid #ffffff20;
  border-radius: 20px;
  background: linear-gradient(145deg, #1e1c2bef, #15171fee);
  box-shadow: 0 18px 55px #0007, inset 0 1px #ffffff0b;
  transform: translateX(-50%);
  text-align: left;
}
.demo-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.demo-kicker, .demo-badge, .companion-demo label {
  color: #a6a2b8;
  font: 500 9px/1.5 "DM Mono", Consolas, monospace;
  letter-spacing: 1.1px;
}
.demo-heading h2 { margin: 2px 0 0; font: 600 18px/1.2 "Manrope", "Segoe UI", sans-serif; }
.demo-badge { padding: 6px 9px; border: 1px solid #8be6dd35; border-radius: 999px; color: var(--mint); letter-spacing: .5px; white-space: nowrap; }
.companion-demo label { display: block; margin-bottom: 6px; letter-spacing: .5px; }
.summon-row { display: flex; gap: 8px; }
.summon-row select, .summon-row input, .summon-row button {
  min-height: 42px;
  border: 1px solid #ffffff22;
  border-radius: 11px;
  color: #f4f3f8;
  background: #101117;
  font: 500 13px "DM Sans", "Segoe UI", sans-serif;
}
.summon-row select { width: 130px; padding: 0 10px; }
.summon-row input { flex: 1; min-width: 80px; padding: 0 12px; }
.summon-row input::placeholder { color: #858294; }
.summon-row button { padding: 0 17px; border-color: #8be6dd6b; background: linear-gradient(135deg, #7463e8, #4c4a86); cursor: pointer; }
.summon-row button:hover { filter: brightness(1.15); }
.summon-row :focus-visible { outline: 2px solid var(--mint); outline-offset: 2px; }
.demo-response { display: grid; gap: 7px; max-height: 128px; overflow-y: auto; margin-top: 10px; }
.demo-empty, .demo-message { margin: 0; color: #c5c2d1; font-size: 12px; line-height: 1.45; }
.demo-message { padding: 8px 10px; border-left: 2px solid var(--violet); border-radius: 0 9px 9px 0; background: #ffffff08; }
.demo-message[data-assistant="Mosaic"] { border-color: var(--mint); }
.demo-message strong { display: block; margin-bottom: 2px; color: #e7e4f4; font-size: 10px; letter-spacing: .3px; }
.demo-footnote { margin: 8px 0 0; color: #8d8a9b; font-size: 10px; line-height: 1.4; }
.activity-assistant[data-speaking="true"] .assistant-orb { animation: speak 650ms ease-in-out infinite alternate; }
.activity-assistant[data-speaking="true"] .orb-core { box-shadow: 0 0 55px color-mix(in srgb, var(--assistant-accent) 95%, white); }

footer {
  gap: 12px;
  color: #777585;
  font-size: 9px;
  letter-spacing: 1.1px;
}
.privacy { color: #888695; font-family: "DM Sans", "Segoe UI", sans-serif; letter-spacing: 0; }

html[data-discord="ready"] .connection-dot { animation: pulse 1.8s ease-in-out infinite; }
html[data-discord="unavailable"] .connection-dot { background: var(--peach); box-shadow: 0 0 12px #f4b59c88; }

@keyframes orbit { to { transform: scaleX(1.48) rotate(336deg); } }
@keyframes float { 50% { translate: 0 -8px; } }
@keyframes pulse { 50% { opacity: .45; scale: .8; } }
@keyframes speak { to { scale: 1.055; box-shadow: 0 0 75px color-mix(in srgb, var(--assistant-accent) 42%, transparent), inset 0 0 48px color-mix(in srgb, var(--assistant-accent) 30%, transparent); } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
@media (max-width: 560px) {
  .activity { padding: 20px 16px; }
  .stage { min-height: 740px; }
  footer { align-items: flex-start; flex-direction: column; }
  .assistant-pair { top: 2%; gap: 10px; }
  .assistant-orb { width: clamp(84px, 27vw, 126px); }
  .activity-assistant h2 { margin-top: 12px; font-size: 18px; }
  .activity-assistant p { font-size: 7px; letter-spacing: .8px; }
  .copy { top: 30%; }
  .companion-demo { bottom: 1%; padding: 14px 12px 10px; }
  .summon-row { flex-wrap: wrap; }
  .summon-row select { width: 112px; }
  .summon-row input { min-width: 140px; }
  .summon-row button { min-height: 38px; }
  .demo-badge { font-size: 7px; }
}
