/* Codex lives in the same glass-and-paper world as the rest of the home,
   but keeps a quiet technical identity instead of borrowing Chiyan's avatar. */
.codex-contact{
  position:relative;
  overflow:hidden;
}
.codex-contact::after{
  content:"CODEX\00a0\00b7\00a0 CLOUD";
  position:absolute;
  right:17px;
  bottom:9px;
  color:var(--accent-deep);
  font:500 .48rem/1 "Avenir Next",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.16em;
  opacity:.46;
  pointer-events:none;
}
.codex-avatar-mark{
  display:grid;
  place-items:center;
  color:var(--accent-deep);
  background:
    radial-gradient(circle at 33% 28%,rgba(255,255,255,.92) 0 2px,transparent 3px),
    linear-gradient(145deg,rgba(255,255,255,.86),rgba(var(--accent-rgb),.28))!important;
  border:1px solid rgba(var(--accent-rgb),.34)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 5px 16px rgba(var(--shadow-rgb),.07);
}
.codex-avatar-mark>span,
.message-avatar.codex-avatar-mark{
  font:italic 600 1.08rem/1 Georgia,"Times New Roman",serif;
  letter-spacing:-.05em;
}
.conversation-avatar.codex-avatar-mark{
  padding:2px;
}
.conversation-avatar.codex-avatar-mark>span{
  display:grid;
  place-items:center;
  background:transparent;
  border:0;
}
.message-avatar.codex-avatar-mark{
  background:
    radial-gradient(circle at 33% 28%,rgba(255,255,255,.92) 0 1.5px,transparent 2.5px),
    linear-gradient(145deg,rgba(255,255,255,.9),rgba(var(--accent-rgb),.3))!important;
}
.codex-conversation .conversation-identity b::after{
  content:" / cloud";
  color:var(--muted);
  font:italic 400 .62rem/1 Georgia,"Times New Roman",serif;
  letter-spacing:.03em;
}
.codex-conversation .ai .bubble{
  border:1px solid rgba(var(--accent-rgb),.13);
  background:rgba(var(--glass-rgb),calc(var(--glass-alpha) + .1));
}

@media (prefers-reduced-motion:no-preference){
  .codex-contact .codex-avatar-mark{animation:codexMarkIn .5s cubic-bezier(.2,.78,.24,1) both}
  @keyframes codexMarkIn{from{transform:translateY(4px) scale(.92);opacity:.45}to{transform:none;opacity:1}}
}
