/* Shared grammar: a luminous node, a fine connection, a readable window.
   Category colors and consent-based presence retain their distinct meaning. */
:root {
  --aura-window-radius: 14px;
  --aura-rim: #defff02b;
  --aura-transition: 320ms;
  --aura-ease: cubic-bezier(.2,.75,.2,1);
}
.aura-formation, .signin-card, .identity, .circle-presence-card {
  border-radius: var(--aura-window-radius);
  box-shadow: inset 0 0 0 1px var(--aura-rim), 0 14px 32px #0003;
}
.circle-presence-card, .signin-card {
  background: linear-gradient(145deg, #10291e, #081711 78%);
}
.signal i { border-radius: 50%; background: radial-gradient(circle at 30% 25%, #f4fff2, var(--green) 55%, #397952); }
.contact-entry { transition: background var(--aura-transition) var(--aura-ease), box-shadow var(--aura-transition) var(--aura-ease); }
.circle-presence-toggle, .city-local-thought, .thought-card, .latest-thought-card {
  border-radius: var(--aura-window-radius);
}
.city-local-thought {
  transition: transform var(--aura-transition) var(--aura-ease), opacity var(--aura-transition) ease, box-shadow var(--aura-transition) ease;
}
.thought-card { box-shadow: inset 0 0 0 1px var(--aura-rim), 0 16px 45px #0007, 0 0 32px color-mix(in srgb, var(--aura) 20%, transparent); }
/* Presence pulses signal the transition into online, then settle into a
   steady status. Stars and the brand cursor do not move while idle. */
.cursor, .city-space-sky { animation: none; }
@media (prefers-reduced-motion: no-preference) {
  .circle-presence-toggle[aria-pressed=true] .presence-beam { animation: signal-to-ground 1.8s ease-in-out 3; }
  .contact-orb.is-online { animation: none; }
  .thought-overlay:not([hidden]) .thought-card { animation: aura-window-arrive 280ms var(--aura-ease) both; }
  @keyframes aura-window-arrive { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
}
@media (prefers-reduced-motion: reduce) {
  .contact-entry, .city-local-thought, .presence-stage .presence-orb, .presence-beam { transition: none; }
  .thought-card, .city-space-floor { animation: none; transition: none; }
}
